Hierarchical Occlusion Map Zhang et al SIGGRAPH 98.

Slides:



Advertisements
Similar presentations
Computer Graphics - Rasterization -
Advertisements

N-Buffers for efficient depth map query Xavier Décoret Artis GRAVIR/IMAG INRIA.
Visibility Culling David Luebke Computer Science Department University of Virginia
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
Visibility in Games Harald Riegler. 2 / 18 Visibility in Games n What do we need it for? u Increase of rendering speed by removing unseen scene data from.
Two Methods for Fast Ray-Cast Ambient Occlusion Samuli Laine and Tero Karras NVIDIA Research.
Occlusion Culling Fall 2003 Ref: GamasutraGamasutra.
Hidden Surface Removal CSE 581. Visibility Assumption: All polygons are opaque What polygons are visible with respect to your view frustum?  Outside:
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
Visibility in Computer Graphics Toni Sellarès Unversitat de Girona
Computer Graphics Visible Surface Determination. Goal of Visible Surface Determination To draw only the surfaces (triangles) that are visible, given a.
Mark Nelson Rendering algorithms Fall 2013
Part I: Basics of Computer Graphics
Visibility Culling. Back face culling View-frustrum culling Detail culling Occlusion culling.
Visibility Culling Back face culling View-frustrum culling Detail culling Occlusion culling.
Visibility Culling using Hierarchical Occlusion Maps Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenneth E. Hoff III Presented by: Chris Wassenius.
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.
Vertices and Fragments I CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
CS 4731: Computer Graphics Lecture 18: Hidden Surface Removal Emmanuel Agu.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
1 CSCE 441: Computer Graphics Hidden Surface Removal (Cont.) Jinxiang Chai.
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.
© 2004 Tomas Akenine-Möller1 Shadow Generation Hardware Vision day at DTU 2004 Tomas Akenine-Möller Lund University.
Computer Graphics Shadows
Hidden Surface Removal
1 Occlusion Culling ©Yiorgos Chrysanthou, , Anthony Steed, 2004.
Roger A. Crawfis CIS 781 The Ohio State University
Afrigraph 2004 Massive model visualization Tutorial A: Part I Rasterization Based Approaches Andreas Dietrich Computer Graphics Group, Saarland University.
Erdem Alpay Ala Nawaiseh. Why Shadows? Real world has shadows More control of the game’s feel  dramatic effects  spooky effects Without shadows the.
10/09/2001CS 638, Fall 2001 Today Spatial Data Structures –Why care? –Octrees/Quadtrees –Kd-trees.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
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”
Computer Graphics 2 Lecture 8: Visibility Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
The BSP-tree from Prof. Seth MIT.. Motivation for BSP Trees: The Visibility Problem We have a set of objects (either 2d or 3d) in space. We have.
On a Few Ray Tracing like Algorithms and Structures. -Ravi Prakash Kammaje -Swansea University.
Visibility Culling III: Image-Space Occlusion David Luebke Computer Science Department University of Virginia
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
3D Graphics for Game Programming Chapter IV Fragment Processing and Output Merging.
2 COEN Computer Graphics I Evening’s Goals n Discuss application bottleneck determination n Discuss various optimizations for making programs execute.
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.
1Computer Graphics Implementation II Lecture 16 John Shearer Culture Lab – space 2
Implementation II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Implementation II.
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
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.
Coherent Hierarchical Culling: Hardware Occlusion Queries Made Useful Jiri Bittner 1, Michael Wimmer 1, Harald Piringer 2, Werner Purgathofer 1 1 Vienna.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © Visible Surface Determination (VSD) To render or not to render, that is the question… 1 of.
Where We Stand At this point we know how to: –Convert points from local to window coordinates –Clip polygons and lines to the view volume –Determine which.
Computer Graphics I, Fall 2010 Implementation II.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Shadows David Luebke University of Virginia. Shadows An important visual cue, traditionally hard to do in real-time rendering Outline: –Notation –Planar.
01/28/09Dinesh Manocha, COMP770 Visibility Computations Visible Surface Determination Visibility Culling.
CHC ++: Coherent Hierarchical Culling Revisited Oliver Mattausch, Jiří Bittner, Michael Wimmer Institute of Computer Graphics and Algorithms Vienna University.
7/17/98 HZ Hierarchical Occlusion Maps stolen by Dave Luebke from the Ph.D. Defense presentation of: Hansong Zhang Department of Computer Science UNC-Chapel.
Lecture 30: Visible Surface Detection
Computer Graphics Implementation II
Hidden Surface Removal
Hidden Surfaces Dr. Scott Schaefer.
CSCE 441: Computer Graphics Hidden Surface Removal
Implementation II Ed Angel Professor Emeritus of Computer Science
Conservative Visibility Preprocessing using Extended Projections Frédo Durand, George Drettakis, Joëlle Thollot and Claude Puech iMAGIS-GRAVIR/IMAG-INRIA.
UMBC Graphics for Games
Visibility (hidden surface removal)
CS 551 / 645: Introductory Computer Graphics
Introduction to Computer Graphics with WebGL
Implementation II Ed Angel Professor Emeritus of Computer Science
Presentation transcript:

Hierarchical Occlusion Map Zhang et al SIGGRAPH 98

Basic Ideas Choose a set of graphics objects from the scene as Occluder Use the occluder to define Occlusion Map (hierarchically) Compare the rest of scene against the occlusion map

Example Blue: Occluders Red: Occludees

Algorithm Pipeline Occluder Viewing Frustum Occluder Rendering Database Culling Selection Build Occlusion Map Hierarchy Real Viewing Frustum Occlusion Test Scene Culling

2-Step Occlusion Test 1.Overlap Test 2.Overlap Test Overlap + Depth = Occlusion

Why decomposition? The occlusion test is done approximately (conservatively) We can afford to be more conservative in depth test than overlap test

Why Decomposition?

Overlap Test – Occlusion Map Representation of projection for overlap test: occlusion map A gray scale image – each pixel represents one block of screen region Generate by rendering occluders

Occlusion Map (OM) Each pixel of the occlusion map has an opacity, which represents the ratio of the sum of the opaque areas in the block to the total area. If fully covered, p= 1, if anti- alised pixel, p <1) Occlusion map: the alpha channel of an image

Overlap Test using OM For each potential occludee, we can scan-convert it and compare against the opacity of the pixels it overlaps Expensive!! Conservative Approximation: use the screen-space bounding box of the occludee (a superset of the actual covered pixels) If all the pixels inside the bounding box are opaque, the object is occluded.

Hierarchical Occlusion Map Like hierarchical Z-buffer, we can create a hierachy to speed up the comparison (for large objects) The low resolution pixel is an average of the high resolution pixels

Overlap Test using HOM 1.Start from the lowest resolution 2.If the pixel cover the bounding rectangle has a value 1, the object is occluded 3.Otherwise traverse down the hierarchy: If all children =1: occluded If all children =0; not occluded Otherwise, traverse down further Basic Algorithm

Approximate Overlap Test Instead of concluding an object is occluded only when the bounding box is within pixels with opacity 1, we can use an threshold between [0,1] Early termination in the high level of the hierarchy What does it mean when a block has high opacity but not one? This is the unique feature of HOM !!

Depth Test (1) Approximate Z (depth) test: A single Z Plane A single Z plane to separate the occluders from occludees.

Depth Test (2) Break the screen into small regions Build at each frame Instead of using Z-buffer, use the occluder’s bounding volume’s farthest Z Compare each potential occludee’s nearest Z (con- servative test)

Occluder Selection Ideal occluder: the visible objects – it’s a joke View-dependent occluder: too expensive (m^6 log m) – Wow! Solution: Estimate and build an occluder database Discard objects that do not server as good occluders

Occluder Selection (2) Size: not too small Redundant: detail polygons (clock on the wall) Complexity: Complex polygons are not preferred (why?) Done at run time – sort the occluders in depth, add them in order until reach the polygon count.

Discussion Robust Very little assumption about hardware Need high depth complexity Adpative occlusion culling

Hardware Support Most of the aforementioned algorithms need to be done by applications (software) Hardware support is emerging – Example HP Visualize fx board (1997)

HP hardware occlusion Extend the OpenGL – add a OCCLUSION_MODE The bounding box of an object is scan converted first A flag is set if any pixel of the BB faces is visible Only need to read back one flag, instead of the entire frame buffer Tradeoff – valueable rendering time is used to render useless BB faces (need to be used wisely) Reportedly 25%-100% speedup were observed