next up previous contents index
Next: GPU Accelerated Projected Tetrahedra Up: Cell Projection Previous: Cell Projection   Contents   Index


Projected Tetrahedra

Shirley and Tuchman [86] proposed the first algorithm for projecting cells of unstructured grids. Like most other cell projection algorithms, Shirley and Tuchman's algorithm, for simplicity, works with a single type of polyhedron: the tetrahedron. Because their algorithm works exclusively with tetrahedra, they dubbed their algorithm projected tetrahedra. Thanks to its simplicity and effectiveness, a significant number of rendering systems still uses the projected tetrahedra algorithm today.

Shirley and Tuchman chose the tetrahedron because it is a simplex in three dimensions [36]. That is, the tetrahedron is the simplest possible polyhedron; it has the minimum number of vertices (4), edges (6), or faces (4) required to construct a polyhedron. A tetrahedron is always simple (non self-intersecting) and convex (any segment connecting two points within the tetrahedron is completely contained by the tetrahedron). Furthermore, we can decompose any simple polyhedron into tetrahedra. Thus, the projected tetrahedra algorithm will work for general unstructured grids once we decompose them into tetrahedra.

Figure 1.3: Projected tetrahedra classes. The four cases comprise the possible ways a tetrahedron projects onto a 2D viewing plane. For each case, this figure demonstrates how we can decompose the tetrahedron into triangles.
\includegraphics[bb=130 461 480 683,clip=true,width=.97\linewidth]{previous_work/PT_cases}

Shirley and Tuchman noted that when a tetrahedron projects onto a viewing plane, they could classify it in one of four ways, shown in Figure 1.3. If the tetrahedron is in general position, it will fall into Class 1 or Class 2. If one or two faces are perpendicular to the viewing plane, it will fall into Class 3 or Class 4, respectively. By comparing the dot products of the surface normals with the viewing vector, Shirley and Tuchman were able to classify the tetrahedra.

Once it has determined the projection class, the algorithm can break the projection into triangles. Figure 1.3 shows how Shirley and Tuchman decompose each projection into triangles. No triangular region crosses an edge of the projected tetrahedra. Thus, assuming we interpolate parameters linearly through the tetrahedron, the parameters vary linearly within the triangles. Once the triangles have been determined, Shirley and Tuchman feed them to graphics hardware to render.

Wilhelms and van Gelder [102] propose a similar algorithm that projects hexahedra instead of tetrahedra. Although the hexahedron is not as versatile as a tetrahedron--in general, a polyhedron cannot be decomposed into hexahedra--it is a common element in unstructured grids. Furthermore, we require five or six tetrahedra (depending on layout) to decompose a hexahedron. Therefore, projecting the hexahedra directly can lead to a substantial performance improvement.


next up previous contents index
Next: GPU Accelerated Projected Tetrahedra Up: Cell Projection Previous: Cell Projection   Contents   Index
Kenneth D Moreland 2004-07-16