Honours Graphics 2008 Session 5
Today’s focus Rasterization Visibility determination Coarse / fine visibility determination
Rasterization General term for the process of converting vector information to a raster format Covers 3D space transformations, projection onto image plane, clipping, scan conversion, texturing, lighting & shadows, effects
Rasterization, cont. Transformation: covered previously Clipping: limit the vector data to FOV; includes side, near and far clip planes Scan conversion: “filling” the triangles described by vertex data, including Texturing, environment mapping, bump mapping, light and shadows
Rasterization, cont. Scan conversion, typically uses scanline algorithm (or variant) Determines render result on a row-by-row basis Sorts polygons into top-left to bottom-right order then proceeds to render each row by intersecting polygons with scanline
Rasterization, cont. Texture mapping – apply image to polygon Environment mapping – view dependent texturing based on an environment map, used to create the illusion of reflection Bump mapping – texturing to create the illusion of depth on a surface
Image curtesy wikipedia Texture mapping Bump mapping
Environment mapping
Visibility determination While mapping and effects are entertaining and yield attractive visual results, the fundamental problem in 3D graphics is visibility determination Related problems “occlusion determination” and “hidden surface removal” Problem particularly relevant for real-time graphics systems A variety of coarse and fine techniques are used to accelerate the process
Visibility determination, fine Fine-grained visibility determination functions on elementary units, such as individual triangles or pixels Examples include backface culling and z-buffers
Visibility determination, coarse Many simple and complex algorithms exist that perform coarse visibility determination Don’t cater for specific, individual pieces; instead make broad sweeping statements regarding visibility. Can eliminate or select entire sets of visible data
Coarse Visibility Testing Typically makes use of spatial organisation to quickly determine whether large sets of data are visible or occluded Examples: view frustrum culling, binary space partitions, portals, potential visibility sets, quadtrees, octrees
View frustum Determine whether spatial sets are inside the FOV
Quadtree Hierarchical divisioning scheme
Octree 3D version of a quadtree Quadtrees typically apply to terrain data, octrees apply to space or urban data
Binary space partitions Originally developed by Henry Fuchs, 1980 Applies binary trees to spatial data Famous for their application in the original Quake game, along with potential visibility sets Useful for spatial sorting, lighting & shadow, physics, collision detection and more
Portals A form of adaptive frustum culling
Potential Visibility Sets Stores summary data on what could be seen from scene elements Applicable to many algorithms
Homework …none… but mentally prepare yourself for plenty tomorrow