VertexShader:
varying vec4 diffuseColor;
uniform mat4 modelViewProj;
uniform mat4 modelViewTranspose;
attribute vec3 streamNormal;
attribute vec3 streamPosition;
void main() {
gl_Position = modelViewProj * streamPosition;
diffuseColor = max(0, dot(normalize(modelViewTranspose * streamNormal), vec3(0,0,1)) * vec4(1,0,0,1);
}
PixelShader:
varying vec4 diffuseColor;
void main() {
gl_FragColor = diffuseColor;
}
矩阵由左手(行主要),modelViewProj由C ++计算,它是世界*视图*投影,modelViewTranspose = transpose(反向(世界*视图))。
渲染结果不对,我看不到任何东西,但如果我将gl_FragColor设置为vec4(1,1,1,1),则模型渲染没有问题。我的代码有错误吗?或其他问题?