A lightweight C++ OpenGL middleware for 2D/3D graphics
|[Download] [Tutorials] [All Classes] [Grouped Classes]|
This tutorial will explain how to define the rendering order of a set of objects.
Visualization Library employs a simple and extensible mechanism to define the rendering order. Once Visualization Library extracts all the visible objects present in a scene, a special class called vl::RenderQueueSorter is used to appriately sort such objects. The vl::RenderQueueSorter is the ultimate responsible for such sorting. You can even create your own vl::RenderQueueSorter and install it on your vl::Rendering.
The user can fine tune the rendering order of a set of
Actors using the following member functions:
The higher the rank or block, the later an
Actor is rendered.
Actors are first sorted by their
Block, then by their
Rank, then by their
Rank. Using this three-level sorting the developer can deal with very complex sorting scenarios. This means that first of all you can divide all your
Actors into blocks. Within a block you can subdivide them by their
Effect render rank. Within the same
Effect render rank you can again subdivide them based on the
Actor render rank. The default rank and block is zero.
Actors have the same block and rank it means that the application does not care about their rendering order, so Visualization Library uses this chance to sort them in a way that the objects with similar materials, textures, shaders etc. are rendered as grouped as possible to maximize the rendering performances.
If at least one of the two objects is using alpha blending then Visualization Library will automatically perform a depth-sort for two objects to obtain a correct rendering.