A caching system for a dependency-aware scene graph

Michael Woerister
A caching system for a dependency-aware scene graph
[Thesis]

Information

Abstract

Scene graphs are a common way of representing 3-dimensional scenes for graphical applications. A scene is represented as a hierarchical structure of nodes which represent 3D geometry, spatial transformations, surface properties, and other-possibly application specific-aspects. Scene graph systems can be designed to be very generic and flexible, e.g. by allowing users to implement custom node types and traversals or by providing facilities to dynamically create subgraphs during a traversal. This flexibility comes at the cost of increased time spent in pure traversal logic. Especially for CPU-bound applications this causes a performance drop. This thesis proposes a scene graph caching system that automatically creates an alternative representation of selected subgraphs. This alternative representation poses a render cache in the form of a so-called instruction stream which allows to render the cached subgraph at lower CPU cost and thus more quickly than with a regular render traversal. In order to be able to update render caches incrementally in reaction to certain scene graph changes, a dependency system was developed. This system provides a model for describing and tracking changes in the scene graph and enables the scene graph caching system to update only those parts of the render cache that needs to be updated. The actual performance characteristics of the scene graph caching system were investigated using a number of synthetic test scenes in different configurations. These tests showed that the caching system is most useful in scenes with a high structural complexity (high geometry count and/or deep scene graph hierarchies) and moderate primitive count per geometry.

Additional Files and Images

Additional images and videos

Additional files

Weblinks

No further information available.

BibTeX

@mastersthesis{Woerister_2012_ACS,
  title =      "A caching system for a dependency-aware scene graph  ",
  author =     "Michael Woerister",
  year =       "2012",
  abstract =   "Scene graphs are a common way of representing 3-dimensional
               scenes for graphical applications. A scene is represented as
               a hierarchical structure of nodes which represent 3D
               geometry, spatial transformations, surface properties, and
               other-possibly application specific-aspects. Scene graph
               systems can be designed to be very generic and flexible,
               e.g. by allowing users to implement custom node types and
               traversals or by providing facilities to dynamically create
               subgraphs during a traversal. This flexibility comes at the
               cost of increased time spent in pure traversal logic.
               Especially for CPU-bound applications this causes a
               performance drop. This thesis proposes a scene graph caching
               system that automatically creates an alternative
               representation of selected subgraphs. This alternative
               representation poses a render cache in the form of a
               so-called instruction stream which allows to render the
               cached subgraph at lower CPU cost and thus more quickly than
               with a regular render traversal. In order to be able to
               update render caches incrementally in reaction to certain
               scene graph changes, a dependency system was developed. This
               system provides a model for describing and tracking changes
               in the scene graph and enables the scene graph caching
               system to update only those parts of the render cache that
               needs to be updated. The actual performance characteristics
               of the scene graph caching system were investigated using a
               number of synthetic test scenes in different configurations.
               These tests showed that the caching system is most useful in
               scenes with a high structural complexity (high geometry
               count and/or deep scene graph hierarchies) and moderate
               primitive count per geometry.",
  month =      dec,
  address =    "Favoritenstrasse 9-11/186, A-1040 Vienna, Austria",
  school =     "Institute of Computer Graphics and Algorithms, Vienna
               University of Technology",
  URL =        "https://www.cg.tuwien.ac.at/research/publications/2012/Woerister_2012_ACS/",
}