Over the past two weeks, we have developed the tools necessary to perform volume visualization in a webpage. The Depth Example presents the code necessary to get the view rays passing through the volume. The Volume Example enables visualization of an arbitrary planar cut of the volume. The limitations of WebGL had to be considered in the development of these basic tools. Now that these tools are available, we can implement a wide variety of volume visualization techniques.
The lecture example of this week illustrates three different volume visualization techniques: (1) isosurface rendering as described in Sec. 10.2.5 of DV, X-ray rendering as described in Sec. 10.2.3 of DV, and implicit function cutting using a plane as described in Sec. 8.1.3 of DV. Several other volume visualization techniqes could be employed, including different combinations of isosurface and intensity projection techniques (DV, Sections 10.2-10.3). Given the massively parallel architecture of the graphics processing unit (GPU), it is useful to consider the structure of the algorithm used for a volume visualization. Section 10.4 of DV contains a discussion of image-order versus object-order algorithms.
The exercises of this week are to modify the lecture example, in order to try out different volume visualization techniques, and to consider the algorithm used for its implementation. Is it using an image-order or an object-order algorithm? Could you propose a different algorithm that implements the same volume visualization techniques using WebGL?
DV | Sections 10.2-10.6. Volume visualization. |