CS 6630 : Scientific Visualization
Project 4 - Volume Rendering

Amjidanutpan Ramanujam (u0321202)
amjith.r@gmail.com


1. COLOR COMPOSITING VOLUME RENDERING:

Mummy data set visualized using ray casting.


 
vol_ren.tcl - This script will read the given data and visualize it using the volume rendering (Ray Casting). The given data represents a mummy preserved for a long time. So the skin is dried and not very crisp when compared to the data set given in Project 3. The  dried skins iso value was found to be around 70 to 90. The skull iso value was around 100 to 120. In order to visualize this data set a opacity transfer function and a color transfer function are constructed. The opacity for values ranging from 0 - 50 is chosen to be 0.0 and 55 - 80 is chosen to be 0.1 (semi translucent) and finally the bone values ranging from 90 - 120 is given a complete opaque value of 1.0. The colors are chosen in such a way that the skin range has a light blue and the bone has a complete white and all other values have a color value of 0.0. The wrap around the body is not included even though the iso value was found to be around 25. This is because it obscures the real data that we are trying to visualize.


Default:

    The data set used is the mummy.128.vtk
.
    The interpolation technique used is tri-linear interpolation.
    The space between the samples is 0.5.

The various images obtained from tweaking  the above given parameters are given below.



This particular view is chosen to give importance to the mouth and ear portions.


   

              technique      : Volume Rendering (ray casting)        technique : Iso Surface
              data_set       : 128
              Interpolation  : tri-linear
              sampling space : 0.5

Comments :
Even though the image generated by the iso-surface is crisp, we cannot conclude that the iso-surface technique is better. Iso-surface does a good job in bringing out the teeth, but when we take a closer look we can identify that it fails to visualize the ear totally. The image generated in the iso-surface technique is quiet misleading, in the sense that it looks more like a skeleton rather than a mummy. This could partly be a problem in vtk with the faulty rendering of transparent surfaces, but still we cannot blame vtk for the absence of ear. Also the image shown in the top of the document actually look like a mummy but unfortunately that didn't bring out any interesting features so I am not using that view.



2. MAXIMUM INTENSITY PROJECTION VOLUME RENDERING:
vol_mip.tcl -
This file will create the maximum intensity projection of the image. This looks more like an x-ray of the mummy. I used the inbuilt method in VTK called vtkVolumeRayCastMIPFunction . The opacity transfer function plays a major role in this technique and the color transfer function is used to adjust the contrast and get good looking images. I was getting a crappy image before I used the color transfer function, and then I consulted with Alan Nicholas and he suggested me to use the color transfer function to fine tune the images. ( I am mentioning this to make sure I give credit to him).


    
               technique  :  Maximum Intensity Projection          technique : Volume Rendering (ray casting)

       data_set       : 128
              Interpolation  : tri-linear
       sampling space : 0.5
Advantages:
  1. We can see the bones in the neck area more clearly than the ray casting technique (this is partly due to a bad choice of transfer function, just guessing).
  2. The missing tooth is clearly brought out in the MIP technique which is absent in the ray cast technique.
Disadvantages:
  1. As mentioned above this is more like an x-ray, so lots of features (ears, skin, etc) are missing.
  2. I had to choose this view to bring out the advantage because the view shown in section 1 produced unintelligible images.



3.  GRADS ASSIGNMENT:

3.a Sampling Space :

By increasing or decreasing the sample space we can get better or worse images. When the sample space was varied between 0.2 and 4.0 I saw the following behavior,
  1. Image quality increased for smaller samples (eg : 0.4 or 0.2).
  2. The rendering time increase for smaller samples. So a sample space of 0.2 took long time to render when compared to a sample space of 4.0.
  3. There is a minimum limit below which the decrease in sample space produced no improvement in quality by increased rendering time. This value was found to be around 0.4.
  4. Increasing the sample space above 4.0 tends to lose some features, eg the ears had hollow stripes in them. Even for a value of 4.0 we were able to see some visible artifacts like contour patterns.
     
data_set       : 128                                    data_set       : 128
                        Interpolation  : tri-linear                             Interpolation  : tri-linear
                        sampling space : 0.2                                    sampling space : 4.0

The image on the left looks lot better than the image on the right in more than one way. The image on the right introduces the contour like artifacts. The ear on the right side image looks as if it has been cut using a rake. There is no clear advantage of the left side image over the image shown in section 1, which is generated using a sampling space of 0.5. So there is a minimum sampling space below which there is no improvement in the quality.


3.b Interpolation Method :

There are two choices given for the interpolation technique. Nearest neighbor, which means the point hit by the ray will inherit the value of the nearest neighbor in the grid. Tri-linear interpolation, which interpolates between the three values in the grid. The tri-linear interpolation produces better quality image, especially when the resolution of the data set is low. This doesn't mean that for high res images tri-linear interpolation produces bad images. In other words the difference between the quality of both the techniques is more pronounced in the low res images. But the tri-linear interpolation always produces better images than nearest neighbor. Quality doesn't come without hard work, so the tri-linear interpolation takes a bit longer than the nearest neighbor counter-part.


  
   Tri-Linear Interpolation              Nearest Neighbor Interpolation

resolution : 128


3.c DataSet Resolution:
Three types of data set resolutions were given to us for experimenting, 128, 80 , 50 . Invariably the 128 resolution produced the better results than the 80 and 50 datasets. This is shown below in the images.

           
Data Set Resolution: 50                Data Set Resolution: 80




Data Set Resolution: 128


The interpolation technique also played a major role in deterioration or improving the quality of the image as the resolution changes. The nearest neighbor produced worst quality images for low resolution images, whereas the tri-linear interpolation produced images that were not so bad when compared to the 128 resolution images.

 
Data Set Resolution: 50          Data Set Resolution: 80


Data Set Resolution: 128


Not only did the image quality increase with the resolution but the features got enhanced in higher resolution which were barely visible in the low res images. One example would be the absence of ear data in the 50 bit res images which is present in 80 and 128 bit res data. Also the nearest neighbor interpolation produced blocky images for low res data which made it impossible to make any intelligent decision.

Questions :
  • Describe your transfer functions, what relationship do they have to the isovalues shown in your isosurface rendering?
  • Do you think volume rendering the mummy dataset offers a clear advantage over isosurfacing?
  • What are some advantages and disadvantages of MIP versus compositing-based volume rendering?
  • What is the relationship between image quality, rendering time, and sample distance?
  • Give an example of a feature in the dataset which can be lost by increasing the sample distance too much.
  • Is there a sample distance that seems "small enough", so that smaller distances offer no clear advantage?
  • Describe and demonstrate the differences between the two different interpolation methods.
  • Are there features that are present in mummy.80.vtk but missing in mummy.50.vtk?
  • How does increasing the dataset resolution change the difference between the two interpolation methods?


The answers for all these questions are explained throughout the document. In fact every sentence in this document is an answer for one of the question (except this statement). So I am not re-writing the whole document.