在glOrtho()视图中绘制一个立方体?

时间:2012-05-11 19:33:57

标签: qt opengl cube orthographic orthogonal

我正在OpenGL中开发一个4分割查看器。一个视图是透视图,其他视图用于正交投影(前,左,上)。

我写了一个方法,从(-1,-1,-1)到(1,1,1)绘制一个立方体,它在透视视图中运行良好,但我不能让它在我的工作使用glOrtho(...)的视图。

现在我把它设置成这样:

    glOrtho(0, width, height, 0, 0, 1);

有趣的是,视图根本没有显示多维数据集。我在OpenGL中为视图实现了一个边框,但它可以正确显示。

我正在使用Qt并编写了一个QGLWidget的派生类。

1 个答案:

答案 0 :(得分:1)

glOrthomodel transformview transform之后的视图空间中定义了6个剪裁平面。所以你应该在Eye Space而不是Screen Space中指定glOrtho的参数。在您的情况下,glOrtho(-width/(float)height, width/height, -1.0f, 1.0f, -1.0f, 1.0f)假设eye position位于(0.0, 0.0, 0.0)viewportwidth height。如果近平面位于观察者后面(眼睛位置),则NearVal的{​​{1}}参数应为负。你可能想要男人glOrthoglOrtho的{​​{3}}可以为您提供有关不同坐标空间转换的详细信息,例如Cg tuturialObject SpaceWorld SpaceEye SpaceClip spaceNormalized Device Space