460 likes | 578 Views
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
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