-->

分類

2016年3月27日 星期日

Unity Shader

分兩種: Surface Shader及vert, frag
Surface最後還是會compile成vert, frag, Surface就是比較總合的一種寫法
Surface的語法定義
surface必須照這方式宣告:
#pragma surface surfaceFunction lightModel [optionalparams]

lightModel:定義和光源互動的規則
lightModel宣告
LightModel宣告規則
見Lighting Model declaration
#pragma surface surfaceFunction LightModelName [optionalparams]
half4 LightingLightModelName (SurfaceOutput s, half3 lightDir, half atten);

Surface要定義vert, frag:
#pragma surface surf Lambert vertex:vert finalcolor:mycolor
void vert (inout appdata_full v, out Input o) { UNITY_INITIALIZE_OUTPUT(Input,o); o.customColor = abs(v.normal); }
void mycolor (Input IN, SurfaceOutput o, inout fixed4 color) { color *= _ColorTint; }

沒有留言:

張貼留言