Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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 Hill Hansong Zhang Department of Computer Science UNC-Chapel Hill

2 7/17/98 HZ Visibility Culling Discard objects not visible to the viewer View Point View-frustum culling Back-face culling Occlusion culling View Frustum

3 7/17/98 HZ Hierarchical Occlusion Maps: Overview Blue parts: occluders Red parts: occludees

4 7/17/98 HZ Effective Algorithms Generality –Arbitrary models Speed-up –Significant, fast culling for interactive graphics Portability –Few hardware assumptions –Robustness Generality –Arbitrary models Speed-up –Significant, fast culling for interactive graphics Portability –Few hardware assumptions –Robustness

5 7/17/98 HZ Thesis Statement By properly decomposing the occlusion-culling problem and efficiently representing occlusion, we can obtain effective algorithms and systems for occlusion culling.

6 7/17/98 HZ Observations Want to handle cumulative occlusion View Point A B

7 7/17/98 HZ Observations Want an occlusion representation (OR) Fast to computeFast to compute Fast to useFast to use Want an occlusion representation (OR) Fast to computeFast to compute Fast to useFast to use View Point A B

8 7/17/98 HZ Observations Progressive occlusion culling Initialize OR to null for each object Occlusion test against OR if culled Discard object else Render object Update OR Progressive occlusion culling Initialize OR to null for each object Occlusion test against OR if culled Discard object else Render object Update OR

9 7/17/98 HZ Observations Multi-pass occlusion culling Initialize OR to null; initialize PO to empty for each object Occlusion test against OR If culled Discard object else Render object Add object to PO if PO is large enough Update OR with objects in PO Multi-pass occlusion culling Initialize OR to null; initialize PO to empty for each object Occlusion test against OR If culled Discard object else Render object Add object to PO if PO is large enough Update OR with objects in PO #passes = #updates The set of potential occluders

10 7/17/98 HZ Observations Special case: one-pass occlusion culling Select occluders until PO is large enoughSelect occluders until PO is large enough Update (build) occlusion representationUpdate (build) occlusion representation Occlusion culling & final renderingOcclusion culling & final rendering Special case: one-pass occlusion culling Select occluders until PO is large enoughSelect occluders until PO is large enough Update (build) occlusion representationUpdate (build) occlusion representation Occlusion culling & final renderingOcclusion culling & final rendering

11 7/17/98 HZ Problem Decomposition View Point Z X Y Occlusion = depth + overlap

12 7/17/98 HZ Problem Decomposition Verifying occlusion Overlap testsOverlap tests –Based on representations for projection Depth testsDepth tests –Based on representations for depth Verifying occlusion Overlap testsOverlap tests –Based on representations for projection Depth testsDepth tests –Based on representations for depth

13 7/17/98 HZ Rendered Image Occlusion Map Occlusion Maps

14 7/17/98 HZ Occlusion Maps An occlusion mapAn occlusion map –Corresponds to a screen subdivision –Records average opacity for each partition Can be generated by rendering occludersCan be generated by rendering occluders –Record pixel opacities (pixel coverage) Merge projections of occludersMerge projections of occluders Represent occlusion in image-spaceRepresent occlusion in image-space An occlusion mapAn occlusion map –Corresponds to a screen subdivision –Records average opacity for each partition Can be generated by rendering occludersCan be generated by rendering occluders –Record pixel opacities (pixel coverage) Merge projections of occludersMerge projections of occluders Represent occlusion in image-spaceRepresent occlusion in image-space

15 7/17/98 HZ Occlusion Map Pyramid 64 x 6432 x 3216 x 16

16 7/17/98 HZ Occlusion Map Pyramid

17 7/17/98 HZ Occlusion Map Pyramid Analyzing cumulative projection A hierarchy of occlusion maps (HOM)A hierarchy of occlusion maps (HOM) Made by recursive averaging (low-pass filtering)Made by recursive averaging (low-pass filtering) Record average opacities for blocks of pixelsRecord average opacities for blocks of pixels Represent occlusion at multiple resolutionsRepresent occlusion at multiple resolutions Construction accelerated by hardwareConstruction accelerated by hardware Analyzing cumulative projection A hierarchy of occlusion maps (HOM)A hierarchy of occlusion maps (HOM) Made by recursive averaging (low-pass filtering)Made by recursive averaging (low-pass filtering) Record average opacities for blocks of pixelsRecord average opacities for blocks of pixels Represent occlusion at multiple resolutionsRepresent occlusion at multiple resolutions Construction accelerated by hardwareConstruction accelerated by hardware

18 7/17/98 HZ Overlap Tests Problem: is the projection of tested object inside the cumulative projection of the occluders?Problem: is the projection of tested object inside the cumulative projection of the occluders? Cumulative projection of occluders: the pyramidCumulative projection of occluders: the pyramid Projection of the tested objectProjection of the tested object –Conservative overestimation »Bounding boxes (BB) »Bounding rectangles (BR) of BB’s Problem: is the projection of tested object inside the cumulative projection of the occluders?Problem: is the projection of tested object inside the cumulative projection of the occluders? Cumulative projection of occluders: the pyramidCumulative projection of occluders: the pyramid Projection of the tested objectProjection of the tested object –Conservative overestimation »Bounding boxes (BB) »Bounding rectangles (BR) of BB’s

19 7/17/98 HZ Overlap Tests The basic algorithm Given: HOM pyramid; the object to be tested Compute BR and the initial level in the pyramid Compute BR and the initial level in the pyramid for each pixel touched by the BR for each pixel touched by the BR if pixel is fully opaque continueelse if level = 0 return FALSE elsedescend...

20 7/17/98 HZ Overlap Tests Evaluating opacity: early termination Conservative rejectionConservative rejection Aggressive approximate cullingAggressive approximate culling Predictive rejectionPredictive rejection Evaluating opacity: early termination Conservative rejectionConservative rejection Aggressive approximate cullingAggressive approximate culling Predictive rejectionPredictive rejection

21 7/17/98 HZ Conservative Rejection A low-opacity pixel does not correspond to many high-opacity pixels at finer levelsA low-opacity pixel does not correspond to many high-opacity pixels at finer levels The transparency thresholdThe transparency threshold A low-opacity pixel does not correspond to many high-opacity pixels at finer levelsA low-opacity pixel does not correspond to many high-opacity pixels at finer levels The transparency thresholdThe transparency threshold 1111 10.811 0.9 0.10 0.20.300

22 7/17/98 HZ Aggressive Approximate Culling Ignoring barely-visible objects Small holes in or among objectsSmall holes in or among objects To ignore the small holesTo ignore the small holes –LPF suppresses noise — holes “dissolve” –Thresholding: regard “very high” opacity as fully opaque The opacity threshold: the opacity above which a pixel is considered to be fully opaqueThe opacity threshold: the opacity above which a pixel is considered to be fully opaque Ignoring barely-visible objects Small holes in or among objectsSmall holes in or among objects To ignore the small holesTo ignore the small holes –LPF suppresses noise — holes “dissolve” –Thresholding: regard “very high” opacity as fully opaque The opacity threshold: the opacity above which a pixel is considered to be fully opaqueThe opacity threshold: the opacity above which a pixel is considered to be fully opaque

23 7/17/98 HZ Aggressive Approximate Culling 0 1 234

24 7/17/98 HZ Aggressive Approximate culling Further descent not necessary when fully opaqueFurther descent not necessary when fully opaque –Tests terminated before holes are reached Need different opacity thresholds for each levelNeed different opacity thresholds for each level Further descent not necessary when fully opaqueFurther descent not necessary when fully opaque –Tests terminated before holes are reached Need different opacity thresholds for each levelNeed different opacity thresholds for each level

25 7/17/98 HZ Predictive Rejection Terminate the test knowing it must fail later...Terminate the test knowing it must fail later...

26 7/17/98 HZ Summary: Levels of Visibility The continuum between being visible and non-visible Almost transparent (low opacity) Almost opaque (high opacity) Almost visible Almost non-visible Occlusion Maps Potential Occludees

27 7/17/98 HZ Resolving Depth What’s left of the occlusion test? B A “A occludes B” = “A’s projection contains B’s” + ? B does not occlude any part of A Another interpretation...

28 7/17/98 HZ Resolving Depth Depth representations Define a boundary beyond which an object overlapping occluders is definitely occludedDefine a boundary beyond which an object overlapping occluders is definitely occluded Conservative estimates:Conservative estimates: –A single plane –Depth estimation buffer No-background z-bufferNo-background z-buffer Depth representations Define a boundary beyond which an object overlapping occluders is definitely occludedDefine a boundary beyond which an object overlapping occluders is definitely occluded Conservative estimates:Conservative estimates: –A single plane –Depth estimation buffer No-background z-bufferNo-background z-buffer

29 7/17/98 HZ A single plane The point with nearest depth Occluders Viewing direction This object passes the depth test The plane A Image plane … at the farthest vertex of the occluders

30 7/17/98 HZ Depth Estimation Buffer Like a low-res depth buffer Uniform subdivision of the screenUniform subdivision of the screen A plane for each partitionA plane for each partition Defines the far boundaryDefines the far boundary Updates (i.e. computing depth representation)Updates (i.e. computing depth representation) –Occluder bounding rectangle at farthest depth Depth testsDepth tests –Occudee bounding rectangle at nearest depth Like a low-res depth buffer Uniform subdivision of the screenUniform subdivision of the screen A plane for each partitionA plane for each partition Defines the far boundaryDefines the far boundary Updates (i.e. computing depth representation)Updates (i.e. computing depth representation) –Occluder bounding rectangle at farthest depth Depth testsDepth tests –Occudee bounding rectangle at nearest depth

31 7/17/98 HZ Depth Estimation Buffer Bounding rectangle at nearest depth D. E. B. Occluders A Viewing direction Transformed view-frustum Bounding rectangle at farthest depth B Imageplane

32 7/17/98 HZ Depth Estimation Buffer Trade-off AdvantagesAdvantages –Removes need for strict depth sorting –Speed –Portability DisadvantagesDisadvantages –Conservative far boundary –Requires good bounding volumes Trade-off AdvantagesAdvantages –Removes need for strict depth sorting –Speed –Portability DisadvantagesDisadvantages –Conservative far boundary –Requires good bounding volumes

33 7/17/98 HZ No-Background Z-Buffer The z-buffer from occluder rendering...The z-buffer from occluder rendering... –is by itself an full occlusion representation –has to be modified to support our depth tests “Removing” background depth values“Removing” background depth values –Replace them the “foreground” depth values Captures the near boundaryCaptures the near boundary The z-buffer from occluder rendering...The z-buffer from occluder rendering... –is by itself an full occlusion representation –has to be modified to support our depth tests “Removing” background depth values“Removing” background depth values –Replace them the “foreground” depth values Captures the near boundaryCaptures the near boundary

34 7/17/98 HZ No-Background Z-Buffer D. E. B Occluders N. B. Z A Viewing direction Transformed view-frustum Objects passing the depth tests Imageplane

35 7/17/98 HZ No-Background Z-Buffer Trade-off AdvantagesAdvantages –Captures the near boundary –Less sensitive to bounding boxes DisadvantagesDisadvantages –Assumes quickly accessible z-buffer –Resolution same as occlusion maps (however…) Trade-off AdvantagesAdvantages –Captures the near boundary –Less sensitive to bounding boxes DisadvantagesDisadvantages –Assumes quickly accessible z-buffer –Resolution same as occlusion maps (however…)

36 7/17/98 HZ Occluder Selection Occlusion-preserving simplification (OPS)Occlusion-preserving simplification (OPS) Run-time selectionRun-time selection Visibility pre-processingVisibility pre-processing Occlusion-preserving simplification (OPS)Occlusion-preserving simplification (OPS) Run-time selectionRun-time selection Visibility pre-processingVisibility pre-processing

37 7/17/98 HZ OPS View-independent OPSView-independent OPS X Z

38 7/17/98 HZ OPS View-dependent OPSView-dependent OPS

39 7/17/98 HZ OPS In practice, use traditional, static LOD’sIn practice, use traditional, static LOD’s –More restrictive view-independent OPS –Well-studied and available –Low run-time overhead –Shared with final rendering, no extra memory –Area-preserving [Erikson 98] Conservative OPS (COPS)...Conservative OPS (COPS)... In practice, use traditional, static LOD’sIn practice, use traditional, static LOD’s –More restrictive view-independent OPS –Well-studied and available –Low run-time overhead –Shared with final rendering, no extra memory –Area-preserving [Erikson 98] Conservative OPS (COPS)...Conservative OPS (COPS)...

40 7/17/98 HZ Occluder selection At run time Distance-based selection with a polygon budgetDistance-based selection with a polygon budget Temporal coherenceTemporal coherence Visibility sampling Pre-compute visible objects on a 3-D gridPre-compute visible objects on a 3-D grid Facilitates run-time selectionFacilitates run-time selection At run time Distance-based selection with a polygon budgetDistance-based selection with a polygon budget Temporal coherenceTemporal coherence Visibility sampling Pre-compute visible objects on a 3-D gridPre-compute visible objects on a 3-D grid Facilitates run-time selectionFacilitates run-time selection

41 7/17/98 HZ Implementation A two-pass framework View Frustum Culling Build Occlusion Representation Scene Database Occluder Selection Rendering Occlusion Culling LOD LOD

42 7/17/98 HZ Implementation PipeliningPipelining FinalDraw N OccDraw N +1 OccDraw N FinalDraw N+1 OccDraw N+2 FinalDraw N +1 OccSel N OccSel N+1 OccSel N+2 OccSel N+3 Cull N Cull N+1 Cull N+2

43 7/17/98 HZ Implementation Uses bounding volume hierarchyUses bounding volume hierarchy Active layers of the pyramid: 4x4 - 64x64Active layers of the pyramid: 4x4 - 64x64 ResolutionsResolutions –Occluder rendering - 256x256 –D. E. B. - 64x64 Test platformsTest platforms –SGI Onyx II, 4 195Mhz R10000, InfiniteReality –SGI Onyx I, 4 250MHz R4400, InfiniteReality Uses bounding volume hierarchyUses bounding volume hierarchy Active layers of the pyramid: 4x4 - 64x64Active layers of the pyramid: 4x4 - 64x64 ResolutionsResolutions –Occluder rendering - 256x256 –D. E. B. - 64x64 Test platformsTest platforms –SGI Onyx II, 4 195Mhz R10000, InfiniteReality –SGI Onyx I, 4 250MHz R4400, InfiniteReality

44 7/17/98 HZ Results The city model

45 7/17/98 HZ Results The city model 312,524 polygons312,524 polygons Single CPUSingle CPU 5,000 occluder polygons5,000 occluder polygons Depth estimation bufferDepth estimation buffer Opacity thresholds 1.0Opacity thresholds 1.0 Lighting; display lists; no triangle stripsLighting; display lists; no triangle strips The city model 312,524 polygons312,524 polygons Single CPUSingle CPU 5,000 occluder polygons5,000 occluder polygons Depth estimation bufferDepth estimation buffer Opacity thresholds 1.0Opacity thresholds 1.0 Lighting; display lists; no triangle stripsLighting; display lists; no triangle strips

46 7/17/98 HZ Results

47 7/17/98 HZ Results

48 7/17/98 HZ Results Auxiliary Machine Room (AMR)

49 7/17/98 HZ Results AMR 632,252 polygons632,252 polygons 3 CPUs3 CPUs 25,000 occluder polygons25,000 occluder polygons No-background z-bufferNo-background z-buffer Approximate culling (0.85 for level 64x64)Approximate culling (0.85 for level 64x64) LODLOD Lighting; display lists; no triangle stripsLighting; display lists; no triangle stripsAMR 632,252 polygons632,252 polygons 3 CPUs3 CPUs 25,000 occluder polygons25,000 occluder polygons No-background z-bufferNo-background z-buffer Approximate culling (0.85 for level 64x64)Approximate culling (0.85 for level 64x64) LODLOD Lighting; display lists; no triangle stripsLighting; display lists; no triangle strips

50 7/17/98 HZ Results

51 7/17/98 HZ Results

52 7/17/98 HZ Results

53 7/17/98 HZ Results The power plant model

54 7/17/98 HZ Results The power plant model 15 million triangles15 million triangles 3 CPUs3 CPUs Visibility pre-processing on a 20x20 grid (~15min)Visibility pre-processing on a 20x20 grid (~15min) No-background z-bufferNo-background z-buffer 18,000 occluder polygons18,000 occluder polygons opacity thresholds from 0.85 and upopacity thresholds from 0.85 and up LODLOD The power plant model 15 million triangles15 million triangles 3 CPUs3 CPUs Visibility pre-processing on a 20x20 grid (~15min)Visibility pre-processing on a 20x20 grid (~15min) No-background z-bufferNo-background z-buffer 18,000 occluder polygons18,000 occluder polygons opacity thresholds from 0.85 and upopacity thresholds from 0.85 and up LODLOD

55 7/17/98 HZ Results

56 7/17/98 HZ

57 Conclusion Goals achieved GeneralityGenerality –Any model, any occluder –Occluder fusion Speed-upSpeed-up –Accelerate interactive graphics Ease of implementationEase of implementation –Configurability –Robustness Goals achieved GeneralityGenerality –Any model, any occluder –Occluder fusion Speed-upSpeed-up –Accelerate interactive graphics Ease of implementationEase of implementation –Configurability –Robustness

58 7/17/98 HZ Conclusion Main contributions: Problem decompositionProblem decomposition –Overlap tests and depth tests Occlusion representationsOcclusion representations –Occlusion maps –Depth Estimation Buffer –No-Backgrpund Z-Buffer Main contributions: Problem decompositionProblem decomposition –Overlap tests and depth tests Occlusion representationsOcclusion representations –Occlusion maps –Depth Estimation Buffer –No-Backgrpund Z-Buffer

59 7/17/98 HZ Conclusion Main contributions Hierarchical occlusion mapsHierarchical occlusion maps –Analysis of occlusion at multiple resolutions –High-level opacity estimation –Aggressive approximate culling –Levels of visibility The first occlusion culling algorithm for general models and interactive 3-D graphicsThe first occlusion culling algorithm for general models and interactive 3-D graphics Main contributions Hierarchical occlusion mapsHierarchical occlusion maps –Analysis of occlusion at multiple resolutions –High-level opacity estimation –Aggressive approximate culling –Levels of visibility The first occlusion culling algorithm for general models and interactive 3-D graphicsThe first occlusion culling algorithm for general models and interactive 3-D graphics

60 7/17/98 HZ Future Work Other implementations... PC’s and gamesPC’s and games –How much can be done in software? Integration into hardwareIntegration into hardware –More progressive updates to occlusion representation –Less conservative culling Wide-spread use of occlusion cullingWide-spread use of occlusion culling Other implementations... PC’s and gamesPC’s and games –How much can be done in software? Integration into hardwareIntegration into hardware –More progressive updates to occlusion representation –Less conservative culling Wide-spread use of occlusion cullingWide-spread use of occlusion culling


Download ppt "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."

Similar presentations


Ads by Google