OpenGL问题:我有一些关于剪辑空间转换的问题。我正在阅读一个在线教程,它说你在剪辑空间外绘制的所有内容都将被剪裁。当它出现时,剪辑空间之外的元素是否会影响性能?因为它不会被绘制,因此它不会影响。
假设它会影响性能,并且在像超级马里奥这样的2D游戏的情况下,我正在考虑不要在剪辑空间之外绘制元素以获得更好的性能。
请澄清。感谢。
答案 0 :(得分:2)
OpenGL对你的场景只有一定的知识,并且会在管道中很晚才进行剪辑。它无法应用广泛的阶段测试。假设你可以,你应该。
假设你有一个包含30,000个三角形的模型,OpenGL会在考虑剪裁之前转换这些30,000个三角形中的每一个。如果你知道一些像模型的边界球一样简单的东西,那么你可以看到整个事物在一次测试中完全超出了截头体,并节省了近30,000个额外的工作量。
在像马里奥这样的2D游戏中,这通常意味着使用滚动位置索引到地图中,并仅为可见区域内可能可见的图块和精灵生成几何图形。
对于通常只是男人计算出一个角的(x,y),然后为屏幕的已知宽度和高度生成几何图形的地图,这意味着丢弃绝大多数几何图形并进行零处理。 / p>
对于精灵来说,这通常就是为什么在这类游戏中你常常看到敌人重置到他们的起始位置,如果你从他们那里走了一小段路然后再走回去:他们会根据以下内容添加到活动列表中一个地图位置触发器,当你走得足够远时就会被移除。虽然不活跃,但没有为他们提供可变存储。