2015-06-03 5 views
-1

Я пытаюсь применить простой эффект виньетки к своей сцене, используя фреймбуфер и визуализацию на экране. Я смог получить FBO и эффект, но по какой-то причине моя сцена не появляется вообще. Когда загрузка сцены, я могу видеть объекты на долю секунды, тогда она просто «пуста» (проверьте прикрепленный gif). Я понимаю, что сцена правильно отображается в FBO (иначе она не будет видна вообще, даже на короткое время), но по какой-то причине она была уничтожена чем-то.Обработка почтовых сообщений OpenGL

Исходные файлы: gist.github.com/morcmarc/31a02dbbd9aad2955f47

http://postimg.org/image/wvhuestr3/

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

http://postimg.org/image/jegkle3z9/

+0

Попробуйте добавить некоторые glGetError, чтобы увидеть, содержит ли gl какие-либо ошибки. Из моего быстрого чтения, хотя вы не отвязываете gl.BindTexture (gl.TEXTURE_2D, this.fboTex), который может вызвать проблемы (круговая ссылка?), Но это может быть что-то другое. –

+0

Я попытался развязать его, но не помог. Достаточно ли gl.Disable (gl.TEXTURE_2D)? Также забыл упомянуть, что я основывал свою почтовую обработку на следующих http://en.wikibooks.org/wiki/OpenGL_Programming/Post-Processing, если вы предпочитаете синтаксис C++. – morcmarc

+0

Да, gl.Disable (gl.TEXTURE_2D) должно быть достаточно. Я по-прежнему рекомендую добавить некоторые glGetErrors или запустить его через glintercept https://github.com/dtrebilco/glintercept или подобное. –

ответ

0

Нашли проблему: забыл привязать массив вершин в цикле рендеринга мой пост-процессора. Проверял код на http://en.wikibooks.org/wiki/OpenGL_Programming/Post-Processing, и он там тоже отсутствует.

В любом случае, это был хороший урок, и я чувствую, что теперь у меня есть лучшее понимание OpenGL.

Смежные вопросы