- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity3D Built-in Shader,unity3d 内
置 shader 详解
unity3d 内置了很多 Shader,文档很详细 , 自己翻一下 .便于加深印象 .
首先先解释下 Unity3D 的 Shader.Unity 里面的 Shaders 是使用一种叫 ShaderLab
的语言编写的,它同微软的 .FX 文件或 者 NVIDIA 的 CgFX 有些类似。传统意义上的 vertex
shader 和 pixel shader 还是使用标准的 Cg/HLSL 编程语言编写的。 (因此 Unity 文档里面的
Shader,都是指用 ShaderLab 编写的代码)
然后我们来看下 Unity3D 自带的 60 多个 Shader。这些 Shader 被分为五个大类:
Normal,Transparent,Transparent Cutout,Self-llluminated,Reflective 。由于数量比较多, 将分几个
篇幅一一介绍。
(一 ) Normal Shader Family
这个家族一共 9 个 Shader,都是针对不透明的对象的。
(1) Vertex-Lit :
最简单的一种 Shader 之一,所有照射在该物体上的光在一个 Pass里面渲染完,
光源只在顶点计算。所以不会有任何基于像素渲染得效果,比如 说: normal mapping,light
cookies 和 shadows. 这个 shader 对模型的剖分(将一个物体从几何描述变为多边形表示的过
程)非常敏感,如果你将一个点光源放在很靠近一 个立方体的一个顶点那里,并且对立方
体使用这个 shader ,光源只会在角落计算。基于像素光照的 shader 对剖分没有要求,在表
现圆形高光上效果也很 好。如果上述情况时你想要的效果,你可以考虑使用一个基于像素
光照的 shader 或者增加模型的剖分。 (增加顶点数)
总的来说, 这个 shader 的渲染代价比较小。 这个 shader 包含了 2 个 subshader ,
分别对应可编成管线和固定管线。是所有硬件都支持的 一个最基本的 shader 。如果设备支
持可编成管线,那使用可编成管线的 subshader ,否则使用固定管线的。
(2) Diffuse :
Diffuse 基于一个简单的光照模型 -Lambertian ,光照强度随着物体表面和光入射
角夹角的减小而减小 (即光垂直于表面时强度最大 )。光 照的强度只和该角度有关系,和摄
像机无关。由于这是一个基于像素光照的 shader ,因此他有这类 shader 的优势,同时他需
要设备支持可编程管线,如 果设备不支持,则自动使用 Vertex-Lit 这个 Shader。
总的来说,这个 shader 渲染代价比较小。
(3) Specular
Specular 使用和 Diffuse 相同的光照模型,但是添加了一个和观察角度相关的反
射高光。 这个被称为 Blinn-Phong 光照模型。 他包含了一个反射强光, 这个 反射高光物体表
面角度, 光的入射角度以及观察者角度都有关系。 这种高光计算方法实际上是对实时光源模
糊反射的一种具有可行性的模拟。模糊的等级通过 inspector 里面 Shininess 这个变量控制。
原创力文档


文档评论(0)