如何使gluLookAt和glPerspective像glortho一样工作?
我不知道如何设置距离 我应该站在哪里看我的2d资料(中心有一个球,位置:1024/2768/2) 我使用gluLookAt和GlpPerspective使我的2d旋转对象更具3d感 总之,下面是我与glOrtho一起使用的代码:如何使gluLookAt和glPerspective像glortho一样工作?,c,opengl,C,Opengl,我不知道如何设置距离 我应该站在哪里看我的2d资料(中心有一个球,位置:1024/2768/2) 我使用gluLookAt和GlpPerspective使我的2d旋转对象更具3d感 总之,下面是我与glOrtho一起使用的代码: glMatrixMode ( GL_PROJECTION ); glLoadIdentity(); glOrthof ( 0, 1024, 768, 0, 0, 1000.0f ); glMatrixMode ( GL_MODELVIE
glMatrixMode ( GL_PROJECTION );
glLoadIdentity();
glOrthof ( 0, 1024, 768, 0, 0, 1000.0f );
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity();
这是当我尝试设置glPerspective和GLLookat时:
glMatrixMode ( GL_PROJECTION );
glLoadIdentity();
gluPerspective(90,1024/768,0,300);
gluLookAt(1024 * 0.5,768 * 0.5f,-????, 1024 * 0.5,768 * 0.5,0, 0,-1,0);
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity();
基本上我只想要那些工作相同的代码,我不知道如何设置gluPerspective的fovy值,以及???从gluLookAt看,如何投影宽度为1024,高度为768的全尺寸?Well Glor应该产生一个平行投影,因此本质上使用gluPerspective正好相反。如果你希望找到一个像glOrtho一样的gluPerspective的特例,问题是它们生成的矩阵在某些方面是不同的,你无法到达-请注意右下角,特别是它们生成的内容: 格洛托
| 2 |
|---------- 0 0 t |
|right-left x |
| |
| 2 |
| 0 ---------- 0 t |
| top-bottom y |
| |
| |
| 0 0 -2 |
| -------- t |
| far-near z |
| |
| 0 0 0 1 |
gluPerspective
| f |
| ------ 0 0 0 |
| aspect |
| |
| 0 f 0 0 |
| |
| zFar+zNear 2*zFar*zNear |
| 0 0 ---------- ------------ |
| zNear-zFar zNear-zFar |
| |
| 0 0 -1 0 |
因此,对于初学者来说,很难正确设置2/(上下)和下一行
如果这一行是您的问题的核心:
gluLookAt(1024 * 0.5,768 * 0.5f,-????, 1024 * 0.5,768 * 0.5,0, 0,-1,0);
…那么就让你-????到一个正值,表示从场景中心到眼睛的距离(OpenGL的正Z点指向观看者)。您实际上想要实现什么?2d“东西”应该在叠加中绘制,而不是在3d视图中。我想使用gluLookAt和GlpPerspective而不是glOrtho,可能吗?这不是我问的问题。你为什么要这样使用它们?你想在这里得到什么效果?比如说,如果我画一个四边形,它沿着y轴旋转,看起来会更有趣,我想,我的测试程序实际上没有任何3d的东西,只有2d四边形和粒子。