Importance Driven Volume Rendering by dfhdhdhdhjr

VIEWS: 7 PAGES: 33

									       Importance Driven
       Volume Rendering
Authors: I. Viola, A. Kanitsar, M. Gröler

            Visualization II
       Instructor: Jessica Crouch
                   Problem
• Volume visualization has inherent
  difficulties with occlusion
  – Exterior surfaces occlude interior surfaces
  – Interior surfaces might be more interesting or
    important

• How do you render a volume so that you
  see the most important parts of the data?
                      Motivation
• 3D medical image visualization in general

• Specific example: liver tumor visualization
   – For radiotherapy planning
   – For surgery planning

• Need to clearly see:
   – Tumor location, size, shape
   – Blood vessel tree
   – Parenchyma                        http://www.vislab.uq.edu.au/research/liver/images/3D_liver_model.jpg

      (functional tissue, as opposed to connective tissue)
http://www.anatomyatlases.org/atlasofanatomy/plate33/images/33-4_static.jpg   http://mbi.dkfz-heidelberg.de/projects/liver/images/vessels.jpg
                Methods
• Approaches add visual emphasis to important
  portions of the scene
   – How do you define importance?
   – How do you add visual emphasis?
Previous Work: Transfer Functions
• Specify a function (probably non-linear) that maps
  scalar voxel data to color/opacity
   – Simplest example: threshold function
   – Others?
• Map data through transfer function, then use a
  standard volume rendering algorithm
   – MIP (Maximum Intensity Projection)
   – Ray casting
   – Volume Splatting
Previous Work: Transfer Functions
• Assumes the important parts of the data can
  be specified using ranges of voxel intensities

• How could this scheme work for the liver?
Previous Work:
Focus + Context Rendering
• Focus:
  – To which part of the scene is the viewer paying
    attention?
     • Eye tracking
  – Render that part with more detail, with magnification,
    or other enhancement
  – Let focus define importance
• Context:
  – The relationship (distance) between a part of the scene
    and the focus (focal) point
  – Detail or magnification gradually fades as distance
    increases
Previous Work:
Focus + Context Rendering
• Has the unique property that the viewer
  determines what part of the visualization is
  emphasized
  – When is this appropriate?

  – How would this work for the liver application?
  Previous Work:
  Methods for Adding Visual Emphasis
• Sparse Representation:
  – Just render important parts of the data
     • Iso-surfaces
     • Contour lines / curves (approximation of
       wireframe)
• Cut-Away Views:
  – Traditional artist rendering of anatomy,
    layered structures
  – Clipping plane(s) or curved clipping
    surface(s)
  Importance Driven Rendering
• Basic idea:
  – Wherever a less important object occludes a
    more important object, render the less
    important object sparsely so that the more
    important object is mostly visible.
• Assumes importance is user-defined & static
• View dependent approach
  – Not focus dependent
Necessary Model Data
• Each voxel is assigned to an object
  – Segmentation, classification


• Each object is assigned a level of importance
  – In addition to color, opacity
Rendering Logic
• Sparseness level of a surface patch indicates
  what percentage of its footprint on the
  image plane it colors

• Sparseness level is assigned to a surface
  patch based on whether it is more or less
  important than other surfaces it occludes (or
  is occluded by)
Importance Compositing
• Option 1: Maximum Importance Projection
  – For each pixel, render the most important voxel
    that projects onto the pixel
  – Assign sparseness level of 0 or 1 to each point




     2                   3

               1
Importance Compositing: MImP
• Efficient, fast?
• How depth perception work?
  – Occlusion is an important depth cue
• Naïve method of MImP:
MImP Improved
• Apply a conical rather than cylindrical cut-out
  to the objects surrounding an important object
  – Gradual change in rendering depth
  – Allows you to see cut away layers of surrounding
    objects, rather than a deep “hole”
  MImP Conical Cut-Out Implementation
1. Find the important object’s footprint on the image plane.

2. For each pixel in the footprint, find the maximum depth of
   all the object’s voxels that project to the pixel
      - Gives objects “back wall”

3. Create a conical clipping surface by projecting the back
   wall toward the image plane
      - Assuming a ray casting approach, just start tracing clipped rays
      at the clipping surface rather than at the image plane
Importance Compositing
• Option 2: Average Importance Compositing
  – Compute sum of object importances along a ray
  – Each surface point intersected by the ray is
    assigned a sparseness level based on the
    ratio of its importance to the sum of all intersected
    surface importances
Average Importance Compositing
• Efficiency of implementation?
  – Use binary object footprints


• Artifacts: jaggy transitions
  – Enlarge and smooth footprints
         Levels of Sparseness
• Given a voxel’s level of sparseness, how
  should it be rendered?
  – With MImP, render as solid or not at all
  – With Avg. Importance Compositing, more
    choices
     • Color and Opacity Modulation
     • Screen-Door Transparency
     • Volume Thinning
Color and Opacity Modulation
• Increase the opacity and possibly saturation
  of a voxel with increasing importance
  – Is playing with the color confusing?
Screen-Door Transparency
• Sparse surfaces are rendered as the fibers in
  a quadrilateral mesh
  – Higher sparseness level results in larger
    (coarser) mesh weave
• Advantages/Disadvantages?
  – Depth perception
  – Distraction
Volume Thinning
• Render objects using a set of iso-surfaces
• The number of iso-surface voxels to render
  per object depends on the sparsity level of
  the object
                Evaluation
• Show rendered results for the Gecko and
  Monster datasets
• All rendering off-line
• No quantitative evaluation

• No demonstration for the motivating
  problem: liver
                  Evaluation
• Several methods were presented, it would
  be nice to know which work the best
• Would require human perception
  experiments
  – Task: plan a cutting path for removal of a liver
    tumor that avoids major vessels
     • Try it using MImP, Opacity Modulation, Screen
       Door, and Volume Thinning
     • Do people perform faster or more reliably using one
       of the types? Your prediction?
                Evaluation
• Second consideration:
  – Path planning is an interactive task
  – Would like to rotate camera & change viewpoint


• Which methods might be implemented in real-
  time?
               Conclusion
• Have not addressed half the problem: how
  to assign importance to objects
  – Application dependent, but need automated
    methods
                   Conclusion
• Interesting, but incomplete work
   – Should be evaluated, validated

• Most interesting idea is MImP with conical cut-out
   – Don’t have to use ray casting, although the authors do
   – Consider volume splatting

• Avg. Importance Compositing methods likely to
  remain off-line rendering options for the near future
      Discussion Questions
Consider applying this to visualization of a
building volume (3D blueprints).
   1. How might you assign importance?
   2. Efficiency considerations aside,
   which of the rendering methods would
   be most visually effective?
      Discussion Questions
What if you had a dataset that included air
flow velocity for the volume, and you were
interested in understanding the operation of
the circulation system?
    1. How might you assign importance?
    2. Efficiency considerations aside,
    which of the rendering methods would
    be most visually effective?
        Discussion Questions
• Implementation:
  – Could any of the methods described be
    implemented using the traditional forward-
    rendering graphics pipeline?
     • How, or why not?
  – What about implementation with a shading
    language?
     • A Z-Buffer type of approach for importance sorting?

								
To top