18#ifndef vtkOpenGLFluidMapper_h
19#define vtkOpenGLFluidMapper_h
24#include "vtkRenderingOpenGL2Module.h"
31VTK_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);
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
Abstract class for a volume mapper.
a simple class to control print indentation
represent and manipulate 3x3 transformation matrices
represent and manipulate 4x4 transformation matrices
Render fluid from position data (and color, if available)
vtkMatrix3x3 * CamInvertedNorms
void SetInputData(vtkPolyData *in)
Specify the input data to map.
vtkSmartPointer< vtkOpenGLFramebufferObject > FBThickness
FluidDisplayMode
Display mode for the fluid, default value is TransparentFluidVolume.
@ UnfilteredSurfaceNormal
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
vtkSmartPointer< vtkOpenGLVertexBufferObjectGroup > VBOs
void SetNarrowRangeFilterParameters(float lambda, float mu)
Optional parameters, exclusively for narrow range filter The first parameter is to control smoothing ...
vtkTimeStamp VBOBuildTime
void Render(vtkRenderer *ren, vtkVolume *vol) override
This calls RenderPiece.
vtkSmartPointer< vtkOpenGLFramebufferObject > FBCompNormal
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMatrix4x4 * TempMatrix4
vtkPolyData * GetInput()
Specify the input data to map.
vtkTypeBool CamParallelProjection
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFluidEyeZ
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFilterThickness
FluidSurfaceFilterMethod
Filter method to filter the depth buffer.
~vtkOpenGLFluidMapper() override
void SetupBuffers(vtkOpenGLRenderWindow *renderWindow)
Setup the texture buffers.
void UpdateDepthThicknessColorShaders(vtkOpenGLHelper &glHelper, vtkRenderer *renderer, vtkVolume *vol)
Perform string replacements on the shader templates.
static vtkOpenGLFluidMapper * New()
void RenderParticles(vtkRenderer *renderer, vtkVolume *vol)
Render the fluid particles.
vtkSmartPointer< vtkOpenGLFramebufferObject > FBFilterDepth
void SetBilateralGaussianFilterParameter(float sigmaDepth)
Optional parameters, exclusively for bilateral gaussian filter The parameter is for controlling smoot...
vtkOpenGLHelper GLHelperDepthThickness
void SetDepthThicknessColorShaderParameters(vtkOpenGLHelper &glHelper, vtkRenderer *renderer, vtkVolume *vol)
Set the shader parameters related to the actor/mapper/camera.
Internal class which encapsulates OpenGL FramebufferObject.
Class to make rendering a full screen quad easier.
manage vertex buffer objects shared within a mapper
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
abstracts an OpenGL texture object.
record modification and/or execution time
represents a volume (data & properties) in a rendered scene
window superclass for vtkRenderWindow