【发布时间】:2012-10-08 11:30:06
【问题描述】:
我正在为计算机图形课程制作交互式场景。我已经设置了一个程序来生成颜色立方体,然后让我用键盘旋转它们。但是它们被我相机的近剪辑平面切开:
我尝试使用 gluPerspective,但 OpenGL 文档没有给出任何使用示例。我发现它被用于在线示例程序中,并半复制了他们的代码:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective( 65, 1, 0.01, 100 );
glMatrixMode(GL_MODELVIEW);
有什么想法吗?
更新: 正如下面的 cmets 中所建议的,我尝试使用 glFrustum,代码如下:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum( -0.5, 0.5, -0.5, 0.5, 0.1, 100 );
glMatrixMode(GL_MODELVIEW);
同样,没有区别。我没有正确推送结果矩阵吗?
【问题讨论】:
-
您正在学习涉及透视投影的计算图形课程,但他们没有谈到近裁剪平面?
-
也许你需要将你的对象移动到离相机更远一点的地方。现在看来他们离0.0更近了
-
按照克罗姆所说的去做或调整你的视锥体
-
我将立方体从相机移开一整个单位,现在当它们旋转时,它们会被近端和远端剪裁平面剪裁。我会看看视锥体
-
你应该发布你的渲染代码,如果你可以这样做而不被认为是在你的班级作弊。如果您对 gluPerspective 的调用与您使用 glFrustum 时没有区别,那么可能还有其他问题。如果两个平面都在剪裁您的对象,那么它们相对于您的剪裁空间一定很大。您的远平面距离眼睛 100 个单位。立方体有多大?