//一个漫反射Shader
Shader "Custom/BasicDiffuse1" {
Properties {
_EmissiveColor ("Emissive Color", Color) = (1, 1, 1, 1)
_AmbientColor ("Ambient Color", Color) = (1, 1, 1, 1)
_MySliderValue ("this is a Slider", Range(0, 10)) = 2.5
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert
//在这里创建与属性同名的变量,Unity会自动将二者关联起来,它们拥有同样的数据。
//当你在SubShader里创建好变量后,就可以在surf()函数里使用它们了。
float4 _EmissiveColor;
float4 _AmbientColor;
float _MySliderValue;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
float4 c;
//pow()函数参阅官方在线文档
//http://http.developer.nvidia.com/CgTutorial/cg_tutorial_appendix_e.html
c = pow((_EmissiveColor + _AmbientColor), _MySliderValue);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}