|
|
(69 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | = Objectives =
| + | <big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer3:Volume_Rendering_With_Cuda here]</font></big> |
− | | |
− | | |
− | == 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 [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 [[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 [[http://www.vtk.org/doc/release/5.0/html/a02096.html 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.
| |
− | [[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 ==
| |
− | #Proof of concept
| |
− | #Integrate into VTK
| |
− | ##Render the output from the code of Nicholas [http://svn.orxonox.net/subprojects/volrenSample volume render sample] into vtkImageViewer
| |
− | ##Adapt to Z-buffer
| |
− | ##Adapt lighting model
| |
− | ##Adapt to input Image
| |
− | #Integration into Slicer
| |
− | | |
− | == Timeline ==
| |
− | {| border="1"
| |
− | |- bgcolor="#abcdef"
| |
− | ! 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: [[Image:Heart256.raw]] Store this file in Slicer3/Modules/VolumeRenderingCuda/Testing/heart256.raw
| |
− | #Also checkout the main project page at [[Slicer-IGT/GPU-IGT]]
| |