OpenGL近剪辑平面

时间:2012-10-18 04:51:57

标签: opengl 3d clipping glu

我正在研究计算机图形学课程的交互式场景。我已经设置了一个生成彩色立方体的程序,让我用键盘旋转它们。然而,他们被相机的近夹片平面切开:

Color cubes being clipped

我尝试过使用gluPerspective,但OpenGL文档并没有给出任何使用它的例子。我发现它在网上的示例程序中使用,并且半复制了他们的代码:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective( 65, 1, 0.01, 100 );
glMatrixMode(GL_MODELVIEW);

有什么想法吗?

更新: 正如下面的评论中所建议的,我尝试使用glFrustum代替,使用以下代码:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum( -0.5, 0.5, -0.5, 0.5, 0.1, 100 );
glMatrixMode(GL_MODELVIEW);

再次,没有区别。我没有正确地推动生成的矩阵或什么?

1 个答案:

答案 0 :(得分:2)

也许您需要将物体移动远离相机。现在似乎它们比0.0更接近。

考虑到你的更新“我将立方体移动了一整个远离相机的单位,现在当它们旋转时,它们会被近距离和远距离剪裁平面剪切”你的立方体可能对于剪裁深度来说太大了(100 - 0.1)。将立方体移离相机50,并将剪裁平面设置为0.1 .. 1000以确保一切都适合。

如果问题仍然存在,我们可能需要查看您的矩阵代码。