这里只是把法线当做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
}
}
}