這裏只是把法線當做color來用。法線的range是-1 - 1所以要轉換range到0 - 1。
下面上圖:
下面是代碼:
Shader "Custom/ShaderExample1"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Pass
{
GLSLPROGRAM
uniform mat4 _Object2World; //模型座標轉到世界座標矩陣
#ifdef VERTEX
//頂點着色器
out vec4 vertexNormal; //將normal傳到片元着色器
void main()
{
//將normal從模型座標轉到世界座標
vertexNormal = _Object2World * vec4(gl_Normal, 0.0);
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
#endif
#ifdef FRAGMENT
//片元着色器
in vec4 vertexNormal; //從頂點着色器傳過來的normal
void main()
{
gl_FragColor = vertexNormal * 0.5 + 0.5;
}
#endif
ENDGLSL
}
}
}