Volume Viewer Documentation
Prepared for CS 526 by John Bell, Spring 2004
Project Background:
This project involved visualizing data from the Visible Woman
dataset. For further details, see the original project
assignment.
PowerPoint Presentation:
A demonstration of this project was presented in class. Afterward
some additional details were provided in a PowerPoint format:
Visible Woman Viewer( Post Demo Details
)
Isosurface Visualization:
The isosurface visualization features are fully implemented
and working properly. Two isosurfaces are provided - One for skin
and one for bone. The transparency of the skin is adjustable from
0 to 100%, and the levels which "define" skin and bone
are also adjustable within a reasonable range. Resolution is selectable
from 32 to 256 in powers of 2.
Feet at 100% Skin Transparency:
Feet at 50 % Skin Transparency:
Head at 0% Skin Transparency:
RayTracing:
Ray tracing has been implemented with irregular functionality.
The areas of non-functionality appear to be weaknesses / flaws
/ quirks in the VTK system, although that cannot be definitively
confirmed. The user can select between MIP and Composite ray tracing
functions. The transparency of the skin layer is adjustable from
0 to 100% and the levels defining skin and bone are adjustable
within a reasonable range. ( The material transparency function
is a ramp from the adjustable transparency set for the "skin"
threshold to fully opaque for "bone" threshold and higher;
All values below the skin threshold are fully transparent. ) Sample
distance can be set from 0.1 to 2.0 by increments of 0.1, and
again resolution is selectable from 32 to 256 by powers of two.
User Interface:
The user interface has been implemented using TK widgets. The
majority of the interface implements the isosurface and ray tracing
parameters as listed above.
One special feature implemented in the user interface is a
wireframe model of the full visible woman, with a box widget for
selecting any desired ( rectangular ) subset of the data. Handles
on the box widget allow the user to interactively select any arbitrary
subset. There are also preset selections for "feet"
and "head".
SubTasks Accomplished:
- User can select head or feet data set - Implemented with
VTKExtractVOI
- Data can be visualized as isosurfaces or using volume raytracing
- Resolution selectable from 32 to 256 squared in either isosurface
or ray tracing
- Skin transparency adjustable from 0 to 100% in either isosurface
or ray tracing.
- Levels defining "skin" and
"bone" adjustable in either isosurface or ray tracing.
( Bonus Feature )
- Ray tracing can select MIP or Composite interpolation functions.
- Ray tracing can select sampling distance.
- TCL / Tk has been learned
- UI allows the user to interactively
select any rectangular subset of the data, with a 3D widget.
( Bonus Feature, semi-functional )
Difficulties Encountered & Possible Future Improvements:
- A box widget was implemented in the UI, to allow the user
to easily select any rectangular subset of the data to be viewed.
The box widget itself works, but the units of measure are uncertain
and therefore the output of this box widget has not been used
to select data input as originally planned.
- The ray tracing method refuses to show the feet. ( It was
at one time, when the image reader was only reading in a restricted
subset of the data. It quit working when ExtractVOI was used
to select the data subset. )
- The ray tracing pipeline occasionally crops the data, for
no discernable reason. ( E.g. when going from 128 to 256 resolution
the head suddenly becomes a quarter-cut sphere instead of a full
sphere. ) This may be a result of limited memory / graphics card
capability, although that is only a theory.
- Some of the Tk widgets do not work in practice the way they
are documented. ( e.g. the "frameLabel" widget does
not seem to really exist, in spite of documentation to the contrary.
)
- The ideal visualization parameters ( color transfer function,
opacity function, etc. ) have not yet been determined.
System Architecture and Major Source Code Files