Я пытаюсь реализовать систему для создания графических интерфейсов с OpenGL. Для некоторых приложений, таких как растровые шрифты, было бы неплохо иметь смещение для текстур, которые должны отображаться на объекте.
Так что мое смещение в вершинном шейдере выглядит так:
UV = vec2(uv.x, 1.0f - uv.y) + vec2(texOffset.x, texOffset.y);
Я проверил свое смещение, используя прямоугольник со смещением, которое я постоянно увеличиваю.
Добавление этого смещения по оси x выглядит следующим образом: https://youtu.be/z7bKgb7zcPc, что хорошо.
Использование моего смещения по оси Y выглядит следующим образом: https://youtu.be/2S_duM5JK_w это тоже хорошо.
Но теперь применяем смещение по оси X и Y выглядит так: https://youtu.be/t_aJbQwbagw, что не в порядке.
Разве это не должно двигаться так: https://youtu.be/0GzPRpIaabE?
Почему мой результат отличается от того, что я ожидаю?