有没有办法让OpenGL变换为一般向量我用当前的模型视图矩阵给它并得到结果?

显而易见的方法是查询模型视图矩阵并自己进行乘法运算 我几乎肯定应该有办法让OpenGL为我做这个。

有帮助吗?

解决方案

你是对的,你必须自己获得模型视图矩阵并转换矢量。

如需确认,请参阅第9.120段的此链接

其他提示

最好在OpenGL之外进行计算。 Matrix和Quaternions FAQ 是学习如何执行计算的好资源。不知道了。您按如下方式获取4x4模型视图矩阵

float modelview[16];
glGetFloatv(GL_MODELVIEW_MATRIX, modelview);

最好在CPU端进行转换。我能想到的另一种方法是使用 EXT_transform_feedback 加上顶点着色器,仅执行模型视图转换。

为什么opengl可能不会为你做这个是因为计算不是渲染管道的一部分。和opengl(大多数情况下)仅在显示循环期间执行计算。因此提供这种同步接口没有意义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top