我有以下代码块。
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.我希望有一个完美旋转的立方体;但是,从某些角度来看,它看起来并不正确。
我认为我在glOrtho中有一个问题,因为我不知道如何创建正确的表达。
答案 0 :(得分:4)
你的立方体被前面和近面的平面夹住了。你的立方体的范围是1.5,它的中心距离你的“相机”1个单位,但是你的剪裁范围只有[-1,1](相对于相机),所以更远的边缘将会离开观看视锥体。
答案 1 :(得分:2)
glPerspective()是3D渲染的更好方法,而不是glOrtho()。使用glPerspective()创建查看量。
当我用
替换glOrtho()表达式时
library("partykit")
plot(as.party(treefit))
我有一个完美的立方体。