绘制两次相同的精灵或一个双倍大小的精灵更好?

Better to draw two times the same sprite or one double-sized sprite?

我正在处理视差背景,我想知道哪种方法最适合绘制滚动背景:

我应该写两个 sprite 一个紧挨着另一个并更新它们的位置,还是写一个 sprite 两次相同的图片贴在一起?

(我正在寻找最佳性能)

谢谢

通常回答这个问题的最好方法是自己测试,但是在 SFML 的常见问题解答中有这个:

https://www.sfml-dev.org/faq.php#graphics-xsprite

在 SFML 中绘制的最快方法之一是将您的实现切换为使用它 VertexArray,因为这只需 1 个绘制调用即可绘制多个对象。

SFML 在此处提供了一个如何使用 VertexArray 的示例: https://www.sfml-dev.org/tutorials/2.4/graphics-vertex-array.php

快速了解一下精灵的绘制方式,SFML 中的精灵有 4 个顶点,每个顶点都必须通过 OpenGL 中的顶点着色器进行转换。因此,如果您正在绘制相同的精灵,那么您正在变换 8 个顶点,如果您将尺寸加倍,则您正在绘制 4 个顶点。片段着色器上的开销应该是差不多的。

最后一点,立即开始运行,稍后优化。