5

我正在为计算机图形课程制作交互式场景。我已经设置了一个程序来生成颜色立方体,然后让我用键盘旋转它们。然而,它们被我相机的近剪辑平面切开:

被剪裁的颜色立方体

我尝试使用 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);

同样,没有区别。我是否没有正确推送结果矩阵或其他什么?

4

1 回答 1

2

也许您需要将您的对象移动到离相机更远一点的位置。现在似乎它们比 0.0 更接近。

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

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

于 2012-10-18T14:10:04.717 回答