460 likes | 603 Views
This comprehensive overview by Shaun Nirenstein explores the pivotal role of graphics and geometric algorithms in shaping virtual reality (VR) experiences. It delves into visibility, rendering techniques, and collision detection, emphasizing how different lighting models and shadow techniques influence realism and performance in VR environments. Nirenstein discusses challenges such as scene complexity and the management of occlusion, while also highlighting the trade-offs between global and local illumination. Key concepts like visibility algorithms and shadow rendering strategies are crucial in optimizing VR graphics for a more immersive experience.
E N D
Graphics Topics in VR By Shaun Nirenstein
Overview • Impact of graphics/geometric algorithms on VR • Visibility in VR • Rendering Topics in VR • Collision Detection • Animation (I won’t talk about this)
Impact of graphics/geometric algorithms on VR • Constrains the VR • Visibility • Scene complexity • Performance • Shadows • Cues • Soft shadows offer more information about the light source • Shadows are difficult(slow), soft shadows are more difficult(slow)
Impact of graphics/geometric algorithms on VR • Constrains the VR (cont.) • Illumination models • Defines the set of surface materials available • Global vs. local illumination • What can be done at real-time? • Global specular? • Global diffuse? • Arbitrary BRDF (Bidirectional Reflectance Distribution Function)? • Collision detection • How accurate? • How fast? • (Agent/Avatar) Animation • Scripted, captured, simulated
Visibility • Obvious application is to manage geometric complexity • Don’t render what you cannot see • Less obvious application is to manage global complexity • Don’t “simulate” invisible objects • Can X see Y (e.g. AI) • Don’t illuminate invisible objects • Predictive cache management!!! • Could Y be visible from X soon • Invisible geometry, textures, bump maps, vertex/pixel programs do not have to be resident
Visibility Algorithms • From-point techniques: • What is visible from view point X • From-region techniques: • What is visible from view region R • I.e. Y is visible from R, if there exists a point P in R, which can see Y • Can bind a visible set to time
From Point Visibility • Occluder shadow volumes Invisible Occluder
Occluder Fusion (from point) • Occluder shadow volumes Invisible Occluder Invisible??? Invisible
Occluder Fusion (from point) • Cells and portals
Occluder Fusion (from point) • Cells and portals
Occluder Fusion (from point) • Cells and portals
Problems • Cells and portals • Only work (well) for “architectural scenes” • Occluder Shadows • Fusion is difficult • Only works well for a small number of occluders • Other techniques offer various improvements and trade-offs • Hierarchical Occlusion Maps • Occlusion bit testing • Hierarchical Z-Buffer • Many more…
From Region Visibility • Occluder shadow volumes Invisible Occluder
From Region Visibility • Area light source analogy Separating lines Penumbra Umbra Supporting lines Penumbra
From Region Visibility • Area light source analogy Umbra?
Occluder Fusion (from region) • Cells and portals
Occluder Fusion (from region) • Cells and portals
Occluder Fusion (from region) • Cells and portals (visible volume)
Occluder Fusion (from region) • Cells and portals (visible volume)
Occluder Fusion (from region) • Cells and portals (visible cell iff. stabbing line does exist)
Finding a stabber (2D) • Find a line which separates two set of points
Finding a stabber (2D) • Find a line which separates two set of points • Left and right sets (defined by orientation)
Finding a stabber (2D) • Find a line which separates two set of points • Left and right sets (defined by orientation)
Finding a stabber (2D) • Find a line which separates two set of points • Left and right sets (defined by orientation) • Solved using duality
Finding a stabber (3D) • Also solved with duality • Lines in 3D go to points in 5D Pluecker coordinates
Constructing Cells/Portals • BSP Tree – Splits volume until leaves are convex • Portals are sides of leaf nodes which do not correspond to scene polygons
Constructing Cells/Portals • Optimal portal finding is an open problem • Portals / Cells (sectors) are usually defined by hand
Soft and Hard Shadows • Hard Shadows – small (points) or far • Soft Shadows – area/volume light source Hard Soft
Soft and Hard Shadows • Soft shadows != Blurring!!! Light Occluder Ground
Soft and Hard Shadows • Algorithms • Point sources are easy! • Clip shadow volume against scene • Ray tracing • Shadow map • Shadow volume • Soft shadows are difficult! • Soft shadow volumes • Point sampling of area light source • Ray tracing • Hard and soft shadows may be pre-computed by sampling surface geometry and applying lightmaps
Lightmaps • Can be used for shadows, lighting, diffuse illumination • Need to be recomputed when geometry and/or lights move = *
Global vs. Local Illumination • Global looks better – local is faster • Trade offs between complexity, performance, ability to move geometry, quality, etc. • What do games do? • Radiosity preprocess into light maps • Light grid for dynamic objects • Bump mapping is applied in addition • Many passes: textures, bumps, lightmaps, shadow passes, etc. • Doom III? • No global illumination • Not necessary for the “feel” of the game • Allows for dynamic hard shadows (cast BY everything ONTO everything) • Photo-realism does not add as much to mood as shadows in this context
Collision Detection • Why? • Need to know if movement results in solid bodies colliding • Physics • Visibility
Collision Detection • Broad Phase • Conservative – only test whether or not further testing(narrow phase) is required • Uses bounding volumes and bounding hierarchies
Collision Detection • Narrow Phase • Accurate • Triangle-triangle intersection • Segment-triangle intersection • Bounding-volume triangle intersection
Collision Detection(cont.) • What makes a good bounding box? • Easy to test for collision • Tightly represents the model – minimal extraneous volume • More information implies better potential • What about moving objects? • On the fly creation? • Conservative updates • Tracking nearest geometry
Collision Detection(cont.) • AABB (Axially aligned bounding boxes) • Two points in 3D (6 scalars) • BS (Bounding Sphere ) • Point and radius (4 scalars) • Not always a good fit – may require OBB (Oriented bounding box) • Three points in 3D (9 scalars ) • Principal component analysis
Collision Detection(cont.) • Convex Hull • Accurate • Conservative • bounding planes • faster, but less accurate
Collision Detection(cont.) • k-dops (discrete oriented polytopes) • Accurate – more planes • AABB == 6-dop
Collision Detection(cont.) • 8-dop 45o
Collision Detection(cont.) • Hierarchies – AABB • Test top down
Collision Detection(cont.) • Hierarchies – OBBTree • Test top down
Collision Detection(cont.) • Polytope-polytope intersection (narrow phase) • Assuming non-containment: Intersection is equivalent to the existence of an edge of one polytope which intersects the face of another Containment