Какой размер GLSL логического - PullRequest
7 голосов
/ 23 февраля 2012

Существует тип bool для переменных шейдера, который я хотел бы использовать, но я не смог найти, какой у него размер. Это важно, потому что при настройке указателя атрибута вершины я указываю тип данных, который может быть

GL_BYTE,
GL_UNSIGNED_BYTE,
GL_SHORT,
GL_UNSIGNED_SHORT,
GL_INT,
GL_UNSIGNED_INT,
GL_FLOAT, or
GL_DOUBLE

В c ++ обычно bool должен иметь тот же размер, что и 4 байта int, но можно ли предположить, что то же самое для GLSL, или он имеет только 1 байт?

1 Ответ

12 голосов
/ 23 февраля 2012

Это важно, потому что при настройке указателя атрибута вершины я указываю тип данных, который может быть

Это не имеет значения, поскольку атрибуты вершины не могут быть логическими значениями.Из спецификации GLSL 3.30:

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

Логических переменных в этом списке нет.

Однако, если вы хотите знать, какой размер GLSLbool соответствует унифицированным блокам , он имеет тот же размер, что и uint: 32-бит.

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