Можно ли присоединить рендеринг-буфер по умолчанию к FBO? - PullRequest
7 голосов
/ 24 января 2011

Я подумываю о рефакторинге значительной части моего кода рендеринга, и на ум приходит один вопрос: можно ли выполнить рендеринг как на экран, так и на текстуру, используя несколько цветовых вложений в объекте Frame Buffer?Я не могу найти какую-либо информацию, если это возможно или нет, хотя у него много полезных приложений.Я полагаю, этого должно быть достаточно, чтобы привязать мою текстуру в виде color attachment0 и renderbuffer 0 к attachment1?

Например, я хочу создать интерактивное приложение, в котором можно «рисовать» на 3D-модели.Я определяю, где пользователь рисует, отрисовывая UV-координаты в текстуре, чтобы я мог посмотреть на координаты мыши, где можно изменить текстуру.В моем случае было бы быстрее всего иметь шейдер, который рисует как УФ-лучи на текстуру, так и фактическую текстуру на экране за один проход.

Есть ли лучшие способы сделать это, или я на правильном пути?

1 Ответ

6 голосов
/ 24 января 2011

В OpenGL нет такого понятия, как «рендеринг по умолчанию». Существует оконная система, предоставленная по умолчанию кадровый буфер с зарезервированным именем ноль, но это в основном означает «FBO не включено». Так что нет, к сожалению, обычный OpenGL не предоставляет какого-либо метода для использования своего цветового буфера в качестве цветовой привязки к любому другому FBO. Я не знаю каких-либо расширений, которые могли бы обеспечить эту функцию.

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

...