Collaborative Visual Computing Lab Department of Computer Science Graphics Topics in VR By Shaun Nirenstein
Jan 12, 2016
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Graphics Topics in VRGraphics Topics in VR
By Shaun Nirenstein
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
OverviewOverview
• Impact of graphics/geometric algorithms on VR
• Visibility in VR
• Rendering Topics in VR
• Collision Detection• Animation (I won’t talk about this)
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Impact of graphics/geometric algorithms on VR
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)
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Impact of graphics/geometric algorithms on VR
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
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
VisibilityVisibility• 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
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Visibility AlgorithmsVisibility 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
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
From Point VisibilityFrom Point Visibility
• Occluder shadow volumesInvisible
Occluder
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from point)Occluder Fusion (from point)
• Occluder shadow volumesInvisible
Occluder
Invisible
Invisible???
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from point)Occluder Fusion (from point)
• Cells and portals
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from point)Occluder Fusion (from point)
• Cells and portals
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from point)Occluder Fusion (from point)
• Cells and portals
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
ProblemsProblems• 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…
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
From Region VisibilityFrom Region Visibility
• Occluder shadow volumesInvisible
Occluder
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
From Region VisibilityFrom Region Visibility
• Area light source analogy
Separating lines
Supporting lines
Umbra
Penumbra
Penumbra
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
From Region VisibilityFrom Region Visibility
• Area light source analogy
Umbra?
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from region)Occluder Fusion (from region)
• Cells and portals
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from region)Occluder Fusion (from region)
• Cells and portals
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from region)Occluder Fusion (from region)
• Cells and portals (visible volume)
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from region)Occluder Fusion (from region)
• Cells and portals (visible volume)
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Occluder Fusion (from region)Occluder Fusion (from region)
• Cells and portals (visible cell iff. stabbing line does exist)
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Finding a stabber (2D)Finding a stabber (2D)• Find a line which separates two set of points
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Finding a stabber (2D)Finding a stabber (2D)• Find a line which separates two set of points• Left and right sets (defined by orientation)
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Finding a stabber (2D)Finding a stabber (2D)• Find a line which separates two set of points• Left and right sets (defined by orientation)
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Finding a stabber (2D)Finding a stabber (2D)• Find a line which separates two set of points• Left and right sets (defined by orientation)• Solved using duality
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Finding a stabber (3D)Finding a stabber (3D)• Also solved with duality• Lines in 3D go to points in 5D Pluecker coordinates
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Constructing Cells/PortalsConstructing Cells/Portals• BSP Tree – Splits volume until leaves are convex• Portals are sides of leaf nodes which do not correspond to scene polygons
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Constructing Cells/PortalsConstructing Cells/Portals• Optimal portal finding is an open problem• Portals / Cells (sectors) are usually defined by hand
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Soft and Hard ShadowsSoft and Hard Shadows• Hard Shadows – small (points) or far• Soft Shadows – area/volume light source
Hard Soft
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Soft and Hard ShadowsSoft and Hard Shadows• Soft shadows != Blurring!!!
Light
Occluder
Ground
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Soft and Hard ShadowsSoft 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
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
LightmapsLightmaps• Can be used for shadows, lighting, diffuse illumination• Need to be recomputed when geometry and/or lights move
* =
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Global vs. Local IlluminationGlobal 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
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Photon MappingPhoton Mapping
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Photon MappingPhoton Mapping
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Photon MappingPhoton Mapping
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision DetectionCollision Detection
• Why?• Need to know if movement results in solid
bodies colliding• Physics• Visibility
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision DetectionCollision Detection
• Broad Phase• Conservative – only
test whether or not further testing(narrow phase) is required
• Uses bounding volumes and bounding hierarchies
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision DetectionCollision Detection
• Narrow Phase• Accurate• Triangle-triangle intersection• Segment-triangle intersection• Bounding-volume triangle
intersection
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)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
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)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
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)Collision Detection(cont.)
• Convex Hull• Accurate
• Conservative• bounding planes• faster, but less accurate
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)Collision Detection(cont.)
• k-dops (discrete oriented polytopes)• Accurate – more planes• AABB == 6-dop
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)Collision Detection(cont.)
• 8-dop
45o
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)Collision Detection(cont.)
• Hierarchies – AABB
• Test top down
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)Collision Detection(cont.)
• Hierarchies – OBBTree
• Test top down
Collaborative Visual Computing LabDepartment of Computer Science
University of Cape Town
Collision Detection(cont.)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