6.837 F98 Lecture 17: November 12, 1998

Conservative Visibility Algorithms

Last time we saw several elegant object-precision or hybrid algorithms

However, difficult to justify superlinear processing when models get huge.

Let's review the visibility questions we posed last time:

What are tradeoffs among the methods we saw last time?
Parameters:
  model size n, screen resolution r = w *h

Desiderata:


  

For a time, vanilla clipping and z-buffering were the best option.
However, soon the O(n) term itself became intolerable. So...

The notion of conservative visibility oracles arose:
  Prefix pipeline with data structure & algorithm which efficiently
  discards invisible polygons, and/or identifies visible polygons

  Assume an ordinary z-buffered pipeline handles rendering

  (that is, resolves visibility at screen resolution -- no fragments)

  But: if oracle is to get the correct picture, what constraint

  must it observe? This is called conservative culling.

Example conservative visibility oracles:

Is there an algorithmic "middle ground" between these two extremes?

Early conservative visibility oracle: hierarchical frustum culling (Garlick et al., 1990)

     

Pseudocode:

Cull (Frustum F, Tree T) {
  if ( F^T != null ) { // if F and T are not spatially disjoint

  if ( T is a leaf )

  render portion of T's contents within F // how ?

  else { // examine subtrees (e.g., positive, negative halfspaces)

  Cull ( F, T->lochild )

  Cull ( F, T->hichild)

  }

  } // if F ^T ...

} // Cull

Reduces overdraw somewhat, on average (for example beyond far
  clipping plane) but does not detect occlusion of one polygon by another

  (For what kind of models/scenes would this algorithm

  be ideal -- about as well as you can do?)

... and there can be a whole lot of occlusion!


UC Berkeley Soda Hall



Typical interior office, with lighting


Same office, with polygon mesh shown

Previous Meeting .... Next Meeting ... Course Page


Last modified: Nov 1998

Prof. Seth Teller, MIT Computer Graphics Group, seth@graphics.lcs.mit.edu