float4 _EmissiveColor; float4 _AmbientColor; float _MySliderValue; void surf (Input IN, inout SurfaceOutput o) { // Albedo comes from a texture tinted by color float4 c; c = pow((_EmissiveColor + _AmbientColor), _MySliderValue); o.Albedo = c.rgb; // Metallic and smoothness come from slider variables o.Alpha = c.a;
1.如果没注意将_MySliderValue的数据类型声明成float4,那么shader将不会起作用并且不会报错。
CGPROGRAM #pragma surface surf BasicDiffuse inline float4 LightingBasicDiffuse(SurfaceOutput s,fixed3 lightDir, fixed atten) { float difLight = max(0, dot(s.Normal, lightDir)); float4 col; col.rgb = s.Albedo * _LightColor0.rgb * (difLight * atten * 2); col.a = s.Alpha; return col; }
2.自建光照模型 定义要在#下
原文:http://www.cnblogs.com/white-L/p/6523383.html