在Unity中使用Shader

1、Material 和 Shader 的关系,一个材质包含一个Shader程序,在Shader中设置的属性可以通过Material可视化设置


2、内建Shader,5.0之后的版本中大部分旧的Shader都集成在了Standard Shader中了,可以通过设置Standard Shader的属性达到不同的需要的渲染效果。

 

Albedo:反光率

Specular:镜面反射

Smoothness:镜面反射的光滑度

NormalMap:法线贴图

为什么叫法线贴图,我们知道法线(Normal)是垂直于一个面的直线,通过计算光线与这条法线的角度就可以知道与面的角度,进而可以计算出面应得到的颜色值。如果我们知道物体每个面的法线就能实现对这个物体进行光照渲染。但是一堵墙也许只有四个顶点,也就是只有一个面,它最终的渲染效果将会非常单一,假设这堵墙上有更多的砖的凹凸痕迹,我们增样实现仅用四个顶点渲染出立体感很强,细节层次感很强的这堵墙呢,使用法线贴图。 在法线贴图技术中,我们就是通过把墙面的每个像素的法线存储在一张纹理中,渲染的时候根据每个像素的法线确定他们的阴暗程度,而这张法线贴图是可以用photoshop软件从一张墙的纹理生成对应的法线贴图的。到此,熟悉法线贴图的朋友会对以上内容很熟悉的。

HeightMap:高度图

Occlusion:贴图吸收

添加一个贴图之后设置吸收的系数

Emission:自发光贴图和颜色

 

 

 

3、创建自定义Shader程序

l 创建一个Material

l 创建自定义的Shader程序

l 为Material指定Shader程序(根据Shader文件内定义的名称查找)

l 将Material指定给GameObject查看效果

 

 

 

 

4、Shader程序的语法和规则

http://blog.csdn.net/zh13544539220/article/details/46925009

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章