OpenGL透视和照明问题

时间:2011-07-10 15:54:21

标签: iphone c++ c opengl-es

我有一个使用OpenGL ES 1.1渲染的示例3D场景。 这是我得到身份投影矩阵时得到的结果(我也使用普通和高光贴图):

enter image description here

所以一切看起来都不错。

但如果我使用glFrustum设置透视图,我会得到:

enter image description here

所以似乎法线正在倒置,如果我试图将它们乘以-1,我得到这个:

enter image description here

它的效果就像光线来自对面。

我还应该提一下,当使用身份投影矩阵时,我必须设置

glCullFace(GL_FRONT);

(我认为这是因为标准化的设备坐标是左撇子)。

我很乐意听到有关如何解决此问题的任何建议。

编辑。 这是投影设置:

float right = 0.03;
float top = 0.045;
float near = 0.1;
float far = 100.0;

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustumf(-right, right, -top, top, near, far);

1 个答案:

答案 0 :(得分:0)

你的第二个截图看起来没问题,我看不出你的问题在哪里。请在第二张图片中突出显示您认为不正确的内容。

请记住,在投影矩阵中,应该只有投影和相机放置类型。 “相机放置”属于模型视图。