190 likes | 296 Views
VRML Scene Graphs on an Interactive Ray Tracing Engine IEEE Virtual Reality 2004 Conference Chicago, IL USA March 30 th , 2004. Andreas Dietrich Ingo Wald Markus Wagner Philipp Slusallek Computer Graphics Group Saarland University http://graphics.cs.uni-sb.de. Introduction.
E N D
VRML Scene Graphs on anInteractive Ray Tracing EngineIEEE Virtual Reality 2004 ConferenceChicago, IL USAMarch 30th, 2004 Andreas Dietrich Ingo Wald Markus Wagner Philipp Slusallek Computer Graphics Group Saarland University http://graphics.cs.uni-sb.de
Introduction • Today‘s VR systems based on rasterization techniques • Quantitative evaluation difficult • Sophisticated Lighting not possible or requires too much tricks • Recent advances in interactive ray tracing technologies • High-quality image generation at interactive frame rates • Ray tracing will play a larger role in industrial visualization • Scene graph driven VR Application based on ray tracing VRML Browser ( vv ) VRML Scene Graphs on an Interactive Ray Tracing Engine
Agenda • Background • Ray Tracing • System Overview • System Components • OpenRT API Characteristics • Implementation Issues • Rendering & Shading • Scene Graph Mapping • Example Applications • Summary VRML Scene Graphs on an Interactive Ray Tracing Engine
Advantages ofRay Tracing • Most architectures incorporating sophisticated illumination perform ray tracing • Close modeling of physical light propagation • Shooting of imaginary rays into the scene • Advantages of interactive ray tracing Physicalcorrectness Plug and play shading Complex scenes (4-16 fps on 24 1.8 GHz CPUs) VRML Scene Graphs on an Interactive Ray Tracing Engine
Problems • Common scene graph libraries • Targeted towards rasterization / OpenGL • Ray tracing features cannot be adequately exploited • Same with standard graphics file formats, like VRML • Goal: VRML browser implementation providing • Flexible scene graph handling • Animation, interaction, and model behavior • Benefits of interactive ray tracing VRML Scene Graphs on an Interactive Ray Tracing Engine
System Components • Main components • XRML [Bekaert 01] • OpenRT [Dietrich 03] • RTRT [Wald 01/03] VRML Scene Graphs on an Interactive Ray Tracing Engine
System Components • Main components • XRML [Bekaert 01] • OpenRT [Dietrich 03] • RTRT [Wald 01/03] • OpenRT API • Supports all features of interactive ray tracing • Syntactically similiar to OpenGL • But some semantic differences VRML Scene Graphs on an Interactive Ray Tracing Engine
OpenRT and OpenGL Differences between OpenRT and OpenGL • Rendering semantics • Unlike OpenGL’s drawing approach OpenRT uses objects • Shader objects are bound to geometry objects • Complete scene has to be defined prior to rendering • Objects and instantiation • Geometric objects serve as simple containers • Efficient reuse of objects • Multi-pass rendering vs. programmable shading • Possible but not necessary due to programmable shader objects VRML Scene Graphs on an Interactive Ray Tracing Engine
Rendering • Rendering controlled by XRML renderer module • Custom-made based on original OpenGL module • Geometry definition calls largely reused • OpenRT specific shading and lighting calls • No immediate-mode rendering • Scene graph traversal just for scene specification • Rendering after traversal in one single step VRML Scene Graphs on an Interactive Ray Tracing Engine
Shading • VRML shader node extension • Standard VRML limited to simple Blinn-Phong shading • Support for arbitrary shading necessary • New nodes ORTAppearance, ORTShader appearance ORTAppearance { material Material { diffuseColor 1 0 0 } shader ORTShader { name "Glass" file "libGlass.so" options [ "1f refractionIndex 1.5" ] } } Lightbulbof a car headlight VRML Scene Graphs on an Interactive Ray Tracing Engine
Scene Graph MappingAcceleration Structures • Ray tracing algorithms maintain acceleration structures • Hierarchical spatial index • Allow for fast geometry queries • May be considered an internal scene graph Mapping external scene graph (VRML) internal scene graph (OpenRT) VRML Scene Graphs on an Interactive Ray Tracing Engine
Scene Graph MappingObject Grouping • Group Shape nodes into OpenRT geometry objects • Naive solution: Create OpenRT object for every single Shape • Can result in performance loss VRML Scene Graphs on an Interactive Ray Tracing Engine
Scene Graph MappingObject Grouping • Group Shape nodes into OpenRT geometry objects • Heuristics neccessary • ROUTE statements indicate graph cutting points VRML Scene Graphs on an Interactive Ray Tracing Engine
Scene Graph MappingObject Grouping • Group Shape nodes into OpenRT geometry objects • Heuristics neccessary • ROUTE statements indicate graph cutting points VRML Scene Graphs on an Interactive Ray Tracing Engine
Scene Graph MappingInstancing • Instancing possible using DEF/USE mechanism • DEF/USE equivalent to pointers • Can link arbitrary nodes • OpenRT can only instantiate complete objects • Use instancing only for Transform nodes VRML Scene Graphs on an Interactive Ray Tracing Engine
Example ApplicationsIndustrial Design • Car headlight • Physically-correctreflection andrefraction • Special reflectorand glass shaders • Up to 25 levelsof recursion • More than 800.000triangles • Only possible withray tracing (16 1.8 GHz CPUs) VRML Scene Graphs on an Interactive Ray Tracing Engine
Example ApplicationsAnimated Global Illumination • Rotating globe dynamically lit by a moving lamp • Indirect diffuseinterreflection • Standard VRMLscene includinganimation paths • Global illuminationplug-in used asdefault shader (16 1.8 GHz CPUs) VRML Scene Graphs on an Interactive Ray Tracing Engine
Summary • Combination of scene graph applications and ray tracing • Flexible scene graph handling • Animation, interaction, and model behaviour • VRML97 support • Physical correctness • Plug and play shading • Complex scenes • Future work • Evaluation of other file formats like X3D • Development of a SG library optimized for RT VRML Scene Graphs on an Interactive Ray Tracing Engine
Questions ?For more information seehttp://graphics.cs.uni-sb.dehttp://www.openrt.dehttp://www.intrace.com