Рисование простых фигур, что более эффективно: Shaprenderer или SpriteBatch?

В моей игре у меня около 50 заполненных кругов разного размера и разного цвета, распределенных по всему экрану, и они непрерывно меняют размеры, создавая анимацию. Я сейчас пользуюсь Shaperenderer сделать все из них. Таким образом, все круги выглядят четкими, но кажется, что производительность не очень хорошая. Должен ли я сделать спрайт круга, а затем отрисовать их все, используя SpriteBatch вместо Shaperenderer? Будет ли улучшена производительность при этом?

1 ответ

Решение

Как правило, да, SpriteBatch API более оптимизирован, чем ShapeRenderer API в Libgdx. ShapeRenderer разработан для наложения отладки и прост в использовании. Но это также зависит от особенностей использования API.

ShapeRenderer API предполагает, что ваш видовой экран сопоставлен с пиксельными единицами. Он определяет количество вершин в круге на основе приблизительного предположения. Возможно, вы создаете слишком много вершин для каждого круга (и вы можете улучшить производительность, не жертвуя верностью за счет уменьшения количества вычисляемых вершин).

Однако для любого конкретного случая имеет смысл профилировать свой код и посмотреть, на что фактически тратится время, прежде чем оптимизировать.

Другие вопросы по тегам