Graphics Topics in VR

Post on 12-Jan-2016

38 views 0 download

description

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 - PowerPoint PPT Presentation

Transcript of Graphics Topics in VR

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