一、准备
在开始着色之前,我们需要创建一个场景(Scene)供我们使用,然后在场景里创建一个球体(Sphere)。
1.1 Diffuse
漫反射计算一个简单的(Lambertian)光照模型。光照强度随着入射光线与表面的夹角减小而减小。光照强度只依赖于这个夹角,而且不会随着相机的移动或者旋转而改变。
Shader "liulongling/t1"
{
Properties
{
_MainTex("主纹理",2D)="white"{}
_DiffuseColor("漫反射",Color)=(1,1,1,1)
}
SubShader
{
Pass
{
Material
{
Diffuse[_DiffuseColor]//漫反射
}
}
}
}
提示:这里把漫反射颜色改为红色后,球体颜色并未发生改变,是因为只有开启灯光之后,顶点光照才会有作用,材质块中的设定才会有效,所以加上代码Lighting On | Off:开启或关闭顶点光照 效果才会出来!如下:
1.2 Lighting
效果出来了有木有..
1.3 Specular Properties 高光属性
Specular 和 Diffuse 使用同样简单的光照模型,另外增加了一个和观察角度相关的反射高光。这个叫做Blinn-Phong 高光模型。它包含了一个反射高光,取决于物体反射高光物体表面角度,光线入射角度和观察角度。这种高光计算方法实际上恰好是模拟实时光源模糊反射的一种方法。高光模糊等级通过检视面板里的Shininess来控制。
_Specular("高光",Color) =(1,1,1,1)
Specular[_Specular]//高光
注意:貌似加了高光前后并没有什么效果,这是为什么呢?因为只有开启独立高光SeparateSpecular On看到镜面反射后 才有效果
1.4 SeparateSpecular
1.5 Emission
自发光颜色,当不被任何光照所照到时,对象的颜色。
Properties
{
_Emission("自发光",Color)=(1,1,1,1)
}
SubShader
{
Emission[_Emission]//自发光
}
1.6 Shininess
加亮时的光泽度,在0和1之间。0的时候你会发现更大的高亮也看起来像漫反射光照,1的时候你会获得一个细微的亮斑。
1.7 Cull
要想保持30FPS的同时处理数十万的三角形,以现在的主流机器来说还是有些困难的。为了提高效率,人们提出了很多方法,其中包括LOD、Culling剔除,就是被挡住或视角以外的我们看不到的物体,因为它们无关紧要,所以我们就不去绘制,以节省资源,提高场景的运行效率
比如立方体,你不会看到背离你的面,因此我们不需要绘制出背面,因此也被称做背面剔除
语法:Cull Back | Front| Off
Cull Back—— 不绘制背离观察者的几何面
Cull Front—— 不绘制面向观察者的几何面
Cull Off —— 显示所有面