18 #ifndef vtkOpenGLFluidMapper_h
19 #define vtkOpenGLFluidMapper_h
24 #include "vtkRenderingOpenGL2Module.h"
31 VTK_ABI_NAMESPACE_BEGIN
62 vtkSetMacro(ScalarVisibility,
bool);
63 vtkGetMacro(ScalarVisibility,
bool);
64 vtkBooleanMacro(ScalarVisibility,
bool);
75 vtkSetMacro(ParticleRadius,
float);
76 vtkGetMacro(ParticleRadius,
float);
86 vtkSetMacro(SurfaceFilterIterations, vtkTypeUInt32);
87 vtkGetMacro(SurfaceFilterIterations, vtkTypeUInt32);
95 vtkSetMacro(ThicknessAndVolumeColorFilterIterations, vtkTypeUInt32);
96 vtkGetMacro(ThicknessAndVolumeColorFilterIterations, vtkTypeUInt32);
107 vtkSetMacro(SurfaceFilterRadius, vtkTypeUInt32);
108 vtkGetMacro(SurfaceFilterRadius, vtkTypeUInt32);
116 vtkSetMacro(ThicknessAndVolumeColorFilterRadius,
float);
117 vtkGetMacro(ThicknessAndVolumeColorFilterRadius,
float);
125 BilateralGaussian = 0,
146 this->NRFilterLambda = lambda;
147 this->NRFilterMu = mu;
156 this->BiGaussFilterSigmaDepth = sigmaDepth;
164 UnfilteredOpaqueSurface = 0,
186 vtkSetVector3Macro(AttenuationColor,
float);
187 vtkGetVector3Macro(AttenuationColor,
float);
195 vtkSetVector3Macro(OpaqueColor,
float);
196 vtkGetVector3Macro(OpaqueColor,
float);
206 vtkSetMacro(ParticleColorPower,
float);
207 vtkGetMacro(ParticleColorPower,
float);
217 vtkSetMacro(ParticleColorScale,
float);
218 vtkGetMacro(ParticleColorScale,
float);
228 vtkSetMacro(AttenuationScale,
float);
229 vtkGetMacro(AttenuationScale,
float);
239 vtkSetMacro(AdditionalReflection,
float);
240 vtkGetMacro(AdditionalReflection,
float);
250 vtkSetMacro(RefractionScale,
float);
251 vtkGetMacro(RefractionScale,
float);
258 vtkSetMacro(RefractiveIndex,
float);
259 vtkGetMacro(RefractiveIndex,
float);
281 void UpdateDepthThicknessColorShaders(
287 void SetDepthThicknessColorShaderParameters(
302 float ParticleRadius = 1.0f;
305 vtkTypeUInt32 SurfaceFilterIterations = 3u;
306 vtkTypeUInt32 SurfaceFilterRadius = 5u;
307 float NRFilterLambda = 10.0f;
308 float NRFilterMu = 1.0f;
309 float BiGaussFilterSigmaDepth = 10.0f;
311 vtkTypeUInt32 ThicknessAndVolumeColorFilterIterations = 3u;
312 vtkTypeUInt32 ThicknessAndVolumeColorFilterRadius = 10u;
316 float OpaqueColor[3]{ 0.0f, 0.0f, 0.95f };
317 float AttenuationColor[3]{ 0.5f, 0.2f, 0.05f };
318 float ParticleColorPower = 0.1f;
319 float ParticleColorScale = 1.0f;
320 float AttenuationScale = 1.0f;
321 float AdditionalReflection = 0.0f;
322 float RefractionScale = 1.0f;
323 float RefractiveIndex = 1.33f;
325 bool ScalarVisibility =
false;
326 bool InDepthPass =
true;
331 bool HasVertexColor =
false;
384 NumOptionalTexBuffers
396 VTK_ABI_NAMESPACE_END
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)