不使用glGet*调用的OpenGL截锥体剔除

4

许多视锥体计算的示例使用glGetFloatv()获取当前投影和模型视图矩阵(GL_PROJECTION_MATRIX,GL_MODELVIEW_MATRIX),并基于此进行一些视锥体裁剪。

我已经了解到,glGet*不应该出现在主渲染循环中;

“使用“Get”或“Is”函数会减慢渲染性能。这些命令会强制图形系统在回答“Get”或“Is”查询之前执行所有排队的OpenGL调用。”

所以我的问题是,如何在我的代码中创建一个稳定的视锥体裁剪算法,并将其放在哪里以确保永远不会发生这种停顿?

2个回答

6

你可以在应用中始终存储当前矩阵,这样当你需要它们的时候,就不需要进行 glGet 调用,而是可以直接获取它们...



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接