18 #ifndef vtkOpenGLFluidMapper_h
19 #define vtkOpenGLFluidMapper_h
24 #include "vtkRenderingOpenGL2Module.h"
30 VTK_ABI_NAMESPACE_BEGIN
60 vtkSetMacro(ScalarVisibility,
bool);
61 vtkGetMacro(ScalarVisibility,
bool);
62 vtkBooleanMacro(ScalarVisibility,
bool);
73 vtkSetMacro(ParticleRadius,
float);
74 vtkGetMacro(ParticleRadius,
float);
84 vtkSetMacro(SurfaceFilterIterations, uint32_t);
85 vtkGetMacro(SurfaceFilterIterations, uint32_t);
93 vtkSetMacro(ThicknessAndVolumeColorFilterIterations, uint32_t);
94 vtkGetMacro(ThicknessAndVolumeColorFilterIterations, uint32_t);
105 vtkSetMacro(SurfaceFilterRadius, uint32_t);
106 vtkGetMacro(SurfaceFilterRadius, uint32_t);
114 vtkSetMacro(ThicknessAndVolumeColorFilterRadius,
float);
115 vtkGetMacro(ThicknessAndVolumeColorFilterRadius,
float);
123 BilateralGaussian = 0,
144 this->NRFilterLambda = lambda;
145 this->NRFilterMu = mu;
154 this->BiGaussFilterSigmaDepth = sigmaDepth;
162 UnfilteredOpaqueSurface = 0,
184 vtkSetVector3Macro(AttenuationColor,
float);
185 vtkGetVector3Macro(AttenuationColor,
float);
193 vtkSetVector3Macro(OpaqueColor,
float);
194 vtkGetVector3Macro(OpaqueColor,
float);
204 vtkSetMacro(ParticleColorPower,
float);
205 vtkGetMacro(ParticleColorPower,
float);
215 vtkSetMacro(ParticleColorScale,
float);
216 vtkGetMacro(ParticleColorScale,
float);
226 vtkSetMacro(AttenuationScale,
float);
227 vtkGetMacro(AttenuationScale,
float);
237 vtkSetMacro(AdditionalReflection,
float);
238 vtkGetMacro(AdditionalReflection,
float);
248 vtkSetMacro(RefractionScale,
float);
249 vtkGetMacro(RefractionScale,
float);
256 vtkSetMacro(RefractiveIndex,
float);
257 vtkGetMacro(RefractiveIndex,
float);
279 void UpdateDepthThicknessColorShaders(
285 void SetDepthThicknessColorShaderParameters(
300 float ParticleRadius = 1.0f;
303 uint32_t SurfaceFilterIterations = 3u;
304 uint32_t SurfaceFilterRadius = 5u;
305 float NRFilterLambda = 10.0f;
306 float NRFilterMu = 1.0f;
307 float BiGaussFilterSigmaDepth = 10.0f;
309 uint32_t ThicknessAndVolumeColorFilterIterations = 3u;
310 uint32_t ThicknessAndVolumeColorFilterRadius = 10u;
314 float OpaqueColor[3]{ 0.0f, 0.0f, 0.95f };
315 float AttenuationColor[3]{ 0.5f, 0.2f, 0.05f };
316 float ParticleColorPower = 0.1f;
317 float ParticleColorScale = 1.0f;
318 float AttenuationScale = 1.0f;
319 float AdditionalReflection = 0.0f;
320 float RefractionScale = 1.0f;
321 float RefractiveIndex = 1.33f;
323 bool ScalarVisibility =
false;
324 bool InDepthPass =
true;
329 bool HasVertexColor =
false;
382 NumOptionalTexBuffers
394 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)