Visualization Library was designed to: Visualization Library design is based on algorithmic and data structure specialization and separation, unlike many other 3D frameworks part of the so-called "uber scene graph" family, that is, those 3d engines that keep all the rendering information in a single hierarchical structure.
Thus, Visualization Library uses different data structures (possibly hierarchical) to manage each particular domain of the rendering pipeline.
This allow VL to be independent from, and take advantage of, virtually any type of scene management technique, such as PVS, portal/sector, KdTree, quadtrees, octrees etc.
Shaders are also a concept that is kept independent from the rest of the logic and do not require any hierarchical data structure to be used by an Actor.
However VL provides a ShaderNode class, as a high level service, that allows the user to update and manage Shaders in a hierarchical way using inheritance rules similar to the ones commonly available in uber-scene-graph based frameworks.