29 #ifndef vtkOpenGLFluidMapper_h
30 #define vtkOpenGLFluidMapper_h
35 #include "vtkRenderingOpenGL2Module.h"
70 vtkSetMacro(ScalarVisibility,
bool);
71 vtkGetMacro(ScalarVisibility,
bool);
72 vtkBooleanMacro(ScalarVisibility,
bool);
83 vtkSetMacro(ParticleRadius,
float);
84 vtkGetMacro(ParticleRadius,
float);
94 vtkSetMacro(SurfaceFilterIterations, uint32_t);
95 vtkGetMacro(SurfaceFilterIterations, uint32_t);
103 vtkSetMacro(ThicknessAndVolumeColorFilterIterations, uint32_t);
104 vtkGetMacro(ThicknessAndVolumeColorFilterIterations, uint32_t);
115 vtkSetMacro(SurfaceFilterRadius, uint32_t);
116 vtkGetMacro(SurfaceFilterRadius, uint32_t);
124 vtkSetMacro(ThicknessAndVolumeColorFilterRadius,
float);
125 vtkGetMacro(ThicknessAndVolumeColorFilterRadius,
float);
133 BilateralGaussian = 0,
154 this->NRFilterLambda = lambda;
155 this->NRFilterMu = mu;
164 this->BiGaussFilterSigmaDepth = sigmaDepth;
172 UnfilteredOpaqueSurface = 0,
194 vtkSetVector3Macro(AttenuationColor,
float);
195 vtkGetVector3Macro(AttenuationColor,
float);
203 vtkSetVector3Macro(OpaqueColor,
float);
204 vtkGetVector3Macro(OpaqueColor,
float);
214 vtkSetMacro(ParticleColorPower,
float);
215 vtkGetMacro(ParticleColorPower,
float);
225 vtkSetMacro(ParticleColorScale,
float);
226 vtkGetMacro(ParticleColorScale,
float);
236 vtkSetMacro(AttenuationScale,
float);
237 vtkGetMacro(AttenuationScale,
float);
247 vtkSetMacro(AdditionalReflection,
float);
248 vtkGetMacro(AdditionalReflection,
float);
258 vtkSetMacro(RefractionScale,
float);
259 vtkGetMacro(RefractionScale,
float);
266 vtkSetMacro(RefractiveIndex,
float);
267 vtkGetMacro(RefractiveIndex,
float);
289 void UpdateDepthThicknessColorShaders(
295 void SetDepthThicknessColorShaderParameters(
310 float ParticleRadius = 1.0f;
313 uint32_t SurfaceFilterIterations = 3u;
314 uint32_t SurfaceFilterRadius = 5u;
315 float NRFilterLambda = 10.0f;
316 float NRFilterMu = 1.0f;
317 float BiGaussFilterSigmaDepth = 10.0f;
319 uint32_t ThicknessAndVolumeColorFilterIterations = 3u;
320 uint32_t ThicknessAndVolumeColorFilterRadius = 10u;
324 float OpaqueColor[3]{ 0.0f, 0.0f, 0.95f };
325 float AttenuationColor[3]{ 0.5f, 0.2f, 0.05f };
326 float ParticleColorPower = 0.1f;
327 float ParticleColorScale = 1.0f;
328 float AttenuationScale = 1.0f;
329 float AdditionalReflection = 0.0f;
330 float RefractionScale = 1.0f;
331 float RefractiveIndex = 1.33f;
333 bool ScalarVisibility =
false;
334 bool InDepthPass =
true;
339 bool HasVertexColor =
false;
392 NumOptionalTexBuffers
vtkMatrix4x4 * TempMatrix4
FluidDisplayMode
Display mode for the fluid, default value is TransparentFluidVolume.
represents a volume (data & properties) in a rendered scene
FluidSurfaceFilterMethod
Filter method to filter the depth buffer.
void ReleaseGraphicsResources(vtkWindow *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
represent and manipulate 4x4 transformation matrices
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFilterThickness
void SetNarrowRangeFilterParameters(float lambda, float mu)
Optional parameters, exclusively for narrow range filter The first parameter is to control smoothing ...
virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
void SetBilateralGaussianFilterParameter(float sigmaDepth)
Optional parameters, exclusively for bilateral gaussian filter The parameter is for controlling smoot...
record modification and/or execution time
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFilterDepth
Abstract class for a volume mapper.
abstract specification for renderers
concrete dataset represents vertices, lines, polygons, and triangle strips
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkOpenGLHelper GLHelperDepthThickness
window superclass for vtkRenderWindow
vtkTypeBool CamParallelProjection
a simple class to control print indentation
vtkMatrix3x3 * CamInvertedNorms
vtkTimeStamp VBOBuildTime
Internal class which encapsulates OpenGL FramebufferObject.
abstracts an OpenGL texture object.
Class to make rendering a full screen quad easier.
vtkSmartPointer< vtkOpenGLFramebufferObject > FBThickness
static vtkAlgorithm * New()
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFluidEyeZ
represent and manipulate 3x3 transformation matrices
vtkSmartPointer< vtkOpenGLFramebufferObject > FBCompNormal
manage vertex buffer objects shared within a mapper
vtkSmartPointer< vtkOpenGLVertexBufferObjectGroup > VBOs
Render fluid from position data (and color, if available)