OpenGL ES: количество вершин для текстур - PullRequest
1 голос
/ 05 декабря 2010

Скажем, мы хотим сделать куб.Чтобы нарисовать геометрию, нам нужно всего 8 вершин.Правда ли, что в случае, когда нам нужно отобразить текстуры, нам нужно 24 вершины, то есть мы должны предоставить избыточные вершины?

Спасибо

Ответы [ 2 ]

1 голос
/ 06 декабря 2010

Я предоставляю код для индексированного текстурированного куба для iPhone здесь , если вы хотите увидеть пример этого в действии. Даже если вы не на iPhone, это может помочь проиллюстрировать, как индексы могут уменьшить размер геометрии для такого объекта, как этот. Части кода OpenGL ES должны хорошо переводиться на другие платформы.

Индексы могут препятствовать загрузке избыточной геометрии (размер которой может быть ограничивающим фактором для мобильных графических процессоров), а графические процессоры, подобные тем, что установлены на устройствах iOS, оптимизированы для индексированных треугольных полос. Я наблюдал некоторые значительные выигрыши в производительности при использовании индексов для уменьшения размера моей геометрии.

1 голос
/ 05 декабря 2010

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

OpenGL обеспечивает функциональность массива вершин, которая может использоваться для разделения битов данных вершин на независимые порции. Допустим, вы можете иметь координаты в одном последовательном массиве, цвета в другом и координаты текстуры и в третьем. Данные вершин не должны чередоваться. См glVertexPointer, glColorPointer, glTexCoordPointer и т. Д.

Используя массивы вершин, вы могли бы сэкономить некоторую память, разделяя некоторые данные вершин, но это потребовало бы много вызовов отрисовки и не стоило бы этого в этом простом случае куба. Эта статья может быть весьма полезна, зацените ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...