CCSpriteBatch 节点是否仅绘制可见属性设置为 true 的精灵?
或者它也考虑屏幕尺寸?换句话说。如果节点内的精灵位于屏幕之外,opengl 绘制调用的性能是否会反映这一点?
不,不。
CCSpriteBatchNode 始终绘制所有子精灵。我不确定到底是什么使可见 = NO 的精灵不出现在屏幕上,但从技术上讲,它每次都会绘制所有四边形。它还没有考虑屏幕区域。
未批量处理的精灵的行为有所不同。如果非批处理精灵不可见,则根本不会绘制它。然而,屏幕外的精灵会被绘制。 Cocos2D 没有跳过屏幕/窗口边界之外的节点绘制的功能。
以下是我过去几年读到的道听途说,因此请持保留态度:
太多的批处理精灵仍然会对性能产生负面影响,即使它们不可见或在屏幕之外。 GPU 负责取消由于完全位于屏幕之外而不可见的四边形的绘制。它仍然需要处理这些四边形。
这是cocos2d的tilemap实现的主要问题,也是为什么它在处理大tilemap时如此缓慢。内部图块地图也使用相同的精灵批处理技术。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)