分兩種:
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;
}
沒有留言:
張貼留言