OpenGL的。如何反转X轴?

时间:2015-02-20 15:09:21

标签: opengl

哟伙计们。我在网络游戏上工作,所有单位的运动都将在服务器端进行处理。对于服务器调试,我必须将物理引擎集成到OpenGL中,或者将OpenGL集成到物理引擎中,实际上我只想使用OpenGL在服务器端可视化单元和其他对象。 但我遇到了一个问题。在游戏引擎内部,我有下一个轴方向enter image description here

但在OpenGL世界中我看到了这个方向 enter image description here

此代码清楚地解释了它。我只画了轴

gl.glBegin(gl.GL_QUADS);
//z
gl.glColor3f(0,0,1);
gl.glVertex3f(-width,0,length);
gl.glColor3f(0,0,1);
gl.glVertex3f(width,0,length);
gl.glColor3f(0,0,0);
gl.glVertex3f(width,0,-length);
gl.glColor3f(0,0,0);
gl.glVertex3f(-width,0,-length);

//x
gl.glColor3f(1,0,0);
gl.glVertex3f(length,0,-width);
gl.glColor3f(1,0,0);
gl.glVertex3f(length,0,width);
gl.glColor3f(0,0,0);
gl.glVertex3f(-length,0,width);
gl.glColor3f(0,0,0);
gl.glVertex3f(-length,0,-width);

//y
gl.glColor3f(0,1,0);
gl.glVertex3f(-width,length,0);
gl.glColor3f(0,1,0);
gl.glVertex3f(width,length,0);
gl.glColor3f(0,0,0);
gl.glVertex3f(width,-length,0);
gl.glColor3f(0,0,0);
gl.glVertex3f(-width,-length,0);
gl.glEnd();

因此,线条的彩色部分位于世界的正面部分,而暗部位则处于负面。 观看下一张图片

enter image description here

你看到了吗? 当我得到截图时,这是相机和兴趣点位置

Camara: (-18.778223, 26.576332, -77.65113)  
Point of interest: (-18.571165, 26.34204, -76.672806)

那么如何反转X轴?

1 个答案:

答案 0 :(得分:4)

我想你的矩阵相关代码如下:

...
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// Matrix calculations
...

然后,你可以这样做:

...
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glScalef(-1, 1, 1); // Each number represents scale for one axis
// Matrix calculations
...

此外,您需要在OpenGL初始化后调用glFrontFace(GL_CW);一次,以补偿多边形绕组方向反转。

<小时/> 但我建议您不要这样做,而是在引擎中反转Z轴。

当引擎中的坐标系与OpenGL中的坐标系相同时更容易:

            +Y

          _______
         /  -Z   \
-X      /         \     +X
       /           \
      /     +Z      \
      """""""""""""""

            -Y