有没有办法让OpenGL变换为一般向量我用当前的模型视图矩阵给它并得到结果?
显而易见的方法是查询模型视图矩阵并自己进行乘法运算 我几乎肯定应该有办法让OpenGL为我做这个。
答案 0 :(得分:5)
你是对的,你必须自己获得模型视图矩阵并转换矢量。
如需确认,请参阅第9.120段的this link。
答案 1 :(得分:4)
最好在OpenGL之外进行计算。 The Matrix and Quaternions FAQ是学习如何执行计算的好资源,如果您还不知道的话。您按如下方式获取4x4模型视图矩阵
float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
答案 2 :(得分:0)
最好在CPU端进行转换。我能想到的另一种方法是使用EXT_transform_feedback加上只进行模型视图转换的顶点着色器。
答案 3 :(得分:-1)
为什么opengl可能不会为你做这个是因为计算不是渲染管道的一部分。和opengl(大多数情况下)仅在显示循环期间执行计算。因此提供这种同步接口没有意义。