FromPoint Occlusion Culling Chapter 23 1 Talk Outline
- Slides: 48
From-Point Occlusion Culling Chapter 23 1
Talk Outline • Image space methods – Hierarchical Z-Buffer – Hierarchical occlusion maps – Some other methods • Object space methods – General methods • Shadow frusta, BSP trees, temporal coherent visibility – Cells and portals 2
What Methods are Called Image-Space? • Those where the decision to cull or render is done after projection (in image space) Decision to cull Object space hierarchy View volume 3
Ingredients of an Image Space Method • An object space data structure that allows fast queries to the complex geometry Space partitioning Hierarchical bounding volumes Regular grid 4
An Image Space Representation of the Occlusion Information • Discrete – Z-hierarchy – Occlusion map hierarchy • Continuous – BSP tree – Image space extends 5
General Outline of Image Space Methods • During the in-order traversal of the scene hierarchy do: – compare each node against the view volume – if not culled, test node for occlusion – if still not culled, render objects/occluders augmenting the image space occlusion • Most often done in 2 passes – render occluders – create occlusion structure – traverse hierarchy and classify/render 6
Testing a Node for Occlusion • If the box representing a node is not visible then nothing in it is either • The faces of the box are projected onto the image plane and tested for occlusion occluder hierarchical representation 7
Testing a Node for Occlusion • If the box representing a node is not visible then nothing in it is either • The faces of the box are projected onto the image plane and tested for occlusion occluder hierarchical representation 8
Hierarchical Test 9
Differences of Algorithms • The most important differences between the various approaches are: – the representation of the (augmented) occlusion in image space and, – the method of testing the hierarchy for occlusion 10
Hierarchical Z-Buffer (HZB) (Greene and Kass, SIG 93) • An extension of the Z-buffer VSD algorithm • It follows the outline described above • Scene is arranged into an octree which is traversed top-to-bottom and front-to-back • During rendering the Z-pyramid (the occlusion representation) is incrementally built • Octree nodes are compared against the Zpyramid for occlusion 11
The Z-Pyramid • The content of the Z-buffer is the finest level in the pyramid • Coarser levels are created by grouping together four neighbouring pixels and keeping the largest z-value • The coarsest level is just one value corresponding to overall max z 12
The Z-Pyramid = furthest = closer = closest Objects are rendered Depth taken from the z-buffer by d i m a r y p Construct each f o x a m g takin 4 13
Using The Z-Pyramid = furthest = closer = closest 14
Maintaining the Z-Pyramid • Ideally every time an object is rendered causing a change in the Z-buffer, this change is propagated through the pyramid • However this is not a practical approach 15
More Realistic Implementation • Make use of frame to frame coherence – at start of each frame render the nodes that were visible in previous frame – read the z-buffer and construct the zpyramid – now traverse the octree using the z-pyramid for occlusion but without updating it 16
HZB: Discussion • It provides good acceleration in very dense scenes • Getting the necessary information from the Z-buffer is costly • A hardware modification was proposed for making it real-time 17
Hierarchical Occlusion Maps (Zhang et al, SIG 97) • Similar idea to HZB but – they separate the coverage information from the depth information, two data structures • hierarchical occlusion maps • depth (several proposals for this) • Two passes – render occluders and build HOM – render scene hierarchy using HOM to cull 18
What is the Occlusion Map Pyramid? • A hierarchy of occlusion maps (HOM) • At the finest level it’s just a bit map with – 1 where it is transparent and – 0 where it is opaque (ie occluded) • Higher levels are half the size in each dimension and store gray-scale values • Records average opacities for blocks of pixels • Represents occlusion at multiple resolutions 19
Occlusion Map Pyramid 64 x 64 32 x 32 16 x 16 20
How is the HOM Computed? • Clear the buffer to black • Render the occluders in pure white (no lighting, textures etc) • The contents of the buffer form the finest level of the HOM • Higher levels are created by recursive averaging (low-pass filtering) • Construction accelerated by hardware bilinear interpolation or texture maps / mipmaps 21
Occlusion Map Pyramid 22
Overlap Tests • To test if the projection of a polygon is occluded – find the finest-level of the pyramid whose pixel covers the image-space box of the polygon – if fully covered then continue with depth test – else descend down the pyramid until a decision can be made 23
Resolving Depth Image plane The plane Occluders Viewing direction The point with nearest depth A Or: uniform subdivision of image with separate depth at each partition Or even: just the Z-buffer content Either: a single plane at furthest point of occluders This object passes the depth test Transformed view-frustum Image plane D. E. B. Viewing direction Occluders Bounding rectangle at farthest depth B A Bounding rectangle at nearest depth 24
Aggressive Approximate Culling 0 1 2 3 4 25
HP Hardware implementation • Before rendering an object, scanconvert its bounding box • Special purpose hardware used to determine if any of the covered pixels passed the z-test • If not the object is occluded 26
Simplified Occlusion Map • Read top half of the buffer to use as an occlusion map • Project top of cell to image space • Simplify projection to a line • Test if any pixel along line is visible 29
Discussion on Image Space • Advantages (not for all methods) – hardware acceleration – generality (anything that can be rendered can be used as an occluder) – robustness, ease of programming – option of approximate culling • Disadvantages – hardware requirements – overheads 30
Object Space Methods • Visibility culling with large occluders – Hudson et al, So. CG 97 – Bittner et al, CGI 98 – Coorg and Teller, So. CG 96 and I 3 D 97 • Cells and portals – Teller and Sequin, Siggraph 91 – Luebke and Georges, I 3 D 95 31
Occlusion Using Shadow Frusta (Hudson et al, So. CG 97) Occluder A Viewpoint C B 32
Assuming we can Find Good Occluders • For each frame – 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 33
Occluder Test • Traverse the scene hierarchy top down • Overlap test (cell to shadow volume) is performed in 2 D – when the hierarchy uses an axis-aligned scheme (eg kd-trees, bounding boxes etc) then a very efficient overlap test is presented 34
Occlusion Trees (Bittner et al, CGI 98) • Just as before – scene represented by a hierarchy (kd-tree) – for each viewpoint • select a set of potential occluders • compare the scene hierarchy for occlusion • However, unlike the previous method – the occlusion is accumulated into a binary tree – the scene hierarchy is compared for occlusion against the tree 35
Create shadow volume of occluder 1 Tree 1 O 2 View point 2 out O 1 out 2 O 1 out IN 1 O 3 36
Insert occluder 2 and augment tree with its shadow volume Tree 4 1 O 2 View point 3 O 3 out 4 out 1 O 1 3 2 O 1 2 out IN O 2 out IN 37
And so on until all occluders are added Tree 4 O 2 View point 1 O 4 2 3 5 1 O 3 3 2 O 1 out O 2 out O 3 out IN 4 out 6 out out IN IN 38
Check occlusion of objects T 1 and T 2 by inserting them in tree Tree 4 1 O 2 View point 2 3 T 2 1 O 3 3 2 O 1 5 6 out O 2 out O 3 out IN 4 out T 1 O 1 out IN IN 39
Occluder selection • This is a big issue relevant to most occlusion culling algorithms but particularly to the last two • At pre-processing – Identify likely occluders for a cell • they subtend a large solid-angle – Test likely occluders • use a sample of viewpoints and compute actual shadow volumes resulting • At run time – locate the viewpoint in the hierarchy and use the occluders associated with that node 40
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 41
Cells and Portals (Teller and Sequin, SIG 91) • Decompose space into convex cells • For each cell, identify its boundary edges into two sets: opaque or portal • Precompute visibility among cells • During viewing (eg, walkthrough phase), use the precomputed potentially visible polygon set (PVS) of each cell to speed-up rendering 42
Determining Adjacent Information 43
For Each Cell Find Stabbing Tree 44
Compute Cell Visible From Each Cell Linear programming problem: S • L 0, S • R 0, L L R R 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) 45
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 • 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 46
Image Space Cells and Portals (Luebke and Georges, I 3 D 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 47
Top View Showing the Recursive Clipping of the View Volume 48
Discussion on Object Space • Visibility culling with large occluders – good for outdoor urban scenes where occluders are large and depth complexity can be very high – not good for general scenes with small occluders • 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” 49
Conclusion • There is a very large number of pointvisibility algorithms • Image space are becoming more and more attractive • Specialised algorithms should be preferred if speed is most important factor 50
- Torsoverted
- Incisal guidance
- Bgp session culling
- Octree culling
- Bfnffn
- Portal culling
- Portal culling
- Clipping and culling
- Talk, read, talk, write resources
- Amateurs discuss tactics professionals discuss logistics
- The words use are not
- How to make a sandwich paragraph
- Great gatsby chapter 4 notes
- Art talk chapter 6 review answers
- Art talk chapter 2 review answers
- Recording problems in biomedical instrumentation
- Trauma from occlusion
- Monoplane teeth set
- Selective grinding
- Monoplane occlusion definition
- Occlusion rims dimensions
- Lingual cusp
- Coprecipitation errors
- Coprostasis hernia
- What is retruded contact position
- Selective grinding
- Lingualized occlusion advantages
- Méthode de taylor ulcère
- Difference between occlusion and mixed-crystal formation
- Pleasure curve in dentistry
- Define ambient occlusion
- Hzb occlusion
- Occlusal plane
- Von weimarn ratio formula
- Difference between colloidal and crystalline precipitate
- Vertical jaw relation definition
- Hanau quint equation
- Radial artery occlusion
- Screen space ao
- Mssao
- Streak formation iv
- Vray dirt texture
- Trauma from occlusion treatment
- Importance of occlusion
- Monoplane occlusion
- Occlusion intestinale
- Disadvantages of balanced occlusion
- Occlusion vs obstruction
- Learning instance occlusion for panoptic segmentation