我正在使用 OpenGL 绘制 2D 形状。他们没有使用那么多多边形。我注意到我可以有很多很多的形状,只要它们不重叠。如果我在一个形状后面得到一个形状......等等......它真的开始滞后。我觉得我可能做错了什么。这是正常的吗?有没有办法解决这个问题(我不能省略渲染,因为我对 Alpha 进行了混合)。我还启用了 CW 背面剔除。
Thanks
您的两个案例(重叠和非重叠)是否使用完全相同的一组形状?因为如果重叠情况涉及的所有形状的总面积大于第一个情况,那么预计会更慢。如果是同一组形状,其中一些形状重叠时速度会减慢,那么这将是非常不寻常的,并且不应该发生在任何标准硬件 OpenGL 实现上(您使用的是什么平台?)。背面剔除不会造成任何问题。
每当绘制形状时,GPU 都必须对其覆盖在屏幕上的每个像素执行一些工作。如果在同一位置绘制同一形状 100 次,则像素工作量是 100 倍。如果您按深度排序顺序绘制对象,深度缓冲可以减少不透明对象的一些额外成本,但该技巧不适用于使用透明度的对象。
使用透明度时,重要的是每个渲染形状的面积总和。不是渲染所有内容后覆盖的屏幕量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)