我正在开发OpenGL中的4分割查看器。一个视图是透视图,其他视图是正交投影(前,左,上)。在glOrtho()视图中绘制立方体?
我写了一个从(-1,-1,-1)到(1,1,1)绘制一个立方体的方法,它在透视视图中工作良好,但是我无法让它工作我的观点使用glOrtho(...)。
现在我把它像这样:
glOrtho(0, width, height, 0, 0, 1);
有趣的是,该视图不显示立方体的。我在OpenGL中为视图实现了一个边框,但它能够正确显示。
我正在使用Qt并编写了QGLWidget的派生类。
假设你的视口也是按高度宽度的,而宽度和高度是你的屏幕坐标(比如说800x600),它会使你的立方体在正视图中宽2像素,否?你的近和远裁剪平面都是0和1,这可能根据眼睛的位置将立方体剪掉。 – vmpstr
有道理。 ;)那么你会使用glScale使其仅适用于拼写视图,还是有更聪明的方法呢? – fuji
@ j.dog:您通常会选择为投影空间体积设置的限制以匹配您的物体的限制。对于将是glOrtho(-aspect,aspect,-1,1,-1,1)的立方体,其中aspect = viewport_width/viewport_height – datenwolf