opengl中的内置函数,用于获取最终转换点的坐标

opengl中的内置函数,用于获取最终转换点的坐标,opengl,graphics,transformation,Opengl,Graphics,Transformation,比如说,我得到了一个点[x,y,z]。我应用了一些变换矩阵(由缩放、旋转和平移组成)。当然,我可以编写自己的例程来获得最终转换点的坐标。opengl中是否有任何内置函数可用于此功能 这种类型的函数可能会得到很好的优化,我将要写的可能没有那么高效 您可以使用: 尽管您最好使用适当的矩阵库,例如,因为它只是一个矩阵向量乘法。您提供了一些相当“旧”的openGL代码。目前最好使用第三方库(如您所写)。例如,我对GLM很满意 glMatrixMode( GL_MODELVIEW ); glLoadIde

比如说,我得到了一个点[x,y,z]。我应用了一些变换矩阵(由缩放、旋转和平移组成)。当然,我可以编写自己的例程来获得最终转换点的坐标。opengl中是否有任何内置函数可用于此功能

这种类型的函数可能会得到很好的优化,我将要写的可能没有那么高效

您可以使用:

尽管您最好使用适当的矩阵库,例如,因为它只是一个矩阵向量乘法。

您提供了一些相当“旧”的openGL代码。目前最好使用第三方库(如您所写)。例如,我对GLM很满意
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glRotatef( 90, 0, 0, 1 );
GLdouble modelview[16] = { 0 };
glGetDoublev( GL_MODELVIEW_MATRIX, modelview );

GLdouble identity[16] = { 
    1, 0, 0, 0,
    0, 1, 0, 0,
    0, 0, 1, 0,
    0, 0, 0, 1
};
GLint view[4] = { -1, -1, 2, 2 };

// rotate (1,0,0) by 90 degrees around the Z axis:
double x, y, z;
gluProject( 1, 0, 0, modelview, identity, view, &x, &y, &z );
z = ( z * 2 ) - 1;

// x,y,z should equal (0,1,0)