Unity3d shader -- fixed function shader
2016-06-24 17:45
441 查看
这种shader种类简单,效果单一
主要包含: properties, material, lighting, settexture, pass(通道)
样式:
SubShader{
[propertie]
subshader{}
[fallback]
}
值类型: color, range, 2D
此类shader必须要有pass通道
小括号代表固定值,中括号代表变量值
关键词:
pass: 通道
material:材质
diffuse:漫反射
lighting: 光照,on/off
ambient: 环境光
specular: 高光。
separatespecular on 使用高光之后必须添加
shininess: 浮点值,用于描述specular的强度,表示高光部分的集中度,一般用范围【0-8】
emission: 自发光
settexture: 纹理,参数是2D类型,可以混合多个纹理,不同的显卡能混合的纹理上限不同
combine: 合并
primary: settexture中专用的关键词,表示合并顶点光照参数,还可以乘以一个值,增加曝光度
previous: combine用,合并之前的结果,区别于primary
double,quad 双倍,四倍
例子:
主要包含: properties, material, lighting, settexture, pass(通道)
样式:
SubShader{
[propertie]
subshader{}
[fallback]
}
值类型: color, range, 2D
此类shader必须要有pass通道
小括号代表固定值,中括号代表变量值
关键词:
pass: 通道
material:材质
diffuse:漫反射
lighting: 光照,on/off
ambient: 环境光
specular: 高光。
separatespecular on 使用高光之后必须添加
shininess: 浮点值,用于描述specular的强度,表示高光部分的集中度,一般用范围【0-8】
emission: 自发光
settexture: 纹理,参数是2D类型,可以混合多个纹理,不同的显卡能混合的纹理上限不同
combine: 合并
primary: settexture中专用的关键词,表示合并顶点光照参数,还可以乘以一个值,增加曝光度
previous: combine用,合并之前的结果,区别于primary
double,quad 双倍,四倍
例子:
Shader "Custom/CustomShader" { Properties { _Color ("Color", Color) = (1 ,1, 1,1 ) _Ambient ("Ambient", Color) = (1 ,1, 1,1 ) _Specular ("Specular", Color) = (1 ,1, 1,1 ) _Shininess ("Shininess", Range(0 ,8)) = 4 _Emission( "Emission",color ) = (0.1, 0.1,0.1 ,0.1) } SubShader { pass{ color[_Color] material { diffuse[_Color] ambient[_Ambient] specular[_Specular] shininess[_Shininess] emission[_Emission] } lighting on separatespecular on } } } 例子2:透明材质shader Shader "Custom/CustomShader" { Properties { _Color ("Color", Color) = (1 ,1, 1,1 ) _Ambient ("Ambient", Color) = (0.3 ,0.3, 0.3,0.3 ) _Specular ("Specular", Color) = (1 ,1, 1,1 ) _Shininess ("Shininess", Range(0 ,8)) = 4 _Emission( "Emission",color ) = (0.1, 0.1,0.1 ,0.1) _MainTex("MainTex", 2D)="" {} _SecontTex("SecondTex", 2d) ="" {} _TransparentColor("TransparentColor", color) = (1 ,1, 1,0.3 ) } SubShader { //队列,描述此shader属于何种类型,和渲染顺序 Tags { "Queue" = "Transparent" } pass{ //透明混合模式 Blend SrcAlpha OneMinusSrcAlpha material { diffuse[_Color] ambient[_Ambient] specular[_Specular] shininess[_Shininess] emission[_Emission] } lighting on separatespecular on settexture[_MainTex] { combine texture * primary double } settexture[_SecontTex] { constantcolor[_TransparentColor ] combine texture * previous double, constant } } } }
相关文章推荐
- Unity: Invalid serialized file version xxx Expected version: 5.3.4f1. Actual version: 5.3.5f1.
- Unity UGUI基础之InputField
- Unity UGUI基础之InputField
- Unity UGUI基础之Slider、Scrollbar
- Unity UGUI基础之Slider、Scrollbar
- Unity UGUI基础之Toggle
- Unity UGUI基础之Toggle
- Unity UGUI基础之Button
- Unity UGUI基础之Button
- Unity3d 鼠标的事件GetMouseButtonDown()、GetMouseButton()、GetMouseButtonUp()
- Unity UGUI基础之Image
- Unity UGUI基础之Image
- unity Type.GetType() 返回null
- Unity UGUI基础之Text
- Unity UGUI基础之Text
- Unity UGUI之Canvas&EventSystem
- Unity UGUI之Canvas&EventSystem
- Unity中的Path对应各平台中的Path
- 升级Unity5-----Unity5灯光烘焙与Unity4 灯光烘焙实际应用中的差别
- Unity中炮弹抛物线运动