Andreas Dietrich Ingo Wald Markus Wagner Philipp Slusallek Computer Graphics Group
-
Upload
galvin-hatfield -
Category
Documents
-
view
18 -
download
0
description
Transcript of Andreas Dietrich Ingo Wald Markus Wagner Philipp Slusallek Computer Graphics Group
VRML Scene Graphs on anVRML Scene Graphs on anInteractive Ray Tracing EngineInteractive Ray Tracing Engine
IEEE Virtual Reality 2004 ConferenceIEEE Virtual Reality 2004 ConferenceChicago, IL USAChicago, IL USA
March 30March 30thth, 2004, 2004Andreas Dietrich Ingo Wald Markus Wagner Philipp Andreas Dietrich Ingo Wald Markus Wagner Philipp SlusallekSlusallek
Computer Graphics GroupComputer Graphics Group
Saarland UniversitySaarland University
http://graphics.cs.uni-sb.dehttp://graphics.cs.uni-sb.de
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 22
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
IntroductionIntroduction
• Today‘s VR systems based on rasterization Today‘s VR systems based on rasterization techniquestechniques– Quantitative evaluation difficultQuantitative evaluation difficult– Sophisticated Lighting not possible or requires too much Sophisticated Lighting not possible or requires too much
trickstricks
• Recent advances in interactive ray tracing Recent advances in interactive ray tracing technologiestechnologies– High-quality image generation at interactive frame ratesHigh-quality image generation at interactive frame rates– Ray tracing will play a larger role in industrial Ray tracing will play a larger role in industrial
visualizationvisualization
Scene graph driven VR Application based on ray Scene graph driven VR Application based on ray tracingtracing
VRML Browser ( vv )VRML Browser ( vv )
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 33
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
AgendaAgenda
• BackgroundBackground– Ray TracingRay Tracing
• System OverviewSystem Overview– System ComponentsSystem Components– OpenRT API CharacteristicsOpenRT API Characteristics
• Implementation IssuesImplementation Issues– Rendering & ShadingRendering & Shading– Scene Graph MappingScene Graph Mapping
• Example ApplicationsExample Applications• SummarySummary
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 44
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
Advantages ofAdvantages ofRay TracingRay Tracing
• Most architectures incorporating sophisticated Most architectures incorporating sophisticated illumination perform illumination perform ray tracingray tracing– Close modeling of physical light propagationClose modeling of physical light propagation– Shooting of imaginary rays into the sceneShooting of imaginary rays into the scene
• Advantages of interactive ray tracingAdvantages of interactive ray tracing
PhysicalPhysical correctnesscorrectness
Plug and play Plug and play shadingshading
Complex scenesComplex scenes
(4-16 fps on 24 1.8 GHz CPUs)(4-16 fps on 24 1.8 GHz CPUs)
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 55
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
ProblemsProblems
• Common scene graph librariesCommon scene graph libraries– Targeted towards rasterization / OpenGLTargeted towards rasterization / OpenGL– Ray tracing features cannot be adequately exploitedRay tracing features cannot be adequately exploited– Same with standard graphics file formats, like VRMLSame with standard graphics file formats, like VRML
• Goal: VRML browser implementation Goal: VRML browser implementation providingproviding– Flexible scene graph handlingFlexible scene graph handling– Animation, interaction, and model behaviorAnimation, interaction, and model behavior– Benefits of interactive ray tracingBenefits of interactive ray tracing
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 66
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
System System ComponentsComponents
• Main componentsMain components– XRML [Bekaert 01]XRML [Bekaert 01]– OpenRT [Dietrich 03]OpenRT [Dietrich 03]– RTRT [Wald 01/03]RTRT [Wald 01/03]
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 77
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
System System ComponentsComponents
• Main componentsMain components– XRML [Bekaert 01]XRML [Bekaert 01]– OpenRT [Dietrich 03]OpenRT [Dietrich 03]– RTRT [Wald 01/03]RTRT [Wald 01/03]
OpenRT APIOpenRT API– Supports all features ofSupports all features of interactive ray tracing interactive ray tracing– Syntactically similiar to OpenGLSyntactically similiar to OpenGL– But some semantic differencesBut some semantic differences
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 88
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
OpenRT and OpenRT and OpenGLOpenGL
Differences between OpenRT and OpenGLDifferences between OpenRT and OpenGL• Rendering semanticsRendering semantics
– Unlike OpenGL’s drawing approach OpenRT uses Unlike OpenGL’s drawing approach OpenRT uses objectsobjects– Shader objectsShader objects are bound to are bound to geometry objectsgeometry objects– Complete scene has to be defined prior to renderingComplete scene has to be defined prior to rendering
• Objects and instantiationObjects and instantiation– Geometric objects serve as simple containersGeometric objects serve as simple containers– Efficient reuse of objectsEfficient reuse of objects
• Multi-pass rendering vs. programmable Multi-pass rendering vs. programmable shadingshading– Possible but not necessary due to programmable shader Possible but not necessary due to programmable shader
objectsobjects
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 99
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
RenderingRendering
• Rendering controlled by XRML renderer Rendering controlled by XRML renderer modulemodule– Custom-made based on original OpenGL moduleCustom-made based on original OpenGL module– Geometry definition calls largely reusedGeometry definition calls largely reused– OpenRT specific shading and lighting callsOpenRT specific shading and lighting calls– No immediate-mode renderingNo immediate-mode rendering– Scene graph traversal just for scene specificationScene graph traversal just for scene specification– Rendering Rendering afterafter traversal in one single step traversal in one single step
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1010
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
ShadingShading
• VRML shader node extensionVRML shader node extension– Standard VRML limited to simple Standard VRML limited to simple Blinn-PhongBlinn-Phong
shadingshading– Support for arbitrary shading necessarySupport for arbitrary shading necessary– New nodes New nodes ORTAppearanceORTAppearance,, ORTShader ORTShader
appearance ORTAppearance { material Material { diffuseColor 1 0 0 } shader ORTShader { name "Glass" file "libGlass.so" options [ "1f refractionIndex 1.5" ] }}
LightbulbLightbulbof a car headlightof a car headlight
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1111
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
Scene Graph Scene Graph MappingMapping
Acceleration StructuresAcceleration Structures• Ray tracing algorithms maintain Ray tracing algorithms maintain
acceleration structuresacceleration structures– Hierarchical Hierarchical spatialspatial index index– Allow for fast geometry queriesAllow for fast geometry queries– May be considered an May be considered an internal internal scene graphscene graph
internal scene graph internal scene graph (OpenRT)(OpenRT)
MappingMapping external scene graph (VRML)external scene graph (VRML)
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1212
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
Scene Graph Scene Graph MappingMapping
Object GroupingObject Grouping• Group Group ShapeShape nodes into OpenRT geometry nodes into OpenRT geometry
objectsobjects– Naive solution: Create OpenRT object for every single Naive solution: Create OpenRT object for every single
ShapeShape– Can result in performance lossCan result in performance loss
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1313
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
Scene Graph Scene Graph MappingMapping
Object GroupingObject Grouping• Group Group ShapeShape nodes into OpenRT geometry nodes into OpenRT geometry
objectsobjects– Heuristics neccessaryHeuristics neccessary– ROUTEROUTE statements indicate graph cutting points statements indicate graph cutting points
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1414
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
Scene Graph Scene Graph MappingMapping
Object GroupingObject Grouping• Group Group ShapeShape nodes into OpenRT geometry nodes into OpenRT geometry
objectsobjects– Heuristics neccessaryHeuristics neccessary– ROUTEROUTE statements indicate graph cutting points statements indicate graph cutting points
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1515
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
Scene Graph Scene Graph MappingMapping
InstancingInstancing• Instancing possible using Instancing possible using DEF/USEDEF/USE
mechanismmechanism– DEF/USEDEF/USE equivalent to pointers equivalent to pointers– Can link arbitrary nodesCan link arbitrary nodes
• OpenRT can only instantiate complete OpenRT can only instantiate complete objectsobjectsUse instancing only for Use instancing only for TransformTransform nodes nodes
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1616
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
Example Example ApplicationsApplications
Industrial DesignIndustrial Design• Car headlightCar headlight
– Physically-correctPhysically-correctreflection andreflection andrefractionrefraction
– Special reflectorSpecial reflectorand glass shadersand glass shaders
– Up to 25 levelsUp to 25 levelsof recursionof recursion
– More than 800.000More than 800.000trianglestriangles
– Only possible withOnly possible withray tracingray tracing
(16 1.8 GHz CPUs)(16 1.8 GHz CPUs)
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1717
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
SExample Example
ApplicationsApplicationsAnimated Global Animated Global
IlluminationIllumination• Rotating globe dynamically lit by a moving lampRotating globe dynamically lit by a moving lamp
– Indirect diffuseIndirect diffuseinterreflectioninterreflection
– Standard VRMLStandard VRMLscene includingscene includinganimation pathsanimation paths
– Global illuminationGlobal illuminationplug-in used asplug-in used asdefault shaderdefault shader
(16 1.8 GHz CPUs)(16 1.8 GHz CPUs)
VR 2004VR 2004 VRML Scene Graphs on an Interactive Ray Tracing EngineVRML Scene Graphs on an Interactive Ray Tracing Engine 1818
CO
MPU
TE
R G
RA
PH
IK – U
NIV
ER
SIT
ÄT
DE
S S
AA
RL
AN
DE
S
SummarySummary
• Combination of scene graph applications and ray Combination of scene graph applications and ray tracingtracing– Flexible scene graph handlingFlexible scene graph handling– Animation, interaction, and model behaviourAnimation, interaction, and model behaviour– VRML97 supportVRML97 support– Physical correctnessPhysical correctness– Plug and play shadingPlug and play shading– Complex scenesComplex scenes
• Future workFuture work– Evaluation of other file formats like X3DEvaluation of other file formats like X3D– Development of a SG library optimized for RTDevelopment of a SG library optimized for RT
Questions ?Questions ?
For more information seeFor more information seehttp://graphics.cs.uni-sbhttp://graphics.cs.uni-sb.de.de
http://whttp://www.openrt.deww.openrt.dehttp://www.intrace.comhttp://www.intrace.com