OpenGL近剪辑平面

Nic*_*ick 5 opengl 3d clipping glu

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

被剪裁的颜色立方体

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

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective( 65, 1, 0.01, 100 );
glMatrixMode(GL_MODELVIEW);
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

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

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum( -0.5, 0.5, -0.5, 0.5, 0.1, 100 );
glMatrixMode(GL_MODELVIEW);
Run Code Online (Sandbox Code Playgroud)

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

Kro*_*ica 2

也许您需要将对象移到离相机远一点的地方。现在看来它们比0.0更接近。

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

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