Визуализация текстуры 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()
вернуть какие-либо ошибки?
Если все проверено правильно, тогда опубликуйте некоторый код установки и рендеринга скелета... хотя чем менее запутанным, тем лучше, конечно =)