DOC PREVIEW
UVA CS 445 - Visibility

This preview shows page 1-2-3-4-5-6-40-41-42-43-44-81-82-83-84-85-86 out of 86 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 86 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

VisibilityOverviewOcclusionPainter’s AlgorithmPainter’s Algorithm: ProblemsAnalytic Visibility AlgorithmsSlide 7Slide 8Slide 9Binary Space Partition Trees (1979)Binary Space Partition TreesBSP Trees: ObjectsSlide 13Slide 14Slide 15Slide 16Rendering BSP TreesSlide 18Slide 19Polygons: BSP Tree ConstructionPolygons: BSP Tree TraversalDiscussion: BSP Tree ConsBSP TreesBSP DemoSummary: BSP TreesSlide 26Slide 27Warnock’s Algorithm (1969)Warnock’s AlgorithmSlide 30Slide 31The Z-Buffer AlgorithmSlide 33Slide 34Slide 35Slide 36Interpolating ZSlide 38Z-Buffer ProsZ-Buffer ConsSlide 41Visibility CullingThe GoalSlide 44View-Frustum CullingEfficient View-Frustum CullingSlide 47Slide 48Cells & PortalsSlide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60Cells and PortalsSlide 62Cells and Portals: HistorySlide 64Slide 65General Occlusion CullingSlide 67Loose Front-To-Back SortingImage-Space Occlusion CullingSlide 70Hierarchical Z-BufferSlide 72Slide 73Slide 74Slide 75Hierarchical Z-Buffer: DiscussionSlide 77Modern Occlusion CullingSlide 79111 uses for Occlusion QueriesSlide 81Fog filters – what’s wrong with it?Haze and the Z-bufferFog and the Z-bufferWater and the Z-bufferSlide 86VisibilityAaron BloomfieldCS 445: Introduction to GraphicsFall 2006(Slide set originally by David Luebke)2OverviewAnalytic Visibility AlgorithmsBSPsWarnock's AlgorithmZ-Buffer AlgorithmVisibility CullingCells and PortalsOcclusion CullingHierarchical Z-BufferModern Occlusion CullingFog3OcclusionFor most interesting scenes, some polygons will overlap:To render the correct image, we need to determine which polygons occlude which4Painter’s AlgorithmSimple approach: render the polygons from back to front, “painting over” previous polygons:Draw blue, then green, then pinkWill this work in general?5Painter’s Algorithm: ProblemsIntersecting polygons present a problemEven non-intersecting polygons can form a cycle with no valid visibility order:6Analytic Visibility AlgorithmsEarly visibility algorithms computed the set of visible polygon fragments directly, then rendered the fragments to a display:Now known as analytic visibility algorithms7Analytic Visibility AlgorithmsWhat is the minimum worst-case cost of computing the fragments for a scene composed of n polygons?Answer: O(n2)8Analytic Visibility AlgorithmsSo, for about a decade (late 60s to late 70s) there was intense interest in finding efficient algorithms for hidden surface removalWe’ll talk about two analytic visibility algorithms: Binary Space-Partition (BSP) TreesWarnock’s Algorithm9OverviewAnalytic Visibility AlgorithmsBSPsWarnock's AlgorithmZ-Buffer AlgorithmVisibility CullingCells and PortalsOcclusion CullingHierarchical Z-BufferModern Occlusion CullingFog10Binary Space Partition Trees (1979)Basic algorithmFor each triangle (or polygon) t in the sceneFind the plane that t implicitly formsLet the eyepoint be on one side of tThen t can be drawn before all triangles on the other side of tSo we draw the “far” stuff first, then t, then the “near” stuffRestrictionsOnly works on a scene where no polygons crosses a plane defined by another polygonThis also means you can’t have a cycleThis restriction is relaxed by a preprocessing stepSplit up such triangles into multiple triangles11Binary Space Partition TreesBSP tree: organize all of space (hence partition) into a binary treePreprocess: overlay a binary tree on objects in the sceneThis includes the step of splitting a primitive that crosses a plane into multiple primitivesRuntime: correctly traversing this tree enumerates objects from back to frontIdea: divide space recursively into half-spaces by choosing splitting planesSplitting planes can be arbitrarily orientedNotice: nodes are always convex12BSP Trees: Objects12345678913BSP Trees: Objects12345678956 78 9 1 2 3414BSP Trees: Objects1234567895 67 8 9234 115BSP Trees: Objects12345678913245697816BSP Trees: Objects123456789135687 9 2 417Rendering BSP TreesrenderBSP(BSPtree *T)BSPtree *near, far;if (eye on left side of T->plane)near = T->left; far = T->right;else near = T->right; far = T->left;renderBSP(far);if (T is a leaf node)renderObject(T) renderBSP(near);18Rendering BSP Trees123456789135687 9 2 419Rendering BSP Trees123456789135687 9 2 420Polygons: BSP Tree ConstructionSplit along the plane containing any polygonClassify all polygons into positive or negative half-space of the planeIf a polygon intersects plane, split it into two The aforementioned preprocessing stepRecurse down the negative half-spaceRecurse down the positive half-space21Polygons: BSP Tree TraversalQuery: given a viewpoint, produce an ordered list of (possibly split) polygons from back to front:BSPnode::Draw(Vec3 viewpt)Classify viewpt: in + or - half-space of node->plane?// Call that the “near” half-spacefarchild->draw(viewpt);render node->polygon; // always on node->planenearchild->draw(viewpt);Intuitively: at each partition, draw the stuff on the farther side, then the polygon on the partition, then the stuff on the nearer side22Discussion: BSP Tree ConsNo bunnies were harmed in my exampleBut what if a splitting plane passes through an object?Split the object; give half to each node:Worst case: can create up to O(n3) objects!Ouch23BSP TreesA BSP Tree increases storage requirements by splitting polygonsWhat is the worst-case storage cost of a BSP tree on n polygons? But rendering a BSP tree is fairly efficientWhat is the expected cost of a single query, for a given viewpoint, on a BSP tree with m nodes?24BSP DemoNice demo:http://symbolcraft.com/graphics/bsp/index.html Also has a link to the BSP Tree FAQ25Summary: BSP TreesPros:Simple, elegant schemeOnly writes to framebuffer (i.e., painters algorithm)Thus once very popular for video games (but no longer, at least on PC platform)Still very useful for other reasons (more later)26Summary: BSP TreesCons:Computationally intense preprocess stage restricts algorithm to static scenesWorst-case time to construct tree: O(n3)Splitting increases polygon count Again, O(n3) worst case27OverviewAnalytic Visibility


View Full Document

UVA CS 445 - Visibility

Documents in this Course
Lighting

Lighting

49 pages

Color

Color

20 pages

Clipping

Clipping

10 pages

Shadows

Shadows

95 pages

Color

Color

37 pages

Radiosity

Radiosity

49 pages

Clipping

Clipping

59 pages

Assign 3

Assign 3

28 pages

Splines

Splines

17 pages

Color

Color

17 pages

Load more
Download Visibility
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Visibility and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Visibility 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?