20,741
edits
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 '''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 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 | 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"> |