opengles 2.0每顶点照明

时间:2013-11-30 13:23:11

标签: opengl-es

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),则模型渲染没有问题。我的代码有错误吗?或其他问题?

0 个答案:

没有答案