Friday, 7 November 2008

Initial Research & First Individual Meeting

Research

Began looking into volume rendering techniques:

Two main types:
Direct Volume Rendering and Surface Fitting.
- SF – A 3D surface is modelled based on the data, and then that is rendered.
- SF – doesn’t take into account that materials may be partially transparent
- SF – can produce false positives (artefacts not in the data set) and false negatives (discarding small details from the data set)
- DVR – Volume data is rendered directly into screen space.
- DVR – Works especially well for data sets with non-solid features such as liquids and gases.
- In DVR the entire data set must be used to render each image, so rendering times are usually much higher than for SF.
- If extra things need to be displayed – for example a 3D primitive indicating an area of interest – in SF it could be rendered directly along with the 3D surface, whereas in a DVR technique the primitive must be accomodated for specially.

Colour selection:
For CT scan data each data point represents the density of the material at that location. The colour and opacity of a point can be based on that density, via a colour table. An opacity of zero can be used to completely hide material of a certain density, to reduce the amount of data shown. 

Ray Casting:
Cast a ray for every pixel in the output image. At evenly spaced intervals, sample the 3D data for RGBA. Build up the colour of the pixel by combining the samples.

- Settings are very simple, direct quality/speed tradeoff: number of rays per pixel / number of samples per ray.
- When the sample is between data points, the colour/opacity is linearly interpolated.
- Rays are independent of each other. Should scale very well for parallel processing.
- Can included shadowing calculations using rays from the sample point to the light source. Often not desired, for example in medical imaging.
- Optimisation methods: Space Partitioning; Adaptive Termination of ray

Splatting:
For every element of volume data, a voxel is projected onto the 2D plane. This is done in back-to-front order to build up the final image.

Other techniques: V-Buffer, Shear Warp. Contour Tracking, Marching Cubes, Opaque Cubes, Dividing Cubes, Marching Tetrahedra (Surface Fitting)

Primary information sources:

Scientific Visualisation Tutorials
Brief description of Ray Casting and Splatting
http://www.cc.gatech.edu/scivis/tutorial/linked/volrend.html

Volume Visualisation With Ray Casting
In depth description of Ray Casting, including lighting and optimisation. Brief discussion of problems with BSP Voxels and Marching Cubes. Some more volume rendering links.
http://web.cs.wpi.edu/~matt/courses/cs563/talks/powwie/p1/ray-cast.htm

Volume Visualisation and Rendering
Description of a wide variety of DVR and SF techniques, and description of some techniques for colouring volume data.
http://www.siggraph.org/education/materials/HyperVis/vistech/volume/volume.htm

Found potential sources for volume data to render:

The Stanford volume data archive – 3 data sets
http://www-graphics.stanford.edu/data/voldata/

“Sample Datasets” two thirds down the page.
http://www.sph.sc.edu/comd/rorden/render.html

A variety of volume data sets.
http://www.vis.uni-stuttgart.de/~engel/pre-integrated/data.html

Meeting

Issues identified in meeting:

- Went over project diary details, what to include, when to post.

- If I use any 3rd party libraries at the programming stage, make sure to pay attention and follow any licence and usage restrictions.

Plan for next week:

- Continue research into volume rendering techniques

- Choose which techniques to use, and why. Also think about what features need to be included in the program.

- Begin research into general parallel processing principles

- Prepare for the small 10-15 minute presentation to other FYP students next friday.

No comments: