Blood Flow Visualization
Wolfram Volpi
& B.J. Guillot
COSC 6372: Computer Graphics
May 5, 2000
Project Goals
- Install the Visualization Toolkit (VTK) software package on our home PC's.
- Utilize VTK to demonstrate various blood flow visualization techniques.
- Convert ASCII data files to binary to reduce storage space requirements for large datasets.
Wolf's Accomplishments
- Wrote atob.tcl program that converts an ASCII VTK file into a BINARY VTK file.
This program was written in Tcl script language with a VTK pipeline.
No breaking up or concatenation of files is needed with this program.
- Searched Google for "'flow visualization' vtk" and got 18 results.
- Most of the results were about VTK streaming.
- Visualizing Flow:
A natural way to visualize flow is to connect the point position x(t) over many time increments.
The result is a numerical approximation to a particle trace represented as a streamline.
A particle trace is a trajectory traced by a fluid particle over time.
If the velocity field is changing, a particle trace will use many velocity fields over time.
A streamline is an integral curve computed over a single velocity field.
Particle traces and streamlines are equivalent to one another if the flow is steady.
Blood flow in the heart changes with time because the heart changes shape as it pumps.
Please bear in mind the differences between particle trace and streamline.
Streamlines show flow direction for an instant in time.
This is useful when a doctor wants to investigate the velocity during a critical state of the pumping cycle.
The doctor can stop at any frame and then probe the velocity field with streamlines.
- Wrote four programs demonstrating four ways of visualizing streamlines in human carotid arteries.
All four examples have a group of 25 streamlines emanating from a sphere.
Streamlines are color-coded by speed.
- streamLineV.tcl
Streamlines shown as thin lines.
- streamPoints.tcl
Here distance between points is proportional to speed. The points are hard to see.
- dashedStream.tcl
Lengths of dashes are proportional to speed.
- streamTube.tcl
Cross-sectional areas of tubes are inversely proportional to speed.
The streamlines are easy to see, but wide tubes can obscure tubes that are behind.
What Wolf Learned
- I learned Tcl, my first script language.
- First time I constructed a visualization pipeline.
- I learned that VTK is a large library, and sometimes it takes a long time to find what you need.
- Introduction to PowerPoint.
B.J.'s Accomplishments
- Constructed a small 12 point dataset and sent it to the VTK groups so they can test their installation
- Wrote a program that can convert an ASCII text file containing numbers into binary representation.
- First, in non-portable Pascal
- Later, in C
- The converter program could yield compression ratios as high as 2.5. (A 2.5 MB file could be compressed to 1 MB.)
- Created the PowerPoint presentation, and this html project overview
- Looked at some VTK examples with other rendering methods:
What B.J. learned
- VTK is truly a powerful piece of software. It is amazing that it is available for free! It has many features and nuances that do not even appear to be fully documented in the manuals. It is a learn-as-you-go system.
- Volume data can be BIG!
Future Work
The examples were for one volume of velocity data in one instant of time
The next step would be to implement particle tracing for a time sequence of volumes
VTK has an example with 8 frames of blood flow motion, but it cheats by using 2D texture mapping
This trick speeds up rendering, but camera position is fixed, and particle tracing inside a volume is impossible
We would not need to use the texture mapping if we have the Mitsubishi VolumePro rendering hardware ($2,500) available.
Then, it's better to render the volume directly from ray tracing (User Guide, pages 152-156)