Загрузка и сохранение изображений OpenGL: запекание текстуры пространства экрана в текстуру пространства UV - PullRequest
1 голос
/ 09 марта 2012

Что я хотел бы сделать:

У меня есть 3D-преобразованный объект с белой структурой, а также изображение на экране.

Я хочу превратить изображение в пространстве экрана в текстуру объекта, чтобы его трехмерное представление на экране точно совпадало с изображением в пространстве экрана (поэтому я хочу проецировать его на пространство ультрафиолета).

Я бы хотел сделать это с помощью image_load_and store. Я представляю это как:

1-й проход: преобразование преобразованных трехмерных объектов в координаты вне экрана

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

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

1 Ответ

2 голосов
/ 10 марта 2012

Ваш предложенный способ, безусловно, является одним из способов сделать это, и на самом деле он довольно распространен.Другой способ - обратная проекция из пространства экрана в пространство текстуры.Это не так сложно, как может показаться на первый взгляд.В основном для каждого треугольника вы должны найти преобразование касательных пространственных векторов (UV) на поверхности моделей в их экранные аналоги.В дополнение к этому преобразуйте сам треугольник, чтобы найти границы экранного треугольника на рисунке.Затем вы инвертируете эту проекцию.

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