Objeto de búfer de fotogramas
El objeto de búfer de fotogramas (FBO) es una extensión de la arquitectura OpenGL para una representación fuera de pantalla flexible, incluida la representación en textura. Reemplazar el objetivo de salida del búfer de pantalla con FBO se puede usar para aplicar todo tipo de filtros y efectos de procesamiento posterior. Esto es similar al modelo de destinos de representación en DirectX . Se utiliza en OpenGL por su eficiencia y facilidad de uso. FBO no requiere la creación y el cambio de contextos de representación, que dependen de la plataforma, y también es una operación más rápida que pbuffer [1] .
Uso
Tiene dos usos principales: el posprocesamiento de la imagen resultante y la combinación de diferentes escenas. Por ejemplo:
- La imagen renderizada se captura y se pasa a sombreadores de fragmentos u otras manipulaciones. Esto permite muchos de los efectos gráficos actualmente populares, incluidos el desenfoque y la floración .
- Se puede utilizar para ver otras escenas. Por ejemplo, el televisor de la casa muestra la vista desde la segunda cámara. La escena en el televisor se puede representar a través de FBO en una textura, que luego se aplicará a la superficie del televisor. Esto se llama Render to Texture (RTT) [1] .
Ventajas sobre otros métodos
- Más fácil que otros métodos.
- No requiere cambio de contexto.
- Más eficiente porque todos los recursos están en el mismo contexto.
- Más flexible ya que se pueden conectar topes de profundidad, plantillas y otros.
Arquitectura
Para usar un FBO, se crea una instancia del mismo. Después de eso, hay varias conexiones, una de ellas es la elección del destinatario, ya sea la textura o el búfer de renderizado .
Ejemplo:
- Se está creando FBO.
- El búfer de color está conectado a la textura.
- Conecta el búfer de profundidad a la textura.
- Representar una textura en la pantalla usando un fragment shader, dependiendo de la información en color y profundidad.
Notas
- ↑ 1 2 Boreskov, 2006 .
Literatura
- Boreskov Aleksey . Desarrollo y depuración de shaders. - BHV-Petersburg, 2006. - 488 p. - ISBN 5-94157-712-5 .
Enlaces