Visibility and Hidden Surface Removal
Visibility and Hidden Surface Removal Visibility and Hidden Surface Removal
BSP algorithm • Binary space partitioning of object space to create a binary tree – object-space algorithm • Tree traversal gives back-to-front ordering depending on view point • Creating/updating the tree is time- and space-intensive (do it in preprocessing), but traversal is not – efficient for static group of polygons and dynamic view • Basic idea: render polygons in the half- © Machiraju/Zhang/Möller space at the back first, then front 64
Building the BSP trees • Object space is split by a root polygon (A) and with respect to its surface normal (in front of or behind the root) • Polygons (C) which lie in both spaces are split • Front and back subspaces are divided recursively to form a © Machiraju/Zhang/Möller binary tree 65 B D C 1 C 2 A E B E front back back C 1 front A back D C 2
- Page 13 and 14: Why compute visibility? • Realism
- Page 15 and 16: Classification of algorithms • Hi
- Page 17 and 18: Object Space for each object in wor
- Page 19 and 20: How to improve efficiency • Pay a
- Page 21 and 22: 1. Coherence • Why? — Object pr
- Page 23 and 24: 1. Edge and face coherence • Edge
- Page 25 and 26: 2. Use of projection normalization
- Page 27 and 28: 2. Perspective Transform • Can br
- Page 29 and 30: 3. Bounding Objects (2) • For ren
- Page 31 and 32: 3. Bounding Objects (4) • rectang
- Page 33 and 34: 4. Back-face culling • Assumption
- Page 35 and 36: 5. Spatial Partitioning • break a
- Page 37 and 38: 6. Hierarchy • Use (e.g., semanti
- Page 39 and 40: z-buffer algorithm revisited • On
- Page 41 and 42: z-buffer: exploiting depth coherenc
- Page 43 and 44: z-buffer: bilinear interpolation
- Page 45 and 46: List Priority (2) • Depth compari
- Page 47 and 48: List Priority (4) • Do extents in
- Page 49 and 50: List Priority (6) • Do polygons c
- Page 51 and 52: List Priority (8) • If these test
- Page 53 and 54: List Priority (10) • More example
- Page 55 and 56: Scanline: data structure • Recall
- Page 57 and 58: Scanline Example • Another repres
- Page 59 and 60: Scanline: scan example 2 • At sca
- Page 61 and 62: Scanline: scan example 4 • Mainta
- Page 63: Scanline problems • Beware of lar
- Page 67 and 68: BSP traversal example • Rendering
- Page 69 and 70: Warnock’s subdivision • Divide
- Page 71 and 72: Warnocks Algorithm (3) - Single sur
- Page 73 and 74: Warnock’s Algorithm • If none o
- Page 75: Final issues on area subdivision
Building the BSP trees<br />
• Object space is split by<br />
a root polygon (A) <strong>and</strong><br />
with respect to its<br />
surface normal (in front<br />
of or behind the root)<br />
• Polygons (C) which lie<br />
in both spaces are split<br />
• Front <strong>and</strong> back<br />
subspaces are divided<br />
recursively to form a<br />
© Machiraju/Zhang/Möller<br />
binary tree 65<br />
B<br />
D<br />
C 1<br />
C 2<br />
A<br />
E<br />
B E<br />
front back back<br />
C 1<br />
front<br />
A<br />
back<br />
D C 2