Difference between revisions of "Slicer3:Volume Rendering With Cuda"

From NAMIC Wiki
Jump to: navigation, search
Line 5: Line 5:
  
 
=== VTK Modules ===
 
=== VTK Modules ===
# An imageDataReader to read Volume data as any kind of Volume Data
+
# '''A vtkImageDataReader:''' to read Volume data as any kind of Volume Data
# A Filter converting from the reader output to a cuda-able DataSet
+
# '''A vtkCudaDataFilter:''' A Filter to convert from the reader output to a cuda-able DataSet
# A new vtkDataSet call it vtkCudaDataSet, where I will put my Volume Data used by the _init(), _loadData() and _delete() functions
+
# '''A vtkCudaDataSet:''' A new vtkDataSet where that holds and handles the data transfer from and to one or multiple CUDA devices.
# A new vtkVolumeMapper that renders the scene using the lighting model, a prepared Z buffer, a camera position and the before mentioned DataSet to produce a image using the _doRender() function and the _getResult() function to acquire the produced data.
+
# '''A vtkCudaVolumeMapper:''' A new vtkVolumeMapper that renders the scene using the  
 +
## lighting model
 +
## a prepared Z buffer
 +
## a camera position
 
## A vtkTexture and a Plane to render the result to
 
## A vtkTexture and a Plane to render the result to
# An actor that places the volume into the scene
+
# '''An actor''' that places the volume into the scene
# Chain this pipeline together and attach it to a rendering window.
+
# Chain this '''pipeline''' together and attach it to a rendering window.
 
 
  
 
== Tasks ==
 
== Tasks ==

Revision as of 19:38, 27 December 2007

Home < Slicer3:Volume Rendering With Cuda

Objectives

Lookout

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

VTK Modules

  1. A vtkImageDataReader: to read Volume data as any kind of Volume Data
  2. A vtkCudaDataFilter: 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