... pipeline.1
The only exceptions are graphics boards for specialized rendering such as volume rendering rectilinear grids [14,53,67,73,78].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... vertices.2
As of the time of the writing of this dissertation, there is still no way to change cell topology from within a vertex program.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... faces.3
Culling back facing polygons is a standard OpenGL operation[109].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... integration.4
Weiler and colleagues [100] later demonstrated how to perform all these operations on the next generation of graphics cards.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... polyhedra.5
The comparison operation in Stein, Becker, and Max has a bug that is fixed by Williams, Max, and Stein [105].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... algorithm.6
Max, Hanrahan, and Crawfis [64] independently developed a similar algorithm.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... rendering.7
According to Pfister and colleagues [73] based on experiments performed by Lacroute [55].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... all.8
Weiler and colleagues [100] actually pass plane information for three faces instead of one face and the index. This makes 16 floats per vertex or 192 floats per tetrahedron. The added floating point values allow the fragment program to perform the intersection of each viewing ray with all three potential exiting faces.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... points.9
Previous examples of fragment programs did not explicitly convert scalars to volume parameters. They instead delegated this process to IntegrateRay.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... two.10
Wilhelms' nomenclature is ``material opacity'' for $ \alpha $ and ``differential opacity'' for $ \tau $.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... website11
http://www.nas.nasa.gov/Research/Datasets/datasets.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... calculations.12
I used the same hardware to produce all the results presented in this chapter. All ray integration calculations are performed on a full 32-bit per channel GPU. However, the images produced for the results in Section 1.1 were written to an 8-bit per channel frame buffer whereas the values presented in Sections 1.2 and 1.3 are taken as 32-bit values. I used the 8-bit frame buffer because the color blending required for the image generation is not available for the 32-bit frame buffer. I used 32-bit values for Sections 1.2 and 1.3 to minimize quantization errors, which are orthogonal to the errors intrinsic to the approximations.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.