Framebuffer Object

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Frame buffer object (FBO) - расширение архитектуры OpenGL для гибкого закадрового рендеринга, включая рендеринг в текстуру. Замена цели вывода с экранного буфера на FBO, может быть использована для применения всевозможных фильтров и эффектов пост-обработки. Это аналог render targets model в DirectX. Оно используется в OpenGL для большей эффективности и простоты использования. FBO не требует создания и переключения контекстов рендеринга, которые зависят от платформы, а также это более быстрая операция по времени, по сравнению с pbuffer[1].

Использование[править | править исходный текст]

Оно имеет два основных направления использования: пост-обработка полученного изображения и объединение различных сцен. К примеру:

  1. Рендеренное изображение захватывается и передается в Fragment Shaders или подвергается другим манипуляциям. Это позволяет осуществлять множество популярных сейчас графических эффектов, включая размытие и bloom.
  2. Может использоваться для просмотра других сцен. К примеру, телевизор в доме показывает вид из второй камеры. Сцена в телевизоре может быть рендерена через FBO в текстуру, которая потом будет наложена на поверхность телевизора. Это называется рендеринг в текстуру(Render to Texture, RTT)[1].

Преимущества по сравнению с другими методами[править | править исходный текст]

  • Проще, чем остальные методы.
  • Не требует смены контекстов.
  • Более эффективный, потому что все ресурсы находятся в том же контексте.
  • Более гибкий, так как буферы глубины, трафарета и прочие могут быть подключены.

Архитектура[править | править исходный текст]

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

Пример:

  • Создаётся FBO.
  • Подключается буфер цвета к текстуре.
  • Подключается буфер глубины к текстуре.
  • Визуализация текстуры на экран с помощью пиксельного шейдера, в зависимости от информации в цвета и глубины.

Литература[править | править исходный текст]

Примечания[править | править исходный текст]

Ссылки[править | править исходный текст]