Визуализация текстуры OpenGL FBO в GLXPixmap

Я пишу некоторый код, который предназначен для: 1. Рендеринга в текстуру OpenGL с использованием FBO. 2. Нарисуйте из текстуры FBO карту GLXPixmap, которая прикреплена к X Pixmap. 3. Нарисуйте X Pixmap в окне на экране.

Шаг 3 работает отлично, а шаг 2 работает нормально, если я заменю текстуру FBO обычным рисунком OpenGL.

Но если я сделаю то, что описано выше, по крайней мере, с моим кодом, это не сработает. Если я даю GLXPixmap цветной фон и выполняю 1-3, окно на экране становится белым, но больше ничего, что я нарисовал, не появляется.

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

1 ответ

Решение

Если ваши последние два шага работают, но не используют FBO, созданное на первом этапе, вы, вероятно, неправильно инициализируете FBO. Некоторые вещи, чтобы проверить:

  • FBO "кадровый буфер завершен"? Проверьте используя glCheckFramebufferStatus( GL_FRAMEBUFFER_COMPLETE ) после того, как вы прикрепите к нему все свои текстуры и / или буфер визуализации.
  • Есть ли у вас какой-либо способ проверки FBO после рендеринга на него (например, с помощью glGetTexImage) определить, есть ли проблема с записью в FBO или чтением из него?
  • Вы, наверное, уже проверили, но стоит спросить: glGetError() вернуть какие-либо ошибки?

Если все проверено правильно, тогда опубликуйте некоторый код установки и рендеринга скелета... хотя чем менее запутанным, тем лучше, конечно =)

Другие вопросы по тегам