一、Unity3D实战练习-Fixed Function Shader 二
Unity3D实战练习-Fixed Function Shader 二
1.第一步,还是按照老规矩,创建Unity 项目,然后在Assets 单击右键 Create-> Shader 便能生成一个.shader文件,而我们今天需要学习是Fixed Function Shader 固定管线着色器;
2.第二步,我们知道Shader 有一个重要的关键字 Properties(它是让着色器可以定义一个参数列表,可以由开发者在材质检视面板编辑参数)
2.0 语法:Properties { Property [Property ...] }
2.1 可以定义的参数类型
2.1.0 name ("display name", Range (min, max)) = number 定义浮点数属性,在检视器中可通过一个标注最大最小值的滑条来修改。
2.1.1 name ("display name", Color) = (number,number,number,number) 定义颜色属性。
2.1.2 name ("display name",2D) = "name" { options } 定义2D纹理属性
2.1.3 name ("display name", Rect) = "name" { options } 定义长方形(非2次方)纹理属性
2.1.4 name ("display name", Cube) = "name" { options } 定义立方贴图纹理属性
2.1.5 name ("display name", Float) = number 定义浮点数属性
2.1.6 name ("display name", Vector) = (number,number,number,number) 定义四个向量组成的属性
3. 第三步,SubShader 子着色器定义了一个渲染通道的列表,并可选是否为所有通道初始化所需要的通用状态;
3.0 SubShader 学习文档:http://www.ceeger.com/Components/SL-SubShader.html
3.1 语法:Subshader { [Tags] [CommonState] Passdef [Passdef ...] }
3.2 简单的例子(定义一个单一的通道来关闭任何光照,并使用一个名叫_MainTex 的纹理来显示网格):
1 2 3 4 5 | SubShader { Pass { Lighting Off SetTexture [_MainTex] {} } } |
4.第四步,编写一个可以进行两张贴图叠加的例子
4.0 Fixed Function Shader(Basic).shader 代码如下:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | //两张贴图的叠加 Shader "Custom/Fixed Function Shader(Basic)" { Properties{ _MainTex("Base (RGB)", 2D) = "white" {} _MainTex2("Tex2 (RGB)", 2D) = "white" {} _Color("Main color",Color) = (1,1,1,1) } SubShader{ Pass { Material { Diffuse[_Color] } Lighting on SetTexture[_MainTex] { // 第一张材质 * 顶点颜色 Combine texture * primary } SetTexture[_MainTex2] { // 第二张材质 * 之前累积(这里即第一张材质) Combine texture * previous } } } } |
教程名称:Unity3D实战练习-Fixed Function Shader 二 | 语 言:中文 | 页数/时长: 3页 |
软件版本: unity | 上传时间:2018/02/27 | 价格:¥0 |
文件格式: docx | 文件大小:94kb |
您还未登录
全部评论: 0条