Chapter 10: Volume Visualization
Prerequisites: These projects do require a good understanding of the uniform-grid data representation techniques discussed in Chapter 3, in particular interpolation. They also require (very) good programming skills in C/C++ and OpenGL, as the code to develop is more complex than for earlier projects. Understanding the basics of volume rendering (ray and transfer functions, raycasting, and volumetric shading) is also required. A subset of projects also requires basic understanding of CUDA programming (the students have to understand and perform limited modifications to a simple CUDA sample program).
Aims: The provided projects are intended to test the students' ability to design and implement correct and efficient algorithms for creating scalar and vector volumes suitable for visualization by volume raycasting. As such, the tested skills span the entire range from volume generation to modification of the ray and transfer functions in a volume raycaster to visualize the respective volume. The tested skills also verify several elements presented in earlier chapters (convolution for image processing, OpenGL rendering, and 3D streamline tracing).