2015-07-28 11 views
0

Если это так, я могу сохранить содержимое FBO в качестве файла изображения.Возможно ли скопировать фреймбуфер по умолчанию в объект фреймбуфера, не показывая ничего на экране?

Другой вопрос: У этого изображения будет разрешение, связанное с экраном? Или он будет иметь такое же разрешение, как и исходное изображение, которое было текстурировано на фреймбуфере по умолчанию?

Был ли мой вопрос понятным?

ответ

1

Копирование между фреймбуферов: glBlitFramebuffer

посмотреть здесь

This image will have a resolution related with the screen?

Разрешение может быть установлен в функции glBlitFramebuffer. Бадбуфер по умолчанию имеет размер окна вашего окна (может отличаться от экрана).

Is it possible to copy the default frambuffer to a framebuffer object without showing anything on the screen?

Изображение обычно сначала делают за кадром, и отображается при вызове swapBuffers (двойной буферизации). Поэтому без вызова swapBuffers ничего не отображается на экране.

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

+0

Итак, если я использую непосредственно FBO, будет ли FBO также иметь размер окна opengl (что я скрываю)? У меня уже есть код, который выполняет текстурирование поверхностной модели (треугольники в трехмерной системе координат «раскрашены» с использованием двух разных текстур - входные изображения) и показывают результат на экране. Но я попытался использовать подход, чтобы отобразить его непосредственно в FBO, но я не получил результата. Я не совсем понял, как бороться с FBO (одно измерение) и двумя текстурами (2 разных измерения). –

+0

Размер FBO совпадает с текстурами, прикрепленными к нему. Вероятно, вам следует прочитать учебник FBO, например, здесь: http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/ – dari

+0

Я посмотрю на этот материал, спасибо ! Кстати, как это работает, если мои текстуры (я использую 2) не имеют одинакового размера? Могу ли я определить размер моего FBO? Извините, если мой вопрос не имеет особого смысла! –