我是OpenGL新手。我在JOGL中使用它。
我正在阅读有关平截头体剔除的信息:
http://www.lighthouse3d.com/opengl/viewfrustum/
http://www.crownandcutlass.com/features/technicaldetails/frustum.html
我不确定该怎么做。 OpenGL不会自动剔除屏幕外的对象吗? (此筛选是否比不首先发送对象慢得多?)
从我正在阅读的内容来看,这似乎无法避免避免在另一个视线后面隐藏但位于视锥中的绘图对象。这是否意味着唯一的好处就是避免将屏幕外对象发送到OpenGL?
最佳答案
是的,您基本上是正确的。视锥剔除会切除相机金字塔外部的物体。 OpenGL在渲染场景时当然也会这样做,但要基于每个顶点。视锥细胞剔除针对每个对象起作用,因此其性能提升潜力更高。
瓶颈之一是在CPU和GPU之间传输数据。例如,如果您仅需要转移室外场景中所有对象/顶点的1/4,则平截锥体剔除可以带来不错的性能提升。