Thread: Scene Graph, Quadtree, Octtree, and Scene Manager.

  1. #1
    Registered User
    Join Date
    May 2009

    Scene Graph, Quadtree, Octtree, and Scene Manager.

    What's the difference between them? I found those on most graphics/game engine.

    I searched around but still don't get it. Does the Scene Graph, Quadtree and Octtree the same? So what's with the scene manager? Is it the one who manages the Scene Graph, Quadtree, and Octree?

    Thank you very much

  2. #2
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Scenegraph is a sort of instruction manual on how to draw each object in a scene. It usually doesn't have world spatial information in it but does contain local spatial information. If an object is composed of multiple sub meshes then that information will be in the graph as well. If light mapping is needed or some other type of texturing effect then that info will also be in the graph. Render states such as cull mode, blend mode, alpha blending, etc., will also be in the graph. Gamebryo has about 200 different types of graph nodes ranging from simple render states to complex particle system information. Every object has a root node and if you transform the root into world space then you transform the object into world space. Scene graph's have the major downfall of not being able to efficiently cache render states or being efficient for culling. At one time BSP's and the like were used for culling and still are in some engines but more often than not the scene graph has become more about how to draw the object the way the artist/modeller intended than it has been about caching render states or frustum culling. Dark Age of Camelot, Morrowind, and Oblivion are examples of games that use scene graphs. If the game uses the Gamebryo engine it is using it's scene graph system to render the object. It is completely data driven which makes it very attractive to those wanting to integrate or utilize Gamebryo in their system.

    Quadtree is normally used for terrain and is a fast convenient way to cull out millions of triangles per pass. It is normally used for fast frustum culling and for fast terrain rendering with large view distances. Flight Simulator X uses a restrictive quad-tree algorithm to render it's terrain along with 3rd party real-time texturing algos.

    Octtree is normally used for very complex lighting and sound. I do not have much exposure to octtree's nor do I know which games might use one. Perhaps others could comment more on this type of tree.

    A scene manager might encapsulate access to these items but it might not and it might not even exist. It all depends on how the system is designed internally.

Popular pages Recent additions subscribe to a feed