Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkVolumeRendererSplatting Class Reference

mitkVolumeRendererSplatting - a concrete volume renderer for rendering a volume More...

#include <mitkVolumeRendererSplatting.h>

Inherits mitkVolumeRenderer.

Inheritance diagram for mitkVolumeRendererSplatting:

Inheritance graph
[legend]
Collaboration diagram for mitkVolumeRendererSplatting:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void PrintSelf (ostream &os)
virtual int Render (mitkScene *scene, mitkVolumeModel *vol)
void SetGradientEstimator (mitkEncodedGradientEstimator *gradest)
void SetPerspectiveSplatter (mitkVolumeSplatFunction *splatter)
void SetParallelSplatter (mitkVolumeSplatFunction *splatter)
mitkEncodedGradientEstimatorGetGradientEstimator ()
mitkVolumeSplatFunctionGetPerspectiveSplatter ()
mitkVolumeSplatFunctionGetParallelSplatter ()
mitkEncodedGradientShaderGetEncodedGradientShader ()
void SetKernelRadii (float radii)
void SetCoefficient (float coeff)
void SetAdjustRadii (float adjustRadii)
float GetKernelRadii ()
float GetCoefficient ()
float GetAdjustRadii ()
void SetImageSampleDistance (float fVal)
void SetGridSampleDistance (int fVal)
float GetImageSampleDistance ()
int GetGridSampleDistance ()
float GetImageSampleDistanceMinValue ()
int GetGridSampleDistanceMinValue ()
float GetImageSampleDistanceMaxValue ()
int GetGridSampleDistanceMaxValue ()
void SetMinimumImageSampleDistance (float fVal)
void SetMinimumGridSampleDistance (int fVal)
float GetMinimumImageSampleDistanceMinValue ()
int GetMinimumGridSampleDistanceMinValue ()
float GetMinimumImageSampleDistanceMaxValue ()
int GetMinimumGridSampleDistanceMaxValue ()
float GetMinimumImageSampleDistance ()
int GetMinimumGridSampleDistance ()
void SetMaximumImageSampleDistance (float fVal)
void SetMaximumGridSampleDistance (int fVal)
float GetMaximumImageSampleDistanceMinValue ()
int GetMaximumGridSampleDistanceMinValue ()
float GetMaximumImageSampleDistanceMaxValue ()
int GetMaximumGridSampleDistanceMaxValue ()
float GetMaximumImageSampleDistance ()
int GetMaximumGridSampleDistance ()
bool GetAutoAdjustImageSampleDistances ()
void AutoAdjustImageSampleDistancesOn ()
void AutoAdjustImageSampleDistancesOff ()
bool GetAutoAdjustGridSampleDistances ()
void AutoAdjustGridSampleDistancesOn ()
void AutoAdjustGridSampleDistancesOff ()
virtual float GetGradientMagnitudeScale ()
virtual float GetGradientMagnitudeBias ()
void SetModeIntegral ()
void SetModeMop ()
int GetMode ()

Detailed Description

mitkVolumeRendererSplatting - a concrete volume renderer for rendering a volume

mitkVolumeRendererSplatting is a concrete volume renderer for rendering a volume using splatting technique.

Our implemented algorithm references to: [1] Westover L. Interactive volume rendering. Proceedings of the Chapel Hill on Workshop Volume Visualization, 1989.
[2] Westover L. Footprint evolution for volume rendering. Computer Graphics, 1990.
[3] Zwicker M. et al. EWA Volume Splatting. Gross Proceedings of IEEE Visualization, 2001.
Generally, its rendering effect and speed maybe not as good as mitkVolumeRendererRayCasting. However, its rendering advantage emerges when the volume is largely scaled. The default perspective splatter is the object of mitkVolumeSplatPerspective, and the default parallel splatter is the object of mitkVolumeSplatParallel. Particular perspective and parallel splatters are also allowed by calling SetPerspectiveSplatter() and SetParallelSplatter(). This class uses Gaussian kernel as footprint function:

\[ footprint(x) = coeff * e^{-(x\mathbf{F}^{-1}x^T]/adjustradii} \]

where $coeff$ is the weight coefficient, $adjustradii$ is the adjust radii coefficient, and $\mathbf{F}$ is the variance matrix:

     _                          _ 
    |  vmatrix[0]    vmatrix[2]  | 
    |_ vmatrix[1]    vmatrix[3] _|.
There are two rendering modes based on splatting, one is integral mode, and the other is MOP mode, you can switch the mode using SetModeIntegral() and SetModeMop().
Note:
In order to use this class to render a volume, the mitkScene's camera must be set to be mitkSplatCamera.


Member Function Documentation

void mitkVolumeRendererSplatting::AutoAdjustGridSampleDistancesOff  )  [inline]
 

Set grid sample distances auto-adjusting off.

void mitkVolumeRendererSplatting::AutoAdjustGridSampleDistancesOn  )  [inline]
 

Set grid sample distances auto-adjusting on.

void mitkVolumeRendererSplatting::AutoAdjustImageSampleDistancesOff  )  [inline]
 

Set image sample distances auto-adjusting off.

void mitkVolumeRendererSplatting::AutoAdjustImageSampleDistancesOn  )  [inline]
 

Set image sample distances auto-adjusting on.

float mitkVolumeRendererSplatting::GetAdjustRadii  )  [inline]
 

Get the adjust radii of Gaussian kernel in grid space.

Returns:
Return the adjust radii of Gaussian kernel in grid space.
Note:
The default value is 6.0, and will be clamped to [0.1,20.0].

bool mitkVolumeRendererSplatting::GetAutoAdjustGridSampleDistances  )  [inline]
 

Get whether to auto-adjust the grid sample distances.

Returns:
Return a value which indicates whether to auto-adjust the grid sample distances (1 means true, 0 means false).

bool mitkVolumeRendererSplatting::GetAutoAdjustImageSampleDistances  )  [inline]
 

Get whether to auto-adjust the image sample distances.

Returns:
Return a value which indicates whether to auto-adjust the sample distances (1 means true, 0 means false).

float mitkVolumeRendererSplatting::GetCoefficient  )  [inline]
 

Get the weight coefficient of Gaussian kernel in grid space.

Returns:
Return the weight coefficient of Gaussian kernel in grid space.
Note:
The default value is 1.0, and will be clamped to [0.01,10.0].

mitkEncodedGradientShader* mitkVolumeRendererSplatting::GetEncodedGradientShader  )  [inline]
 

Get the gradient shader.

Returns:
Return the gradient shader.

mitkEncodedGradientEstimator* mitkVolumeRendererSplatting::GetGradientEstimator  )  [inline]
 

Get the gradient estimator used to estimate normals.

Returns:
Return the gradient estimator used to estimate normals.

virtual float mitkVolumeRendererSplatting::GetGradientMagnitudeBias  )  [virtual]
 

Get gradient magnitude bias.

Returns:
Return the gradient magnitude bias.

Reimplemented from mitkVolumeRenderer.

virtual float mitkVolumeRendererSplatting::GetGradientMagnitudeScale  )  [virtual]
 

Get gradient magnitude scale.

Returns:
Return the gradient magnitude scale.

Reimplemented from mitkVolumeRenderer.

int mitkVolumeRendererSplatting::GetGridSampleDistance  )  [inline]
 

Get the sample distance in the grid space.

Returns:
Return the grid sample distance in the grid space.

int mitkVolumeRendererSplatting::GetGridSampleDistanceMaxValue  )  [inline]
 

Get the maximum value of the grid sample distance in the grid space.

Returns:
Return the maximum value of the grid sample distance in the grid space.

int mitkVolumeRendererSplatting::GetGridSampleDistanceMinValue  )  [inline]
 

Get the minimum value of the grid sample distance in the grid space.

Returns:
Return the minimum value of the grid sample distance in the grid space.

float mitkVolumeRendererSplatting::GetImageSampleDistance  )  [inline]
 

Get the sample distance in the image plane.

Returns:
Return the image sample distance in the image plane.

float mitkVolumeRendererSplatting::GetImageSampleDistanceMaxValue  )  [inline]
 

Get the maximum value of the image sample distance in the image plane.

Returns:
Return the maximum value of the image sample distance in the image plane.

float mitkVolumeRendererSplatting::GetImageSampleDistanceMinValue  )  [inline]
 

Get the minimum value of the image sample distance in the image plane.

Returns:
Return the minimum value of the image sample distance in the image plane.

float mitkVolumeRendererSplatting::GetKernelRadii  )  [inline]
 

Get the splat radii of Gaussian kernel in grid space.

Returns:
Return the splat radii of Gaussian kernel in grid space.
Note:
The default value is 1.0, and will be clamped to [0.01,10.0].

int mitkVolumeRendererSplatting::GetMaximumGridSampleDistance  )  [inline]
 

Get the maximum grid sample distance in the grid space.

Returns:
Return the maximum grid sample distance in the grid space.

int mitkVolumeRendererSplatting::GetMaximumGridSampleDistanceMaxValue  )  [inline]
 

Get the maximum value of the maximum grid sample distance in the grid space.

Returns:
Return the maximum value of the maximum grid sample distance in the grid space.

int mitkVolumeRendererSplatting::GetMaximumGridSampleDistanceMinValue  )  [inline]
 

Get the minimum value of the maximum grid sample distance in the grid space.

Returns:
Return the minimum value of the maximum grid sample distance in the grid space.

float mitkVolumeRendererSplatting::GetMaximumImageSampleDistance  )  [inline]
 

Get the maximum image sample distance in the image plane.

Returns:
Return the maximum sample distance in the image plane.

float mitkVolumeRendererSplatting::GetMaximumImageSampleDistanceMaxValue  )  [inline]
 

Get the maximum value of the maximum image sample distance in the image plane.

Returns:
Return the maximum value of the maximum image sample distance in the image plane.

float mitkVolumeRendererSplatting::GetMaximumImageSampleDistanceMinValue  )  [inline]
 

Get the minimum value of the maximum image sample distance in the image plane.

Returns:
Return the minimum value of the maximum image sample distance in the image plane.

int mitkVolumeRendererSplatting::GetMinimumGridSampleDistance  )  [inline]
 

Get the minimum grid sample distance in the grid space.

Returns:
Return the minimum grid sample distance in the grid space.

int mitkVolumeRendererSplatting::GetMinimumGridSampleDistanceMaxValue  )  [inline]
 

Get the maximum value of the minimum grid sample distance in the grid space.

Returns:
Return the maximum value of the minimum grid sample distance in the grid space.

int mitkVolumeRendererSplatting::GetMinimumGridSampleDistanceMinValue  )  [inline]
 

Get the minimum value of the minimum grid sample distance in the grid space.

Returns:
Return the minimum value of the minimum grid sample distance in the grid space.

float mitkVolumeRendererSplatting::GetMinimumImageSampleDistance  )  [inline]
 

Get the minimum image sample distance in the image plane.

Returns:
Return the minimum sample distance in the image plane.

float mitkVolumeRendererSplatting::GetMinimumImageSampleDistanceMaxValue  )  [inline]
 

Get the maximum value of the minimum image sample distance in the image plane.

Returns:
Return the maximum value of the minimum image sample distance in the image plane.

float mitkVolumeRendererSplatting::GetMinimumImageSampleDistanceMinValue  )  [inline]
 

Get the minimum value of the minimum image sample distance in the image plane.

Returns:
Return the minimum value of the minimum image sample distance in the image plane.

int mitkVolumeRendererSplatting::GetMode  )  [inline]
 

Get the volume rendering mode.

Returns:
Return 0 if the volume rendering mode is integral projection. Return 1 if the volume rendering mode is MOP(maximum opacity projection).

mitkVolumeSplatFunction* mitkVolumeRendererSplatting::GetParallelSplatter  ) 
 

Get the Parallel splatter.

Returns:
Return the current Parallel splatter.

mitkVolumeSplatFunction* mitkVolumeRendererSplatting::GetPerspectiveSplatter  ) 
 

Get the perspective splatter.

Returns:
Return the current perspective splatter.

virtual void mitkVolumeRendererSplatting::PrintSelf ostream &  os  )  [virtual]
 

Print the necessary information about this object for the debugging purpose.

Parameters:
os The specified ostream to output information.

Reimplemented from mitkVolumeRenderer.

virtual int mitkVolumeRendererSplatting::Render mitkScene scene,
mitkVolumeModel vol
[virtual]
 

Internal method. Don't call it directly.

Implements mitkVolumeRenderer.

void mitkVolumeRendererSplatting::SetAdjustRadii float  adjustRadii  )  [inline]
 

Set the adjust radii of Gaussian kernel in grid space.

Parameters:
adjustRadii Specify the adjust radii of Gaussian kernel in grid space.

void mitkVolumeRendererSplatting::SetCoefficient float  coeff  )  [inline]
 

Set the weight coefficient of Gaussian kernel in grid space.

Parameters:
coeff Specify the weight coefficient of Gaussian kernel in grid space.

void mitkVolumeRendererSplatting::SetGradientEstimator mitkEncodedGradientEstimator gradest  ) 
 

Set the gradient estimator used to estimate normals.

Parameters:
gradest Represent the gradient estimator used to estimate normals.

void mitkVolumeRendererSplatting::SetGridSampleDistance int  fVal  )  [inline]
 

Set the sample distance in the grid space.

Parameters:
fVal Specify the sample distance in the grid space.

void mitkVolumeRendererSplatting::SetImageSampleDistance float  fVal  )  [inline]
 

Set the sample distance in the image plane.

Parameters:
fVal Specify the sample distance in the image plane.

void mitkVolumeRendererSplatting::SetKernelRadii float  radii  )  [inline]
 

Set the splat radii of Gaussian kernel in grid space.

Parameters:
radii Specify the splat radii of Gaussian kernel in grid space.

void mitkVolumeRendererSplatting::SetMaximumGridSampleDistance int  fVal  )  [inline]
 

Set the maximum value of the grid sample distance in the grid space.

Parameters:
fVal the maximum value of the grid sample distance in the grid space.

void mitkVolumeRendererSplatting::SetMaximumImageSampleDistance float  fVal  )  [inline]
 

Set the maximum value of the image sample distance in the image plane.

Parameters:
fVal the maximum value of the sample distance in the image plane.

void mitkVolumeRendererSplatting::SetMinimumGridSampleDistance int  fVal  )  [inline]
 

Set the minimum value of the grid sample distance in the grid space.

Parameters:
fVal the minimum value of the grid sample distance in the grid space.

void mitkVolumeRendererSplatting::SetMinimumImageSampleDistance float  fVal  )  [inline]
 

Set the minimum value of the image sample distance in the image plane.

Parameters:
fVal the minimum value of the sample distance in the image plane

void mitkVolumeRendererSplatting::SetModeIntegral  )  [inline]
 

Set volume rendering mode to be integral projection.

void mitkVolumeRendererSplatting::SetModeMop  )  [inline]
 

Set volume rendering mode to be MOP(maximum opacity projection).

Note:
Each image pixel stands for maximum opacity element in the ray direction, and when opacity is linear with intensity, MOP is equal to MIP(maximum intensity projection).

void mitkVolumeRendererSplatting::SetParallelSplatter mitkVolumeSplatFunction splatter  ) 
 

Set Parallel splatter to splat the volume.

Parameters:
splatter Represent the Parallel splatter.

void mitkVolumeRendererSplatting::SetPerspectiveSplatter mitkVolumeSplatFunction splatter  ) 
 

Set perspective splatter to splat the volume.

Parameters:
splatter Represent the perspective splatter.


The documentation for this class was generated from the following file:
Generated on Tue Feb 25 15:07:28 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3