Рисование простых фигур, что более эффективно: Shaprenderer или SpriteBatch?
В моей игре у меня около 50 заполненных кругов разного размера и разного цвета, распределенных по всему экрану, и они непрерывно меняют размеры, создавая анимацию. Я сейчас пользуюсь Shaperenderer
сделать все из них. Таким образом, все круги выглядят четкими, но кажется, что производительность не очень хорошая. Должен ли я сделать спрайт круга, а затем отрисовать их все, используя SpriteBatch
вместо Shaperenderer
? Будет ли улучшена производительность при этом?
1 ответ
Как правило, да, SpriteBatch
API более оптимизирован, чем ShapeRenderer
API в Libgdx. ShapeRenderer
разработан для наложения отладки и прост в использовании. Но это также зависит от особенностей использования API.
ShapeRenderer
API предполагает, что ваш видовой экран сопоставлен с пиксельными единицами. Он определяет количество вершин в круге на основе приблизительного предположения. Возможно, вы создаете слишком много вершин для каждого круга (и вы можете улучшить производительность, не жертвуя верностью за счет уменьшения количества вычисляемых вершин).
Однако для любого конкретного случая имеет смысл профилировать свой код и посмотреть, на что фактически тратится время, прежде чем оптимизировать.