【发布时间】:2011-10-26 20:18:37
【问题描述】:
我只想创建一个视角,相机的眼睛在,比如说:(2, 2, -2),正对着原点。我正在尝试使用gluLookAt() 和glFrustum() 的组合,但由于某种原因,虽然它正在渲染,但我的对象看起来非常扭曲:
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glFrustum (-1.0, 1.0, -1.0, 1.0, 1.0, 500.0);
...
gluLookAt (-2.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0);
我做错了什么?
编辑:这是截图。左侧定义要绕 y 轴扫描的轮廓曲线。它在透视图中应该是一个圆柱体,但它……是扭曲的。
编辑 2:另外,透视图中的那些轴设置如下,我知道这是不正确的:
// draw the axis
glBegin(GL_LINES);
// x
glVertex3f(500.0, 0.0, 0.0);
glVertex3f(-500.0, 0.0, 0.0);
// y
glVertex3f(0.0, -500.0, 0.0);
glVertex3f(0.0, 500.0, 0.0);
// z
glVertex3f(0.0, 0.0, -500.0);
glVertex3f(0.0, 0.0, 500.0);
glEnd();
编辑 3:此外,该形状的所有顶点的 x、y 或 z 值均不大于 1.0..
【问题讨论】:
-
你能发一张你得到的截图吗?
-
@ChrisF:我已经发布了截图。
-
看起来您离对象有点太近了。将相机移远一点。
-
@ChrisF:根据我的编辑,我的最大顶点范围仅达到 (1,1,1),所以我认为离得更远没有帮助。我试过了,但它确实变小了。
-
现在没有想法了。什么是视野?