GLubyte vs GLshort для индексов - PullRequest
       29

GLubyte vs GLshort для индексов

2 голосов
/ 18 ноября 2010

Просматривая документацию по массивам вершин в OpenGL, я обнаружил два наиболее распространенных типа памяти, используемых для индексов: GLubyte (GL_UNSIGNED_BYTE) и GLshort (GL_SHORT). Мне было интересно, есть ли какая-либо фактическая разница между использованием двух для индексов

Спасибо, Dragonwrenn

Ответы [ 3 ]

8 голосов
/ 18 ноября 2010

GL_UNSIGNED_BYTE хорошо для моделей, которые имеют не более 256 вершин - это на самом деле не так много.

GL_UNSIGNED_SHORT, принимая 2 байта, ограничит вас 65536 вершинами - все же это немного.

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

4 голосов
/ 18 ноября 2010

GL_UNSIGNED_BYTE - 1 байт, GL_SHORT - 2 байта. Единственное преимущество байтов состоит в том, что они меньше, поэтому им требуется меньше памяти для хранения и меньше времени для передачи в графическую память (при условии использования вершинных массивов или VBO).

Имейте в виду, что не все типы доступны для всех целей: например, у вас не может быть вершин GL_UNSIGNED_BYTE.

3 голосов
/ 19 ноября 2010

Графические процессоры могут обрабатывать только 16- или 32-битные индексы, поэтому при использовании GL_UNSIGNED_BYTE возникают дополнительные издержки и нет экономии памяти.

...