CS 6630 - Scientific Visualization: Project 4

Chelsea Robertson
croberts@cs.utah.edu
November 22, 2005

Part One: Color Compositing Transfer Functions

The first script (cctf.tcl) produces a direct volume rendering of the head of a mummy using a statically defined transfer function. It is designed to pull out the skin and bone surfaces. The skin surface is semi-transparent, while the bone surface is white and opaque.

VTK Pipeline

Below are two images of the mummy head using the volume rendering method.

In addition to volume rendering the mummy head, the previous project was used to render similar images using isosurfacing. Below are two images of this rendering. The isosurfaces used for these renderings were 80 for the skin and 120 for the bone.

Describe your transfer functions, what relationship do they have to the isovalues shown in your isosurface rendering?

Above is a graph showing my transfer function for opacity (graph is not drawn to scale). The opacity turns out to cover a range of values. So the skin is mapped to an opacity of 0.4 between the values of 78 and 82, falling off to an opacity of 0.0 in both directions. The bone is opaque, and maps to an opacity of 0.0 in the range of 90 to 130. To the left of the skin values, the opacity is 0.0 and to the right of the bone values, the opacity is 0.6. I found these values to represent the data set well. Also, the skin is mapped to a reddish color and the bone is mapped to white. With volume rendering, the transfer function allows for a range of values, where as isosurfacing allows for just one value. However, the relationship between the two shows that the isosurface values of 80 and 120 fall into the ranges found for my transfer function.

Finding the transfer function was much more difficult then finding the isosurfaces in the last project. This dataset was tricky because the skin and material around the mummy can be easily confused. At first I made the mistake that the material was the skin. However, I soon realized this was not the case, and proceeded to find the skin by trial and error. I was able to find the skin by identifying the ears and neck.

Do you think volume rendering the mummy dataset offers a clear advantage over isosurfacing?

I don't think there is a clear advantage to either method. Although, volume rendering allows you to specify a range of values to represent the different surfaces, while isosurfacing forces you to chose one specific value. However, isosurfacing is much faster because the rendering is done once, making it easier to work with.

Part Two: Maximum Intensity Projection Renderings

Maximum intensity projection is a simpler way of generating images with volume ray-casting. This script (mip.tcl) uses the MIP method to generate greyscale images with volume ray-casting.

VTK Pipeline

Below are two images comparing the different methods. On the left is a MIP rendered image and on the right is a composite-based volume rendering image.

Compare the two images. What are some advantages and disadvantages of MIP versus compositing-based volume rendering?

Both methods have their advantages and disadvantages. The MIP rendering gives a better overall view of the dataset. For example, the details of the neck are more visible. You can clearly see both the bones and skin in the neck. However, the MIP images don't portray the depth of the dataset. It is very hard to tell where the neck and chin and other parts of the face are relative to each other. On the other hand, the composite-based rendering highlights certain features not visible from the MIP image. For example, the ear is not visible in the MIP image, but can be clearly seen in the composite-based image. However, the detail of the bones and skin of the neck which are clear in the MIP image are slightly obscured in this image.

Part Three: For CS6630 Students

Direct volume rendering is a very flexible process. Many of the parameters can be tweaked to change the final images produced.

Sample Distance Spacing

The first parameter that effects the resulting image is sample distance spacing.

What is the relationship between image quality, rendering time, and sample distance?

As the sample distance gets smaller, the rendering time takes longer and the image quality improves. Likewise, as the sample distance gets larger, the rendering time gets faster and the image quality becomes poorer. Below are 6 images rendered with different sample distances. In the top row, from left to right are sample distances of 0.125, 0.25, and 0.5. In the bottom row, from left to right are sample distances of 1.0, 2.0, and 8.0. You can see that the top row are all pretty similar, but you can really begin to notice the decrease in quality in the bottom row.

Give an example of a feature in the dataset which can be lost by increasing the sample distance too much.

A couple noticeable features begin to disappear as the sample distance becomes too large. Below are three images of the left side of the mummy head. The left image has a sample distance of 0.25, the middle is 2.0, and the right is 8.0. You can see that teeth and ear are very visible in the leftmost image. In the middle image, you can still see them, but they are becoming less distinct. In the right image, the ear is completely lost, and the detail of the teeth is not very apparent.

Is there a sample distance that seems "small enough", so that smaller distances offer no clear advantage?

According to the images above (two questions before), I believe there isn't a very noticeable difference between the images in the top row. Also, I believe the image is more clear with a sample distance of 0.5 than a sample distance of 1.0. So I think a sample distance of 0.5 seems "small enough" because there doesn't appear to be a clear advantage to using 0.25 or 0.125.

Interpolation Method

There are two different interpolation methods that can be used to produce the volume renderings, nearest neighbor and trilinear interpolation.

Describe and demonstrate the differences between the two different interpolation methods.

The first interpolation method is trilinear interpolation. This method linearly interpolates a point based on the weighted average of the eight data points of the cube surrounding the data point. Nearest neighbor assigns a value based solely on the nearest data value. As a result, trilinear is much more accurate and nearest neighbor is much faster. The images below show the results of trilinear in the left column and nearest neighbor in the right column. As you can see, the trilinear method results in a clearer, more attractive image. Nearest neighbor isn't too bad until you zoom in on a specific feature. Then the image becomes extremely blurry with numerous artifacts appearing.

Dataset Resolution

Lastly, the resolution of the dataset can greatly effect the quality of the image produced.

Are there features that are present in mummy.80.vtk but missing in mummy.50.vtk?

The resolution of the dataset does effect the quality of the image. Below are three images produced with different dataset resolution. The left image uses mummy.128.vtk, the middle uses mummy.80.vtk, and the right uses mummy.50.vtk. As you can see, from the left image to the middle image, some of the details of the teeth are lost. Also, the ear is less defined in the middle image. Furthermore, going to the rightmost image, you can see that most of the definition in the teeth is gone, and the ear is completely missing. So the resolution of the dataset definitely plays an important role in producing a quality image.

How does increasing the dataset resolution change the difference between the two interpolation methods?

Increases the dataset resolution definitely produces better renderings no matter the interpolation method used. The above images use the trilinear interpolation method, and you can see that the higher resolution produces more accurate results. Below are images produced with the same datasets for the nearest neighbor method. It is especially important to use a high resolution for this method, because the results are not very smooth even using the highest dataset resolution.