OpenGl текстурное обертывание - PullRequest
0 голосов
/ 02 февраля 2019

Как OpenGL вычисляет новую координату текстуры при переносе с GL_MIRRORED_REPEAT?Я имею ввиду данный (x, y) какая формула применяется?https://open.gl/textures

1 Ответ

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

См. Спецификация профиля ядра API OpenGL 4.6;8.14.2. Координатная упаковка и выбор текселей;стр. 257, таблица 8.20

MIRRORED_REPEAT : (size − 1) − mirror(coord mod (2 × size)) − size) 

, где mirror(a) возвращает if a ≥ 0, а в противном случае −(1 + a).

Это означает, что если текстурапосле этого чётные плитки рисуются как текстура, а нечетные плитки отображаются зеркально.

Если координаты текстуры находятся в [0, 1], [2, 3], [4, 5], ..., то функция wrap возвращает соответствующую координату в диапазоне[0, 1].
Если координаты текстуры находятся в [1, 2], [3, 4], [5, 6], ..., то функция wrap возвращает соответствующийзеркальная координата в диапазоне [1, 0].

Функция wrap применяется к каждой координате отдельно, и для каждой координаты может быть установлена ​​отдельная, отдельная функция wrap .

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