有没有办法让OpenGL变换为一个通用向量,我给它与当前的模型视图矩阵并得到结果吗?OpenGL:模型视图矩阵的多个用户向量?
显而易见的方法是查询模型视图矩阵并自己进行乘法运算,但我几乎可以肯定应该有办法让OpenGL为我做这件事。
有没有办法让OpenGL变换为一个通用向量,我给它与当前的模型视图矩阵并得到结果吗?OpenGL:模型视图矩阵的多个用户向量?
显而易见的方法是查询模型视图矩阵并自己进行乘法运算,但我几乎可以肯定应该有办法让OpenGL为我做这件事。
你是对的,你必须得到模型视图矩阵并自己转换矢量。
如需确认,请参见this link的第9.120段。
最好在OpenGL之外进行计算。 The Matrix and Quaternions FAQ是学习如何执行计算的好资源,如果您还不知道。您可以按如下方式获取4x4模型视图矩阵:
float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
可能最好在CPU端进行转换。我能想到的唯一方法是使用加顶点着色器,只做模型视图转换。
opengl可能不会为你做这件事的原因是因为计算不是渲染管道的一部分。和opengl(大部分)只在显示循环中执行计算。所以提供这些类型的同步接口是没有意义的。