OpenGL: текстурирование при рисовании FBO - PullRequest
0 голосов
/ 06 мая 2011

Кто-нибудь знает, можно ли визуализировать текстурированный объект при рисовании текстуры FBO?Например, я хочу сгенерировать FBO / текстуру, которая показывает рендеринг текстурированного чайника.Это можно использовать для отображения зеркального отражения чайника.

Я пробовал несколько раз, и он всегда возвращает невидимый объект.FBO / текстура показывает линии и другие нетекстурированные затененные объекты, но не текстурированные.Странно ...

- Рисование той же сцены непосредственно в главном кадровом буфере работает отлично.Текстурированные и нетекстурированные объекты отображаются нормально.

- Идентификатор текстуры, на который я рендеринг, не используется при создании FBO / текстуры.Таким образом, нет циклического связывания.

- glGetError не возвращает никаких ошибок после glDrawElements, так что это не источник проблемы.

- Координаты текстуры верны.

- Моя графическая карта (Intel x3100) действительно поддерживает OpenGL 2.0 на Mac OS-X 10.6.7, и примеры программ FBO работают нормально (однако они не поддерживают текстурирование).

Возможно, это что-то очень простое, но я просто не могу его найти ...


Если это невозможно, то какой рекомендуемый способ сделать это?С шейдерами?Требует ли это какой-либо формы мультитекстурирования?

1 Ответ

1 голос
/ 06 мая 2011

FBO отличаются от других целей рендеринга, поэтому текстурирование работает просто отлично.Единственная причина в том, что части текстурных блоков все еще могут быть забиты вложениями FBO.FBO не может быть одновременно и объектом рендеринга, и источником текстур, поэтому, если OpenGL считает, что это может иметь место, могут произойти странные вещи.

Убедитесь, что для рендеринга FBO используется как текстура, сначала необходимо отсоединитьFBO и его вложения из всех текстурных блоков, в которых он используется, затем привязайте FBO в качестве буфера рендеринга для рисования.

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

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