Download presentation
Presentation is loading. Please wait.
Published byGervais Craig Modified over 9 years ago
1
Visibility III: Occlusion Queries CS 446: Real-Time Rendering & Game Technology David Luebke University of Virginia
2
Real-Time Rendering 2 David Luebke REMINDER: I’ve reorganized the next few demos Feb 23: Erin Golub Feb 28:Sean Arietta Mar 2:Jiayuan Meng If this is a problem, let me know! Today: Project Offset Demo Time: Paul Tschirhart
3
Real-Time Rendering 3 David Luebke Assignment 3 Olsson 002a: I feel your pain –Working on fixing these problems, and on communicating their urgency…
4
Real-Time Rendering 4 David Luebke Recap: General Occlusion Culling Need general occlusion culling algorithms: –Aggregate occlusion (trees in forest) –Dynamic scenes (waving trees in forest; crowd scene) Many general occlusion culling algorithms use an image-space approach –Idea: solve visibility in 2D, on the image plane
5
Real-Time Rendering 5 David Luebke Recap: Hierarchical Z-Buffer Replace Z-buffer with a Z-pyramid –Lowest level: full-resolution Z-buffer –Higher levels: each pixel represents the max depth of the four pixels “underneath” it Basic idea: hierarchical rasterization of the polygon, with early termination where polygon is occluded
6
Real-Time Rendering 6 David Luebke Recap: Hierarchical Z-Buffer Z-pyramid exploits image-space coherence : –A polygon occluded at a pixel is probably occluded at nearby pixels HZB can also exploit object-space coherence –Polygons near occluded polygon are probably occluded –Idea: Z-query (hierarchical) bounding volumes before rendering their contents HZB can also exploit temporal coherence –Polygon visible last frame probably visible this frame –Idea: start each frame by rendering what was visible last frame
7
Real-Time Rendering 7 David Luebke Hierarchical Z-Buffer: Discussion HZB needs hardware support to be really competitive Hardware vendors haven’t entirely bought in: –Z-pyramid (and hierarchies in general) a pain in hardware –Unpredictable Z-query times generate bubbles in rendering pipe But we’re getting there… –ATI HyperZ, similar tech now in NVIDIA Supports image-space coherence 8x8 one-level hierarchical z-buffer “Under the hood”, not exposed to programmer –At the user level, hardware now supports occlusion queries Supports object-space coherence, temporal coherence
8
Real-Time Rendering 8 David Luebke Modern Occlusion Culling Occlusion query posited in original HZP paper –Want an “occlusion test”: would this polygon be visible if I rendered it? – How could you use such a test? Test portal polygons before rendering adjacent cell Test object bounding boxes before rendering object –Yay! GL_HP_OCCLUSION_TEST extension –Problems: CPU/GPU synchronization == bad Might want to know “how visible” is the polygon
9
Real-Time Rendering 9 David Luebke Modern Occlusion Culling GL_ARB_OCCLUSION_QUERY to the rescue –Non-blocking query “Is this occlusion query done yet?” Multiple queries in flight –Returns number of fragments visible Note: can actually render object or not Allows object-space, temporal coherence Still lots of issues for efficient culling
10
Real-Time Rendering 10 David Luebke 111 uses for Occlusion Queries Occlusion culling (duh) Others? –Approximate culling –LOD size estimation –Lens flare effects –Transparency –Collision detection (!) –Convergence testing
11
Occlusion Culling Grab Bag Portal textures –Dan Aliaga and others From-region visibility –Generalizes view-independent cell-portal problem Special case: 2.5D from-region visibility –Michael Wimmer and others Linear-time view-independent portal cull box approach? –Nina Amenta and others Modeling issues for cells-and-portals –Daniel Cohen-Or and others
12
Advanced Texturing CS 446: Real-Time Rendering & Game Technology David Luebke University of Virginia
13
Real-Time Rendering 13 David Luebke Terminology A note on terminology: –The following terms are used loosely in the literature –Don’t take my definitions as canonical
14
Billboards A billboard is a textured polygon (usually a quad) that rotates to face the viewer –Build a rotation matrix for each billboard – Screen-aligned billboard : quad is parallel to the screen and has a constant up vector Similar to old-school 2D sprites Useful for text, HUDs, lens flare, etc Build rotation matrix with camera u, n = - v, r = u X v – World-oriented billboard Sprite’s native up vector not always appropriate World-oriented billboard: use the world up vector Still faces viewer n = - v, r = u X v
15
Real-Time Rendering 15 David Luebke Billboards Viewpoint-aligned – v = vector to eye (Fig. 8.5) –Resulting quads capture perspective distortions across view-frustum –Ex: clouds (Fig 8.6) Axially-alligned –Rotates around a fixed world-space axis –Ex: trees (Fig 8.7) –Problem: from above, look like cardboard cutouts
16
Point Sprites A point sprite is a screen-aligned textured square (i.e., a billboard) placed by rendering a single vertex –Ideal for particle systems –When GL_POINT_SPRITE_NV is enabled: Point antialiasing state ignored – all points quads Points are rendered with point width as usual Tex coords of points can be replaced by special “point sprite” tex coords s,t,r between 0,1 –Tex coord r is special, can set to zero (default) or use to ‘play back’ an animation stored in 3D tex (COORD_REPLACE_NV) – See http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_point_sprite.txthttp://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_point_sprite.txt – See http://www.codesampler.com/oglsrc.htm ; search for “point sprite”http://www.codesampler.com/oglsrc.htm
17
Imposters Imposter : general term for texture that replaces geometry –Billboards == imposters that rotate to face viewer –Often used in the context of LOD A dynamic imposter is an imposter created on the fly to “cache” rendered imagery –Once rendered, cost of rendering an imposter is just a single textured quad (note poor texture cache coherence though) –Can use for a few frames before updating –Can use for a few instances of the object Works best on distant objects (why?) Great example: portal textures
18
Real-Time Rendering 18 David Luebke Imposters & “Depth Sprites” Can render an object with a depth texture, so depth buffer affects/is affected by the rendering (Fig 8.16) –Can also do depth-affected lighting –Needs to be orthogonal or nearly orthogonal to look right –Under the right circumstances, might allow combining imposters with dynamic geometry Ex: portal texture with monster moving around the textured cell
19
Real-Time Rendering 19 David Luebke Imposters Continued Sometimes “imposter” used to refer to what I’ll call depth meshes –UNC MMR system –Imposters for urban environments
20
Real-Time Rendering 20 David Luebke Imposters Continued Can represent an object as collection of imposters –Common trick for trees, usually manually placed – Billboard clouds apply this idea to other (all) objects –The trick is to compute these automatically…
21
Multitexturing Modern hardware can read from multiple textures at once, even with mipmapping – Light maps –Detail texturing –Decals x= From UT2004 © Epic Games Inc
22
Real-Time Rendering 22 David Luebke Textures: Other Important Stuff Render to texture – framebuffer objects (FBOs) Environment maps –Sphere map, cube maps (hardware supported) Shadow maps –Basically, a depth texture from light source point of view –More later Relief textures –Demo now, details later
23
Real-Time Rendering 23 David Luebke Textures: Still More Stuff Normal maps – especially for bump mapping –Gloss maps, reflectance maps, etc Generally: –Think of textures as global memory for fragment programs, with built-in filtering –Just starting to be able to access textures in vertex programs too (NVIDIA hardware only, today) Deferred shading Projective texture mapping
24
Real-Time Rendering 24 David Luebke Next topic: Cg Many of the tricks we discuss in this class do not depend on programmable graphics hardware But, most are easier to implement this way! So, the next topic is a brief intro to Cg –My apologies to those of you who’ve seen this –My apologies to those of you who haven’t
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.