OpenGL vbo 坐标系问题
渲染函数如下,
void renderIsosurface()
{
glBindBuffer(GL_ARRAY_BUFFER, posVbo);
glVertexPointer(4, GL_FLOAT, 0, 0);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, normalVbo);
glNormalPointer(GL_FLOAT, sizeof(float)*4, 0);
glEnableClientState(GL_NORMAL_ARRAY);
glColor3f(1.0, 0.0, 0.0);
glDrawArrays(GL_TRIANGLES, 0, totalVerts);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
posvbo存储顶点坐标,在初始化的时候和数组pos绑定。问题来了:(x,y,z)的顶点,显示在窗口中的位置变成了(-x,-z,-y)。为了证明坐标系是否曾被旋转,我又使用glutSolidSphere()在(x,y,z)位置画了一个球,球位置又是正确的,画在了(x,y,z)。
实在搞不懂怎么回事了,希望大家不吝赐教!
[解决办法]
你用的这几个函数我统统没用过,我只会用最基础的那几个,glClear gluLookAt glPerspective啥的