我正在尝试将法线渲染为WebGL中的颜色值。我有一些表面的顶点法线,并希望用正常值着色它们。我目前在顶点着色器中执行此操作:
void main(void) {
gl_PointSize = aPointSize;
gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
position_1 = gl_Position;
vColor = aVertexColor;
vIsDepth = aIsDepth;
vIsNormal = aIsNormal;
vHasTexture = aHasTexture;
normals = uNMatrix*vec4(aNormal,1.0);
if (aHasTexture > 0.5)
vTextureCoord = aTextureCoord;
}
片段着色器:
if (vIsNormal > 0.5)
{
gl_FragColor = vec4(normals.xyz*0.5+0.5,1);
}
}
现在我的输出由于某种原因是黄色的。 r和g值是127,b值是0.有人知道出了什么问题吗?我的方法在基本理解上是错误的吗?