Есть ли в OpenGL значение по умолчанию для glStencilMask? - PullRequest
0 голосов
/ 15 февраля 2019

Ради интереса, мне любопытно, если glStencilMask и glStencilMaskSeparate (и подобные) имеют значение по умолчанию, или если они определены реализацией, или если они не определены.

Я полагаю, мудрыйнужно всегда устанавливать их с самого начала, но мне любопытно, просто ли они «работают» по совпадению или есть ли на самом деле набор значений по умолчанию.

Немного связано: я вспоминаю, что где-то читал, чтона картах nvidia вам не нужно устанавливать активную текстуру, и по умолчанию она равна нулю, но карты AMD требуют ее установки, иначе вы можете получить нежелательные результаты.Это заставляет меня задаться вопросом, если это то же самое (где трафаретные вещи работают для меня, но случайно), и, не устанавливая его, я играю в опасную игру или это не так.

Я просматривал спецификации OpenGL [раздел 17.4.2] для определения этих функций, но не смог найти ответ на свой вопрос.

1 Ответ

0 голосов
/ 15 февраля 2019

Начальное состояние glStencilMask четко указано.Первоначально маска состоит из всех единиц.

Спецификация профиля ядра API OpenGL 4.6 - 17.4.2 Точный контроль обновлений буфера;стр. 522 :

void StencilMask( uint mask );
void StencilMaskSeparate( enum face, uint mask );

управляет записью определенных битов в плоскости трафарета.
Наименее значимые биты s маски, где s - количество битов в трафарете.буфер, укажите целочисленную маску.Если в этой маске появляется 1, соответствующий бит записывается в буфере трафарета;где появляется 0, бит не записывается.

[...]

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

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