Объект Framebuffer - Framebuffer object
В объект кадрового буфера архитектура (FBO) является расширением OpenGL для гибкой визуализации вне экрана, включая рендеринг в текстура. Захватывая изображения, которые обычно выводятся на экран, его можно использовать для реализации большого количества различных фильтров изображений и эффектов постобработки. FBO аналогичен модель целей рендеринга в DirectX. Он используется в OpenGL из-за его эффективности и простоты использования. Использование FBO не страдает от накладных расходов, связанных с переключением контекста рисования OpenGL, и в значительной степени заменило pbuffer и другие методы, включающие переключение контекста.
Использует
FBO имеет два основных применения: пост-обработка визуализированных изображений и композиция между различными сценами. Вот некоторые примеры:
- Визуализированное изображение захватывается и подвергается Фрагментные шейдеры или другие манипуляции. Это позволяет реализовать многие из популярных сегодня эффектов компьютерной графики, включая добавление эффекта размытия или цветения.
- Может использоваться для создания видов других сцен, например: телевизор в доме, показывающий вид со дополнительной камеры. Сцена может быть визуализирована через FBO в текстуру, а затем эта текстура может быть применена к поверхности телевизора. Иногда это называется «Рендеринг в текстуру» или RTT.
Преимущества перед другими методами
Методы с использованием FBO считаются лучшими, потому что:
- Его проще настроить, чем большинство других методов.
- Не требует переключения контекста.
- Более эффективен, потому что ресурсы используются в одном контексте.
- Более гибкий, потому что все буфер глубины, трафаретный буфер и т. д. могут быть приобретены.
Архитектура
Чтобы использовать FBO, нужно просто создать его экземпляр. Вместе с FBO идет несколько насадок. Затем можно прикрепить их к выбранному приемнику: либо текстура, или буфер рендеринга.
Например:
- Создайте FBO и привяжите его.
- Присоедините буфер цвета (либо как RenderBuffer, либо как текстуру) к FBO.
- Присоедините буфер глубины (либо как RenderBuffer, либо как текстуру) к FBO.
- Свяжите собственное окно FrameBuffer (id = 0)
- Визуализируйте текстуру на экран с помощью пиксельного шейдера в зависимости от информации о цвете и информации о глубине.
внешняя ссылка
- Технический документ по объекту Framebuffer
- Ссылка на объект Framebuffer в openvidia
- Пример кода для Windows и Linux
- EXT кадровый буфер (opengl.org)
Этот компьютерное программирование -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |