Object-Space Visibility Culling Anthony Steed University College London Based upon material presented by Claudio T. Silva at Eurographics 1999 Slides,

Slides:



Advertisements
Similar presentations
Visible-Surface Detection(identification)
Advertisements

Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Advanced Light and Shadow Culling Methods Eric Lengyel.
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Ray Tracing CMSC 635. Basic idea How many intersections?  Pixels  ~10 3 to ~10 7  Rays per Pixel  1 to ~10  Primitives  ~10 to ~10 7  Every ray.
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
Occlusion Culling Fall 2003 Ref: GamasutraGamasutra.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
CSE 381 – Advanced Game Programming Scene Management
Visibility Culling using Hierarchical Occlusion Maps Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenneth E. Hoff III Presented by: Chris Wassenius.
Week 14 - Monday.  What did we talk about last time?  Bounding volume/bounding volume intersections.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Haptic Rendering using Simplification Comp259 Sung-Eui Yoon.
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
1 Dr. Scott Schaefer Hidden Surfaces. 2/62 Hidden Surfaces.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Hidden Surface Elimination Wen-Chieh (Steve) Lin Institute of Multimedia Engineering I-Chen Lin’ CG Slides, Rich Riesenfeld’s CG Slides, Shirley, Fundamentals.
Interactive Shadow Generation in Complex Environments Naga K. Govindaraju, Brandon Lloyd, Sung-Eui Yoon, Avneesh Sud, Dinesh Manocha Speaker: Alvin Date:
Point Location Computational Geometry, WS 2007/08 Lecture 5 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für.
1 From-Point Occlusion Culling From-Point Occlusion Culling Chapter 23.
Vertices and Fragments III Mohan Sridharan Based on slides created by Edward Angel 1 CS4395: Computer Graphics.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Spatial Data Structure: Quadtree, Octree,and BSP tree Mengxia Zhu Fall 2007.
Visibility Culling Markus Hadwiger & Andreas Varga.
10/11/2001CS 638, Fall 2001 Today Kd-trees BSP Trees.
10/02/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Octrees.
Hidden Surface Removal
1 Occlusion Culling ©Yiorgos Chrysanthou, , Anthony Steed, 2004.
Afrigraph 2004 Massive model visualization Tutorial A: Part I Rasterization Based Approaches Andreas Dietrich Computer Graphics Group, Saarland University.
Samuli Laine: A General Algorithm for Output-Sensitive Visibility PreprocessingI3D 2005, April 3-6, Washington, D.C. A General Algorithm for Output- Sensitive.
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
1 Speeding Up Ray Tracing Images from Virtual Light Field Project ©Slides Anthony Steed 1999 & Mel Slater 2004.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
10/16/2001CS 638, Fall 2001 Today Visibility –Overview –Cell-to-Cell –Cell-to-Region –Eye-To-Region –Occlusion Culling (maybe)
Culling Techniques “To cull” means “to select from group” In graphics context: do not process data that will not contribute to the final image The “group”
CSL 859: Advanced Computer Graphics Dept of Computer Sc. & Engg. IIT Delhi.
Visibility Culling David Luebke Computer Science Department University of Virginia
Visibility for Computer Graphics Xavier Décoret Master IVR 2005.
Computer Graphics 2 Lecture 8: Visibility Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
Visible-Surface Detection Jehee Lee Seoul National University.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Visibility Culling II: Beyond Cells & Portals David Luebke Computer Science Department University of Virginia
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Collaborative Visual Computing Lab Department of Computer Science University of Cape Town Graphics Topics in VR By Shaun Nirenstein.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
Implementation II.
David Luebke11/26/2015 CS 551 / 645: Introductory Computer Graphics David Luebke
10/07/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Spatial data structures.
Ray Tracing II. HW1 Part A due October 10 Camera module Object module –Read from a file –Sphere and Light only Ray tracer module: –No shading. No reflection.
Visibility II CS 446: Real-Time Rendering & Game Technology
Maths & Technologies for Games Spatial Partitioning 2
Computer Graphics I, Fall 2010 Implementation II.
DPL2/10/2016 CS 551/651: Final Review David Luebke
Game Engine Design Quake Engine Presneted by Holmes 2002/12/2.
Hierarchical Occlusion Map Zhang et al SIGGRAPH 98.
David Luebke 3/5/2016 Advanced Computer Graphics Lecture 4: Faster Ray Tracing David Luebke
David Luebke3/12/2016 Advanced Computer Graphics Lecture 3: More Ray Tracing David Luebke
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Occlusion Culling David Luebke University of Virginia.
CS 445: Introduction to Computer Graphics David Luebke University of Virginia Visibility Calculations and Occlusion Culling.
Visible-Surface Detection Methods. To identify those parts of a scene that are visible from a chosen viewing position. Surfaces which are obscured by.
CS552: Computer Graphics Lecture 28: Solid Modeling.
Real-Time Soft Shadows with Adaptive Light Source Sampling
Hidden Surfaces Dr. Scott Schaefer.
Today Visibility Overview Cell-to-Cell Cell-to-Region Eye-To-Region
Conservative Visibility Preprocessing using Extended Projections Frédo Durand, George Drettakis, Joëlle Thollot and Claude Puech iMAGIS-GRAVIR/IMAG-INRIA.
CS 551 / 645: Introductory Computer Graphics
Presentation transcript:

Object-Space Visibility Culling Anthony Steed University College London Based upon material presented by Claudio T. Silva at Eurographics 1999 Slides, and material for slides, have been provided by Satyan Coorg (MIT/IBM), Sigal Dahan and Dudu Sayag (Tel-Aviv)

Approximate Visibility Determination Develop algorithms that are output sensitive, that is, complexity depends on the number of visible polygons, not the total number of polygons. Drop the exact visibility requirement, and instead attempt to develop algorithms that estimate the triangles which have visible fragments In this talk, we will speak about algorithms that overestimate the visible fragments, the so called conservative visibility algorithms

Talk Summary Cells and portals –Teller and Sequin, Siggraph 91 –Luebke and Georges, I3D 95 Visibility culling with large occluders –Coorg and Teller, SoCG 96 and I3D 97 –Hudson et al, SoCG 97

Talk Summary Cells and portals –Teller and Sequin, Siggraph 91 –Luebke and Georges, I3D 95 Visibility culling with large occluders –Coorg and Teller, SoCG 96 and I3D 97 –Hudson et al, SoCG 97

The Cells-and-Portals Approach (1) Decompose space into convex cells (2) For each cell, identify its boundary edges into two sets: opaque or portal (3) Precompute visibility among cells (4) During viewing (eg, walkthrough phase), use the precomputed potentially visible polygon set (PVS) of each cell to speed-up rendering

Space Subdivision Input Scene: Convex subdivision: Generated by computing a k-d tree of the input faces

Determining Adjacent Information

Computing the PVS of a cell SL  0,  L  L SR  0,  R  R Linear programming problem: Find_Visible_Cells(cell C, portal sequence P, visible cell set V) V=V  C for each neighbor N of C for each portal p connecting C and N orient p from C to N P’ = P concatenate p if Stabbing_Line(P’) exists then Find_Visible_Cells (N, P’, V)

Eye-to-Cell Visibility The eye-to-cell visibility of any observer is a subset of the cell-to-cell visibility for the cell containing the observer

Eye-to-Cell Visibility A cell is visible if –cell is in VV –all cells along stab tree are in VV –all portals along stab tree are in VV –sightline within VV exists through portals

Results

Talk Summary Cells and portals –Teller and Sequin, Siggraph 91 –Luebke and Georges, I3D 95 Visibility culling with large occluders –Coorg and Teller, SoCG 96 and I3D 97 –Hudson et al, SoCG 97

Luebke and Georges, I3D 95 Instead of pre-processing all the PVS calculation, it is possible to use image-space portals to make the computation easier Can be used in a dynamic setting

Luebke and Georges, I3D 95

Talk Summary Cells and portals –Teller and Sequin, Siggraph 91 –Luebke and Georges, I3D 95 Visibility culling with large occluders –Coorg and Teller, SoCG 96 and I3D 97 –Hudson et al, SoCG 97

When does A occludes B ?

A B Convex Occluers A B A occludes B B is not occluded C A B

Important Events e A v B e A v B

Naïve Algorithm For all combinations of edges and vertices find the corresponding plane –  (n 2 ) planes Partition space by these planes –  (n 6 ) cells

Relevant Planes Only a small selection of planes are actually relevant For complete objects - consider the silhouettes v e Plane ve separates A and B A B All silhouette edges produce supporting planes

For Individual Polygons Track Visibility Changes –Track all planes defined by E and vertices in edge from B that intersect E

For Individual Polygons Non-edge cases Track planes –V7,V3,V5 –V7, V5, V6 –V7, V6, V3 Overall this is  (n+m) for an object pair

For N Objects Reduce complexity from  (n 2 ) by using an octree structure

Hierarchical Tests

Optimising the Octree Traverse Not feasible to compute visibility relationship for whole octree each time viewpoint moves Re-use the idea of tracking the separating planes –Do this for each octree cell on boundary –Note that a cell visibility can only become visible if its parent is partially visible

Dynamic Plane Maintenance First approach –find a sub-set of close planes and test only those if viewpoint does not move more than r

Dynamic Plane Maintenance Second approach –keep the planes themselves in an octree –in each octree cell keep a list of intersecting planes –a cell-cell traversal through the octree goes via the LCA, adding and deleting planes no possibility of repeating an add or delete, so this is strictly better than naïve recomputation with worst case being situations where LCA is root

Coorg and Teller, I3D 97 Ignored A B T Added the capability to join the effect of connected occluders, that is, a form of occluder fusion

Occluder Fusion

Fast Tangent Plane Computation

Because this computation is fast, it is no longer necessary to keep fine-grain visibility events

Use Temporal Coherence to Cache Relevant Events

Choosing Occluders Pick large occluders close to the viewpoint –Good for application to octree scene structure Pick smaller occluder that are close to objects (detail occluders) –I.E. they occlude an object most of the time –Applied only to a specified object, not to the general scene octree

Detail Occluders

Metric for Comparing Occluder Quality Occluder quality: (-A (N * V)) / ||D|| 2 A : the occluder’s area N : normal V : viewing direction D : the distance between the viewpoint and the occluder center Large polygon have large area-angle.

Results

The percentage of polygons draw The culling and drawing times (in milliseconds)

Talk Summary Cells and portals –Teller and Sequin, Siggraph 91 –Luebke and Georges, I3D 95 Visibility culling with large occluders –Coorg and Teller, SoCG 96 and I3D 97 –Hudson et al, SoCG 97

Hudson et al, SoCG 97 C B A Viewpoint Occluder

Occluder Storage Partition model into cells and store good occluders in the cells Identify likely occluders for a cell –they subtend a large solid-angle (similar to Coorg and Teller) Test likely occluders –use a sample of viewpoints and compute actual shadow volumes resulting

Occluder Usage At run-time –form shadow volumes from likely occluders –do view-volume cull and shadow-volume occlusion test in one pass across the spatial sub- division of the scene –each cell of the sub-division is tested for inclusion in view-volume and non-inclusion in each shadow volume

Occluder Test Overlap test (cell to shadow volume) is performed in 2D –If the subdivision uses bounding boxes, then a very efficient overlap test is presented

Conclusions Cells and portals –Gives excellent results IF you can find the cells and portals –Good for interior scenes –Identifying cells and portals is often done by hand General polygons models “leak”

Conclusions Visibility culling with large occluders –Very good for outdoor (city) scenes where occluders are large and depth complexity can be very high –Not good for indoor scenes in general since there are many small occluders that would need to be fused