OpenGL:旋转立方体的错误投影

时间:2015-05-03 18:46:28

标签: c++ opengl orthographic

我有以下代码块。

OpenGL初始化:

views/layouts/application.html.haml

OpenGL循环:

    glClearDepth(1.0);
    glDepthFunc(GL_LESS);
    glEnable(GL_DEPTH_TEST);
    glShadeModel(GL_SMOOTH);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity(); 
    glOrtho(-WIDTH / (float) HEIGHT, WIDTH / HEIGHT, -1.0f, 1.0f, -1.0f, 1.0f);
    glMatrixMode(GL_MODELVIEW);
    glEnable(GL_TEXTURE_2D);

宽度= 800,高度= 600.我希望有一个完美旋转的立方体;但是,从某些角度来看,它看起来并不正确。

Rotating cube 我认为我在glOrtho中有一个问题,因为我不知道如何创建正确的表达。

2 个答案:

答案 0 :(得分:4)

你的立方体被前面和近面的平面夹住了。你的立方体的范围是1.5,它的中心距离你的“相机”1个单位,但是你的剪裁范围只有[-1,1](相对于相机),所以更远的边缘将会离开观看视锥体。

答案 1 :(得分:2)

glPerspective()是3D渲染的更好方法,而不是glOrtho()。使用glPerspective()创建查看量。 当我用
替换glOrtho()表达式时 library("partykit") plot(as.party(treefit))

我有一个完美的立方体。

Result