SciVisFall2007/Assignment 3

The assignment is due at midnight on November ??th. You will need to use the CADE handin functionality to turn in your assignment. The class account is "cs5630".

The purpose of this assignment is to make sure you understand (and experiment with) the basic concepts involved in the visualization of 3D scalar volumes. As you work on the assignment, we greatly encourage you to read the available documentation on both python and VTK. Some of the problems will require you to use VTK modules you might not have previously seen. These are indicated in the problems.

Contents

You do not need to use assignment3.vt as a starting point for your solution. You are welcome to, but it's not necessary.

Your visualizations should be labeled "Problem 1a", "Problem 1b", "Problem 1c", "Problem 2a", etc.

General Hints

In many cases throughout this assignment, the transfer function applied to the data can be specified in multiple ways. Take care to choose the method that most accentuates the aspect of the data being represented. In some cases the transfer function can be constructed as a simple linear ramp, and in some cases this is inappropriate.

Many of these data in this assignment are rather large and can take a substantial amount of time to render. It may be in your best interests to explore the data and the visualizations with a lower quality method before finding settings that can be applied to a high quality method.

See FAQ here.

Data

All the data you need is available at http://www.sci.utah.edu/~cscheid/scivis_fall07/assignment3/. These are:

Problem 1: Basic iso-surfacing techniques

In this problem, you will explore data using iso-surfaces. This | Wikipedia article discusses some of the fundamental properties of the data you will be visualizing. The data is represented as a vertex-centered unstructured hexahedral mesh with each point containing a single scalar and a single vector and is based on the datasets fusion_0000_bin.vtk and fusion_0110_bin.vtk.

a. For each of the two time-steps (t = 0 and t = 110) generate an iso-surface visualization using 3 iso-values. Be sure to use an appropriate coloring scheme to highlight all iso-surfaces involved. Describe how modifying the iso-values being represented influences your understanding of the data. Comment on the problems intrinsic to the display of multiple iso-surfaces in the same rendering and potential methods for solving them.

b. For each time-step, generate an animation by varying the iso-value being rendered. Make sure to explore the full range of the scalar data here. Does this method of visualization enhance or detract from the investigation of the data? Why or why not?

c. This dataset has vectors as well as scalars at each data point. Find a pair of visualizations (one visualization for each of the two time-steps) that illustrates how this vector field changes from the initial conditions. How can these two data best be coupled into a single visualization? What techniques all all of the data to be immediately apparent to the scientist?

Problem 2: Iso-surface Analysis

In this problem, the space of iso-values will be explored BEFORE any iso-surfaces are extracted. Analysis will be performed in order to accurately predict which iso-values contain the most meaningful information. The data for this problem is at all_particles_128.vtk and halos_128.vtk. As we discussed in class, these data are regular grids representing the density field induced by particle simulations. An excellent paper and presentation of The Contour Spectrum has been created by the author. Remember that there are several properties of the data interesting to scientists in this field: curvature, volume, surface area, and shape.

Hints: VTK provides modules to extract properties of their data. Of particular interest is vtkCurvatures

a. Generate and display histograms derived from the scalars present in each of the datasets. Are these histograms useful in determining good iso-values to visualize? Why or why not, and in what cases (what types of data) can this approach be used most effectively?

b. Expand upon the scalar histograms generated in (a) by forming contour spectra for each of the datasets. What information do these spectra add to the histogram that can help you predict good iso-values to visualize?

c. Use the information from the contour spectra in (b) to pull out the single contour in each dataset you think is most informative for the scientist. Justify your choice.

d. Contour spectra can have an arbitrary number of components. For these two data, discuss the components you think are most important to highlighting interesting areas of the data. Present at least two visualizations of a single contour spectra comprised of these components.

Problem 3: Visualization of Medical Volumes

In this problem, we will investigate different volume rendering techniques for structured grids. All of the datasets for this part are structured grids generated from CT scans. The data for this problem is at chest.vtk and tooth.vtk.

a. Building from the methods from 2a, generate a 2-d join histogram of scalar value vs. gradient magnitude. Use this histogram and the discussion from class to determine the number of distinct materials in the tooth dataset. Explain

b. Generate a joint histogram as in (a) and use it to guide the development of a transfer function for the chest dataset that can easily visualize bone and one other structure of your choice. Joint histograms such as these are very useful in transfer function specification. Comment on the ways in which both single and multi-dimensional transfer functions can take advantage of these histograms to better visualize volume data.

c. Explore histogram manipulation techniques such as histogram equalization, range mapping, etc to the joint histograms in (a) and (b). How do the various histogram manipulations help or hinder your understanding of the data.

Problem 4: Visualization of Magnetic Resonance Volumes

Here we explore visualization of another common medical imaging modality. The dataset being explored here is an MRI (Magnetic Resonance Imaging) Scan. The data for this problem is at mri.vtk.

a. Generate a series of volume renderings of the MRI dataset using the raycasting technique. Vary the sampling parameters to generate several rendering to illustrate the effects of the Nyquist frequency as it applies to Raycasting.

b. Generate a series of volume renderings of the MRI dataset using texture-based approaches. Vary the number of planes used to sample the volume to illustrate the effects of the Nyquist frequency as it applies to Texture Slicing.

c. Generate a series of iso-surfaces of the MRI dataset. Be sure to fully explore the space of possible iso-values before drawing any conclusions. Comment on any difficulties you might have extracting meaningful surfaces.

d. Which type of rendering technique used (in a-c) is best suited for MRI visualization? Justify your answer

e. Explain why the techniques used in Problem 3 might be able to generate a better transfer function for either of the above volume rendering methods. Defend your answer with a simple example. Note: A full transfer function and volume rendering is NOT what is expected here.

Bonus

f. Explore the various methods of manipulating volume data (vtkVolumeProperty) to generate strange and funny visualizations of your favorite instructor.