Compositor: Difference between revisions

Jump to navigation Jump to search
237 bytes added ,  27 February 2018
m
no edit summary
mNo edit summary
mNo edit summary
Line 9: Line 9:
}}
}}


A '''Compositor''' is a rendering pipeline configured by the [[Property Tree]]. Every configurable element of the pipeline wraps a OpenGL/OSG object and exposes its parameters to the property tree.
A '''Compositor''' is a rendering pipeline configured by the [[Property Tree]]. Every configurable element of the pipeline wraps an OpenGL/OSG object and exposes its parameters to the property tree. This way, the rendering pipeline becomes dynamically-reconfigurable at runtime.


Related efforts: [[Howto:Canvas_View_Camera_Element]]
Related efforts: [[Howto:Canvas_View_Camera_Element]]
Line 19: Line 19:
A buffer represents a texture or, more generically, a region of GPU memory. Textures can be of any type allowed by OpenGL: 1D, 2D, rectangle, 2Darray, 3D or cubemap.
A buffer represents a texture or, more generically, a region of GPU memory. Textures can be of any type allowed by OpenGL: 1D, 2D, rectangle, 2Darray, 3D or cubemap.


A typical property tree structure describing a buffer may be as follows:
A typical [[PropertyList XML File|property tree structure]] describing a buffer may be as follows:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Line 36: Line 36:
=== Passes ===
=== Passes ===


A pass wraps around a osg::Camera. As of February 2018 there are two types of passes:
A pass wraps around an [http://public.vrac.iastate.edu/vancegroup/docs/OpenSceneGraphReferenceDocs-3.0/a00089.html osg::Camera]. As of February 2018, there are two types of passes supported:


* '''scene'''. Renders a scene. The scene can be an already loaded scene graph node (terrain, aircraft etc.) or a path to a custom model.
* '''scene'''. Renders a scene. The scene can be an already loaded scene graph node (terrain, aircraft etc.) or a path to a custom 3D model.
* '''quad'''. Renders a fullscreen quad with an optional effect applied. Useful for screen space shaders (like SSAO, Screen Space Reflections or bloom) and deferred rendering.
* '''quad'''. Renders a fullscreen quad with an optional effect applied. Useful for screen space shaders (like SSAO, Screen Space Reflections or bloom) and deferred rendering.


Line 63: Line 63:
[[File:Canvas&Compositor test.png|thumb|A fullscreen quad with a shader that colors everything magenta is rendered to a buffer, which is displayed by a Canvas Image.]]
[[File:Canvas&Compositor test.png|thumb|A fullscreen quad with a shader that colors everything magenta is rendered to a buffer, which is displayed by a Canvas Image.]]


Apart from serving as a debugging tool for visualizing the contents of a buffer, integrating the Compositor with [[Canvas]] allows aircraft developers to access RTT capabilities. Compositor buffers can be accessed within Canvas via the Canvas Image protocol '''buffer://'''. For example, the path buffer://test-compositor/test-buffer displays the buffer test-buffer declared in test-compositor.
Apart from serving as a debugging tool for visualizing the contents of a buffer, integrating the Compositor with [[Canvas]] allows aircraft developers to access RTT capabilities. Compositor buffers can be accessed within Canvas via a new custom Canvas Image protocol '''buffer://'''. For example, the path <code>buffer://test-compositor/test-buffer</code> displays the buffer test-buffer declared in test-compositor.


<syntaxhighlight lang="nasal">
<syntaxhighlight lang="nasal">

Navigation menu