2016-04-06 6 views
0

Я копаюсь в LibGDX SpriteBatch class, поскольку я собираюсь написать свою собственную утилиту дозирования для набора квадратной геометрии, и мне интересно, почему она использует GL_TRIANGLES в качестве своего примитивного типа, а не GL_QUADS?Почему LibGDX SpriteBatch использует треугольники вместо квадов?

Все, нарисованное с помощью SpriteBatch, представляет собой квад, поэтому было бы не более эффективно настраивать вершины и индексы вместо использования квадрантов?

+0

По существу, каждый квад состоит из двух треугольников, я не знаком с внутренними работами, но производительность мудрая «должна» неважно, каждый 3D-объект на компьютере рисуется треугольниками. Это потому, что треугольник всегда «плоский». Другими словами, штатив всегда стабилен, а не шаткий, как стол с 4-мя ногами. – Madmenyo

+0

Спасибо за понимание. Я думал, что может быть полезно отправить меньше вершин и индексов на GPU из CPU (4 вершины для каждого квадрата, а не 6, упакованные в тысячи), которые GPU действительно вычислит как получившиеся треугольники. Это просто улучшение объема данных для передачи. –

ответ

1

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

+0

А это имеет смысл, когда LibGDX пытается обеспечить совместимость с мобильными устройствами низкого уровня. Благодаря! –

+1

Высокопроизводительные устройства также используют OpenGL ES. – Tenfour04

Смежные вопросы