Opengl 如何从glMultMatrixf获取平移和旋转?
我正在查看旧的OpenGL代码,如:Opengl 如何从glMultMatrixf获取平移和旋转?,opengl,Opengl,我正在查看旧的OpenGL代码,如: 它使用此glMultMatrixf api创建一个圆锥体状对象。假设我们想使用类似于添加(const-eigent::Vector3f&translation,const-eigent::Quaternionf&rotation)的东西使其现代化。如何从glMultMatrixf获取平移和旋转?您不需要从glMultMatrix的结果中获取任何信息-您已经拥有了包含此对象的合成变换的矩阵Twc.m,当切换到现代OpenGL时,使用Twc.m作为单独的矩阵是该
它使用此glMultMatrixf api创建一个圆锥体状对象。假设我们想使用类似于添加(const-eigent::Vector3f&translation,const-eigent::Quaternionf&rotation)的东西使其现代化。如何从
glMultMatrixf
获取平移和旋转?您不需要从glMultMatrix
的结果中获取任何信息-您已经拥有了包含此对象的合成变换的矩阵Twc.m
,当切换到现代OpenGL时,使用Twc.m
作为单独的矩阵是该代码中唯一保持不变的部分。现在,您只需在顶点着色器中应用该矩阵(与视图和投影变换结合使用)。glMultMatrixf在旧API中仅将变换(平移、旋转和缩放的任意组合)应用于后续几何体。你的createAt大概只是一个翻译。查找创建Twc.m矩阵的代码,并查看它使用的值
glPushMatrix();
glMultMatrixf(Twc.m);
glLineWidth(mCameraLineWidth);
glColor3f(0.0f,1.0f,0.0f);
glBegin(GL_LINES);
glVertex3f(0,0,0);
//... more glVertex3f
glEnd();
glPopMatrix();