Получение данных FBO в GLSL - PullRequest
2 голосов
/ 06 июня 2010

Я пытаюсь заставить MRT работать в OpenGL, чтобы попробовать отложенный рендеринг. Вот ситуация, насколько я понимаю.

  1. Создайте 3 буфера рендеринга (например). Два RGBA8 и один Depth32.
  2. Создать FBO.
  3. Прикрепить буфера рендеринга к FBO. ColorAttachment0 / 1 для буферов цвета, DepthAttachment для буфера глубины.
  4. Свяжите FBO.
  5. Нарисовать геометрию.
  6. Отправка данных в разные вложения с помощью gl_FragData[] в шейдере фрагмента.

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

1 Ответ

2 голосов
/ 07 июня 2010

Что вы используете в качестве вложений FBO? Renderbuffers? Текстуры?

Вы должны использовать текстуры в качестве цветовых вложений (и вложений глубины), чтобы вы могли прочитать их в следующем проходе. Нет способа сделать то же самое с рендерингом буфера.

...