Difference between revisions of "Slicer3:Volume Rendering With Cuda"
From NAMIC Wiki
Line 5: | Line 5: | ||
A Short description of the modules needed to integrate a CUDA based Volume Rendering into VTK | A Short description of the modules needed to integrate a CUDA based Volume Rendering into VTK | ||
− | === VTK Modules === | + | === VTK Modules and Pipeline === |
+ | These are the modules that will be created in order to integrate a Cuda based Volume Rendering into Slicer3 | ||
# '''A [http://www.vtk.org/doc/release/5.0/html/a01572.html vtkImageReader]:''' to read Volume data as any kind of Volume Data | # '''A [http://www.vtk.org/doc/release/5.0/html/a01572.html vtkImageReader]:''' to read Volume data as any kind of Volume Data | ||
# '''A [[vtkCudaImageFilter]]:''' A Filter to convert from the reader output to a cuda-able DataSet | # '''A [[vtkCudaImageFilter]]:''' A Filter to convert from the reader output to a cuda-able DataSet | ||
Line 16: | Line 17: | ||
# '''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. | ||
+ | |||
+ | In the following image the pipeline is displayed together with the connections from the VTK, Slicer3 and CUDA frameworks. | ||
+ | [[Image:VtkCudaVolumeRenderingPipeline.png]] | ||
+ | Description: | ||
+ | * The Fat line displays the pipeline flow. | ||
+ | * Green colored fields are classes from the Slicer3 or vtk implementation | ||
+ | * Red colored fields are CUDA and hardware specific parts | ||
+ | * Blue colored fields are specially implemented parts for the communication of cuda and vtk and the volume rendering algorithms. | ||
== Tasks == | == Tasks == |
Revision as of 18:59, 28 December 2007
Home < Slicer3:Volume Rendering With CudaObjectives
Lookout
A Short description of the modules needed to integrate a CUDA based Volume Rendering into VTK
VTK Modules and Pipeline
These are the modules that will be created in order to integrate a Cuda based Volume Rendering into Slicer3
- A vtkImageReader: to read Volume data as any kind of Volume Data
- A vtkCudaImageFilter: A Filter to convert from the reader output to a cuda-able DataSet
- A vtkCudaDataSet: A new vtkDataSet where that holds and handles the data transfer from and to one or multiple CUDA devices.
- 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
- An actor that places the volume into the scene
- Chain this pipeline together and attach it to a rendering window.
In the following image the pipeline is displayed together with the connections from the VTK, Slicer3 and CUDA frameworks. Description:
- The Fat line displays the pipeline flow.
- Green colored fields are classes from the Slicer3 or vtk implementation
- Red colored fields are CUDA and hardware specific parts
- Blue colored fields are specially implemented parts for the communication of cuda and vtk and the volume rendering algorithms.
Tasks
- Proof of concept
- Integrate into VTK
- Render the output from the code of Nicholas volume render sample into vtkImageViewer
- Adapt to Z-buffer
- Adapt lighting model
- Adapt to input Image
- Integration into Slicer
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 |
Resources
- For testing purposes: File:Heart256.raw Store this file in Slicer3/Modules/VolumeRenderingCuda/Testing/heart256.raw
- Also checkout the main project page at Slicer-IGT/GPU-IGT