本文共 1639 字,大约阅读时间需要 5 分钟。
在开始学习纹理映射之前,我们需要先理解漫反射着色是怎么工作的。某些物体的颜色比较均匀,表面很光滑,但是又不是光滑到那种像镜子一样光亮的程度。这种非反光材料最好的渲染方式就是使用漫反射着色器。虽然在真实世界中纯漫反射材料本身并不存在,但在游戏世界中漫反射着色器是一种大量用到的相对廉价的着色方式。
创建漫反射着色器有多种方式。最快的一种方式是从Unity 5 的标准着色器开始,然后编辑标准着色器,移除所有纹理。在第1章中我们就是这么做的。
我们从标准着色器开始,按照下面的步骤逐步进行:
着色器中,材质的渲染属性和光照模型之间是通过表面输出来通信的。表面输出是对当前光照模型所需的所有参数的一个封装。所以你应该能理解不同的光照模型需要不同的表面输出结构了。下面列出了Unity 5中三种主要的表面输出结构。
着色器类型 Unity 4 Unity 5漫反射着色器 任意表面着色器SurfaceOutput 标准着色器SurfaceOutputStandard高光着色器 任意表面着色器SurfaceOutput 标准着色器(高光设置)SurfaceOutputStandardSpecularSurfaceOutput结构有如下属性:
fixed3 Albedo:表示材质的漫反射颜色。fixed3 Normal:如果写的话表示切面法线。fixed3 Emission:表示材质发射的颜色(该属性在标准着色器中声明为half3)。fixed Alpha:表示材质的透明度。half Specular:表示光亮度,值从0到1。fixed Gloss:表示光强度。SurfaceOutputStandard结构有如下属性:fixed Albedo:表示材质的基础颜色(表示是漫反射还是高光)。fixed3 Normal。half3 Emission:该属性声明为half3,而在SurfaceOutput中名字是fixed3。fixed Alpha。half Occlusion:表示遮挡,默认是1。half Smoothness:表示光滑度,0表示粗糙,1表示光滑。half Metallic:0表示非金属,1表示金属。SurfaceOutputStandardSpecular结构有如下属性:fixed3 Albedo。fixed3 Normal。half3 Emission。fixed Alpha。half Occlusion。half Smoothness。fixed3 Specular:表示高光颜色,与SurfaceOutput结构中的Specular属性有很大不同,这里可以指定一种颜色而非单一值。正确使用表面着色器很重要的一点是用正确的值初始化表面输出结构。转载地址:http://fseal.baihongyu.com/