Slicer3:Volume Rendering With Cuda

From NAMIC Wiki
Revision as of 16:57, 28 December 2007 by Bensch (talk | contribs) (→‎Resources)
Jump to: navigation, search
Home < Slicer3:Volume Rendering With Cuda

Objectives

Timeline

From To Task
12/01/07 05/31/08 Master Thesis Duration
12/01/07 12/31/07 Reading into the Project, Defining Basic Classes
01/01/08 01/06/08 Basic Class Definition Ready for Hands on Meeting
01/07/08 01/12/08 Hands on meeting in Salt Lake City
01/14/08 02/01/08 Further Implementation

Lookout

A Short description of the modules needed to integrate a CUDA based Volume Rendering into VTK

VTK Modules

  1. A vtkImageReader: to read Volume data as any kind of Volume Data
  2. A vtkCudaImageFilter: A Filter to convert from the reader output to a cuda-able DataSet
  3. A vtkCudaDataSet: A new vtkDataSet where that holds and handles the data transfer from and to one or multiple CUDA devices.
  4. A vtkCudaVolumeMapper: A new vtkVolumeMapper that renders the scene using the
    1. lighting model
    2. a prepared Z buffer
    3. a camera position
    4. A [vtkTexture] and a Plane to render the result to
  5. An actor that places the volume into the scene
  6. Chain this pipeline together and attach it to a rendering window.

Tasks

  1. Proof of concept
  2. Integrate into VTK
    1. Render the output from the code of Nicholas volume render sample into vtkImageViewer
    2. Adapt to Z-buffer
    3. Adapt lighting model
    4. Adapt to input Image
  3. Integration into Slicer

Resources

  1. For testing purposes: File:Heart256.raw Store this file in Slicer3/Modules/VolumeRenderingCuda/Testing/heart256.raw
  2. Also checkout the main project page at Slicer-IGT/GPU-IGT