有没有办法让OpenGL转换一个我用当前模型视图矩阵给它的通用向量并取回结果?
显而易见的方法是查询模型视图矩阵并自己进行乘法运算,但我几乎可以肯定应该有一种方法可以让 OpenGL 为我做这件事。
有没有办法让OpenGL转换一个我用当前模型视图矩阵给它的通用向量并取回结果?
显而易见的方法是查询模型视图矩阵并自己进行乘法运算,但我几乎可以肯定应该有一种方法可以让 OpenGL 为我做这件事。
没错,您必须自己获取模型视图矩阵并转换向量。
如需确认,请参阅第 9.120 段的此链接。
最好在 OpenGL 之外进行计算。如果您还不知道,矩阵和四元数常见问题解答是学习如何执行计算的一个很好的资源。您获取 4x4 模型视图矩阵如下
float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
最好在 CPU 端进行转换。我能想到的唯一其他方法是使用EXT_transform_feedback加上一个仅执行模型视图转换的顶点着色器。
opengl 可能不会只为您执行此操作的原因是因为计算不是渲染管道的一部分。而opengl(大部分)只在显示循环期间执行计算。所以提供这种同步接口是没有意义的。