Ах, ты прав. Я повторно использовал термин из соответствующего поста, не задумываясь об этом. Я обновил свой ответ, чтобы использовать правильную терминологию.
ался визуализировать GL_QUAD (который имеет форму трапеции) с квадратной текстурой. Я хотел бы попробовать использовать OpenGL только для этого. Прямо сейчас текстура сильно искажается, и это действительно раздражает.
Обычно я загружаю текстуру для вычисления гомографии, но это требует много работы и дополнительной библиотеки линейного программирования / функции прямого линейного преобразования. У меня сложилось впечатление, что OpenGL может упростить этот процесс для меня.
Я посмотрел в Интернете и видел«Перспективное правильное текстурирование, Q-координаты и GLSL» а также«Перекошенное / сдвоенное наложение текстур в OpenGL».
Похоже, что все они предполагают, что вы будете делать какие-то гомографические вычисления или использовать некоторые части OpenGL, о которых я ничего не знаю ... любой совет?
Обновить:
Я читаю«Навигация в статических средах с использованием упрощения пространства изображений и морфинга» [PDF] - стр. 9 приложение А.
Похоже, что они отключают коррекцию перспективы, умножая координату текстуры (s, t, r, q) на вершину z-компонента компонента мирового пространства модели.
поэтому для заданной координаты текстуры (s, r, t, q) для квадрата, который имеет форму трапеции, где 4 компонента:
(0.0f, 0.0f, 0.0f, 1.0f),
(0.0f, 1.0f, 0.0f, 1.0f),
(1.0f, 1.0f, 0.0f, 1.0f),
(1.0f, 0.0f, 0.0f, 1.0f)
Это так же просто, как glTexCoord4f (svert.z, rvert.z, t, q * vert.z)? Или я пропускаю какой-то шаг? как возиться с GL_TEXTURE glMatrixMode?
Обновление № 2:
Это сделало трюк! Имейте это в виду, ребята, эта проблема во всем Интернете, и не было никаких простых ответов. Большинство из них связаны с прямым пересчетом текстуры с гомографией между исходной формой и преобразованной формой ... много линейной алгебры и внешней зависимостью от BLAS-библиотеки.