hierarchical raster occlusion cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4....

40
Hierarchical Raster Occlusion Culling Gi Beom Lee, Moonsoo Jeong, Yechan Seok, Sungkil Lee Sungkyunkwan University, South Korea Eurographics 2021

Upload: others

Post on 25-Apr-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

Hierarchical Raster Occlusion Culling

Gi Beom Lee, Moonsoo Jeong, Yechan Seok, Sungkil LeeSungkyunkwan University, South Korea

Eurographics 2021

Page 2: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

2

Occlusion Culling (OC)

• Bypass rendering of occludees hidden by visible occluders

• Crucial in accelerating geometry rendering

Occluder(rendered)

Occludee (not rendered)

Camera

Camera View

Page 3: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

3

Online Occlusion Culling

• On-the-fly visibility query from a view point

• No preprocessing

• Screen-space tests are common

• Two categories

• Per-bound test within the axis-aligned screen-space bounds

• Per-fragment test within rasterized per-object bounds

Rasterization of per-object boundsAxis-aligned bounds

Page 4: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

4

Per-Bound Test

• Test the axis-aligned bounds

• Highly scalable, resulting from batch tests

• Lower culling efficiency with wider conservative bounds

• Reprojection often replaces occlusion map [Sousa 2011; Lee 2018]

• Screen-space hierarchy is common for efficient tests

• [Zhang et al. 1997; Coorg et al. 1997]

Zhang, Hansong, et al. "Visibility culling using hierarchical occlusion maps." Proceedings of the 24th annual conference on Computer graphics and interactive techniques. 1997.Coorg, Satyan, and Seth Teller. "Real-time occlusion culling for models with large occluders." Proceedings of the 1997 symposium on Interactive 3D graphics. 1997.Sousa, Tiago, Nick Kasyan, and Nicolas Schulz. "Secrets of CryENGINE 3 graphics technology." ACM SIGGRAPH. Vol. 1. No. 2. 2011.Lee, Sungkil, Younguk Kim, and Elmar Eisemann. "Iterative depth warping." ACM Transactions on Graphics (TOG) 37.5 (2018): 1-13.

Mipmap hierarchy

Page 5: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

5

Per-Fragment Test

• In the rasterized object bounds

• Test any of the fragments are visible against the occlusion map

• Higher culling efficiency from tighter bounds than axis-aligned bounds

• GPU-Driven Techniques

• Hardware occlusion query (HOQ): counter-based

• Raster occlusion culling (ROC): direct tagging

Page 6: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

6

Hardware Occlusion Query (HOQ)

• Count the fragments that pass the depth test

• The query itself is fast, but read-back of the results causes stalls

• Hierarchical Queries

• CHC, CHC++ [Bittner et al. 04; Mattausch et al. 08]

• Cuts are maintained based on temporal coherence.

• Can use batch queries, and suppress redundant queries largely

• Too many queries (for complex scenes) lead to non-trivial latency.

Bittner et al. "Coherent hierarchical culling: Hardware occlusion queries made useful." Computer Graphics Forum. Vol. 23. No. 3. Oxford, UK: Blackwell Publishing Ltd, 2004.Mattausch et al. "CHC++: Coherent hierarchical culling revisited." Computer Graphics Forum. Vol. 27. No. 2. Oxford, UK: Blackwell Publishing Ltd, 2008.

Page 7: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

7

Raster Occlusion Culling (ROC)

• Direct Tagging to Vis. Buffer [Kubisch et al. 2014; Boudier et al. 2015]

• Object visibilities are tagged, only when any of fragments pass the early-Z.

• Indirect multidraw can avoid read-back of the counters.

• Iterating over every objects can be costly for complex scenes.

• Motivate our hierarchy-based approach for scalability

Kubisch, C., Tavenrath, M.: OpenGL 4.4 scene rendering techniques. NVIDIA GPU Technology Conference, 2014Boudier, Pierre, and Cristoph Kubisch. "GPU Driven Large Scene Rendering." Presentation at the GPU Technology Conference (GTC 2015), San Jose, CA, USA. 2015.

passed fragments

discarded fragments

bounding box

Depth buffer(depth of occluders)

Page 8: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

8

Our Contributions

• Hierarchical ROC (HROC)

• Potential occludees are grouped in BVH and tested in a batch.

• Hybrid culling: rasterization + ray casting

• Rasterize the bounds of the groups

• Per-pixel ray casting tests visibilities of the individual objects.

• The hierarchy is traversed implicitly in the ray casting, which avoids the hierarchical iteration in the host.

Page 9: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

9

HROC (Ours) vs. ROC

• Ours rasterizes fewer bounds for occlusion test

• Example scene : 420 frames, 73.8K objects, 147.6K BVH nodes

• HROC (Ours): 272 boxes / frame

• ROC: 73.8K boxes / frame (i.e., all objects are rasterized)

Ours ROCRadial City (RC)

Page 10: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

Algorithms

Page 11: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

11

Overview

Page 12: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

12

Occlusion Map Rendering

• Selection of potential occluders

• Exploit temporal coherence

• Selection of effective occluders

• Potential occluders passing early-Z

potential occluderseffective occluders

Page 13: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

13

Extraction of Occludee Groups

• Find potential occludee group

• Bottom-up traversal on the object-level BVH

• Ancestors of visible node (n) are also visible (V)

• The visibility of the remainder (G) are unknown

Page 14: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

14

Batch Occlusion Test

• Rasterize the bounds of occludee groups with Early-Z

• Fully hidden occludee groups are implicitly culled.

• Cast rays for each fragment • Fine-grained tests for individual occludee objects

• Ray casting should not stop at the nearest intersection.

Page 15: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

15

Occludee Rendering

• Render potentially visible occludees with early-Z

• Add visible occludees to effective occluders rendered in Occlusion Map Rendering stage

• Set newly potential occluders for next frame

Effective occluders Visible occludeesPotential occluders (for next frame)

Page 16: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

Accelerations

Page 17: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

17

Packed Multidraw with Counter Read-Back

• GPUs do not well handle void objects in the command buffer.

void objects

Page 18: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

18

Packed Multidraw with Counter Read-Back

• Packing can avoid handling void objects.

Page 19: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

19

Packed Multidraw with Counter Read-Back

• Read-back of draw counter

• drawcount can be dereferenced in GPU, but we still need to provide another counter, maxdrawcount.

• The standard usage is using the number of the entire objects, but this causes still handling the void objects.

• Hence, we read back the counter of valid objects, and use it for the count.

• We can read the counters three times:

void glMultiDrawElementsIndirectCount( …, drawcount, maxdrawcount, … );

Page 20: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

20

Occluder Filtering

• Early-Z may include non-trivial false positives

• Rendered earlier than their blockers

• Selecting only true positives with an item buffer

• can reduce potential occluders, and more occludees can be culled.

Page 21: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

Experimental Analysis

Page 22: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

22

Test Configurations

• Platform

• Intel Core i7-7800X 3.6GHz

• NVIDIA RTX 2080 Ti

• OpenGL API in Windows 10

• Scenes

• Four camera-animated scenes: durations of 10s

• Fantasy (FN), Factory (FC), Radial City (RC), Satellites (ST)

Page 23: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

23

Fantasy (FN) 17.9M Tris, 7.4K Objs, 14.9K BVH nodes (0.5 MB)

Page 24: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

24

Factory (FC) 5.7M Tris, 46.6K Objs, 93.2K BVH nodes (3.0 MB)

Page 25: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

25

Radial City (RC)1.2M Tris, 73.8K objs, 147.6K BVH nodes (4.7 MB)

Page 26: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

26

Satellites (ST)807.1M Tris, 120K objs, 240K BVH nodes (7.7 MB)

Page 27: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

27

Methods to Compare

Methods Description

NOC • No-cull rendering

VFC • View frustum culling

REF • Ideal reference rendering

CHC++• [Mattausch et al. 2008]• The state-of-the-art hierarchical culling

ROC • [Kubisch et al. 2014; Boudier et al. 2015]

WOC• [Lee et al. 2018]• The state-of-the-art image-space culling

IOC • [Lee et al. 2020]• Simple hierarchy-based ROC culling

Page 28: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

28

Performance (FHD)

• From small to complex scenes, ours performs best

• Occluder filtering (OF): best for FN (small-scale scene)

• Counter read-back (CR)+OF: best for medium to large-scale

• Ours is less sensitive to the number of objects

FN

Page 29: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

29

Performance (FHD)

• From small to complex scenes, ours performs best

• Occluder filtering (OF): best for FN (small-scale scene)

• Counter read-back (CR)+OF: best for medium to large-scale

• Ours is less sensitive to the number of objects

FC

Page 30: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

30

Performance (FHD)

• From small to complex scenes, ours performs best

• Occluder filtering (OF): best for FN (small-scale scene)

• Counter read-back (CR)+OF: best for medium to large-scale

• Ours is less sensitive to the number of objects

RC

Page 31: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

31

Performance (FHD)

• From small to complex scenes, ours performs best

• Occluder filtering (OF): best for FN (small-scale scene)

• Counter read-back (CR)+OF: best for medium to large-scale

• Ours is less sensitive to the number of objects

RC ’

Page 32: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

32

Performance (FHD)

• From small to complex scenes, ours performs best

• Occluder filtering (OF): best for FN (small-scale scene)

• Counter read-back (CR)+OF: best for medium to large-scale

• Ours is less sensitive to the number of objects

ST

Page 33: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

33

Performance (4K UHD)

• Ours performs faster for complex scenes

• Per-pixel ray casting is still scalable in higher resolution

• ROC performs slightly faster for FC.

Occluder Filtering (OF), Counter Read-back (CR)

FN FC

RC ST

Page 34: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

34

Effects of Accelerations

• Counter read-back (CR)

• 1.10X speedup with respect to NA on average

• Occluder filtering (OF): best for FN scene

• 1.10X speedup with respect to NA on average

• CR + OF: best for FC, RC, ST scenes

• 1.29X speedup with respect to NA on average

Page 35: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

35

Camera Sequences

Performance (ms) along the camera sequences

Page 36: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

36

Camera Sequences

Performance (ms) along the camera sequences

Page 37: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

Limitations and Conclusion

Page 38: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

38

Limitations

• Dynamic Object handling

• Common limitation with hierarchy-based solutions

• Potential solution: hybrid culling solution (HROC and ROC)

• When a camera lies inside a large occludee group

• Excessively large bounds are tested with ray casting

• Potential solution: subdividing the box down to its children

Page 39: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

39

Conclusion

• Hierarchical ROC

• Scalable batch tests of coarse occludee groups

• Two-phase hybrid culling

• Rasterization of occludee groups to initiate per-pixel tests

• Per-pixel ray casting for fine-grained visibility tests

Page 40: Hierarchical Raster Occlusion Cullingcg.skku.edu/pub/papers/2021-lee-eg-hroc-slides.pdf · 2021. 4. 2. · 7 Raster Occlusion Culling (ROC) • Direct Tagging to Vis. Buffer [Kubisch

Thank you for your attention!