next up previous contents
Next: Accelerating Volume rendering Up: Using Space-Leaping and Frame Previous: Using Space-Leaping and Frame

Fast RayCasting of volume data []

Direct volume rendering ( visualize the volume data without any prior encoding like polygon extraction) but just the first hit. Surface based rendering.
If a surface point is visible in one projection then it is highly probable that it will remain visible in the next projection.
They can be computed incrementally avoiding full-fledged raycasting.

  
Figure: 2D illustration of an incremental rotation after a full raycasting. At1 has become hidden. At 2 samples have become clustered. At 3 new rays are cast to fill in gaps. A left scan is done at 4 to find new visible surface.

Assume for simplicity:

First full-fledged raycasting (ray per pixel).
Save in a list all detected surface points. One list for each y sorted in x from left to right.

  1. Transform points in the list using a 2D geometric transformation.
  2. Remove those points that have become hidden.
  3. Detect new surface points by selective raycasting and insert in the list.
  4. Resample all surface points.

The surface points became visible and invisible following two rules:

  1. Surface points that disappear will project to the left of some new right silhouette edge.
  2. Newly visible surface points will appear to the left of some old silhouette.
They don't keep track of the silhouette points.

Step 2 follow rule 1. Points are ``sur-passed''.
Step 3 and 4:

This fill the gaps and detecting newly visible points.
PROBLEM: When angle increment is large, background become visible between disjoint objects. The left scan will stop and some surface will go undetected.
SOLUTION: An additional right scan.


next up previous contents
Next: Accelerating Volume rendering Up: Using Space-Leaping and Frame Previous: Using Space-Leaping and Frame

Lukas Mroz
Tue Feb 9 12:46:24 MET 1999