60 #ifndef vtkOpenGLGPUVolumeRayCastMapper_h 61 #define vtkOpenGLGPUVolumeRayCastMapper_h 65 #include "vtkRenderingVolumeOpenGL2Module.h" 129 vtkGetMacro(CurrentPass,
int);
144 void SetPartitions(
unsigned short x,
unsigned short y,
unsigned short z);
164 void AddShaderReplacement(
170 void ClearShaderReplacement(
175 void ClearAllShaderReplacements();
185 vtkSetStringMacro(VertexShaderCode);
186 vtkGetStringMacro(VertexShaderCode);
187 vtkSetStringMacro(FragmentShaderCode);
188 vtkGetStringMacro(FragmentShaderCode);
215 int independentComponents);
225 double vtkNotUsed(datasetBounds)[6],
226 double vtkNotUsed(scalarRange)[2],
227 int vtkNotUsed(noOfComponents),
228 unsigned int vtkNotUsed(numberOfLevels))
override {};
233 unsigned int vtkNotUsed(
level))
override {}
236 int vtkNotUsed(noOfComponents))
override {}
257 void ComputeReductionFactor(
double allocatedTime);
263 ratio[0] = ratio[1] = ratio[2] = 1.0;
284 void GetShaderTemplate(std::map<vtkShader::Type, vtkShader*>& shaders);
289 void ReplaceShaderValues(std::map<vtkShader::Type, vtkShader*>& shaders,
296 void ReplaceShaderCustomUniforms(
297 std::map<vtkShader::Type, vtkShader*>& shaders );
298 void ReplaceShaderBase(std::map<vtkShader::Type, vtkShader*>& shaders,
300 void ReplaceShaderTermination(std::map<vtkShader::Type, vtkShader*>& shaders,
302 void ReplaceShaderShading(std::map<vtkShader::Type, vtkShader*>& shaders,
304 void ReplaceShaderCompute(std::map<vtkShader::Type, vtkShader*>& shaders,
306 void ReplaceShaderCropping(std::map<vtkShader::Type, vtkShader*>& shaders,
308 void ReplaceShaderClipping(std::map<vtkShader::Type, vtkShader*>& shaders,
310 void ReplaceShaderMasking(std::map<vtkShader::Type, vtkShader*>& shaders,
312 void ReplaceShaderPicking(std::map<vtkShader::Type, vtkShader*>& shaders,
314 void ReplaceShaderRTT(std::map<vtkShader::Type, vtkShader*>& shaders,
316 void ReplaceShaderRenderPass(std::map<vtkShader::Type, vtkShader*>& shaders,
322 void SetShaderParametersRenderPass();
336 std::map<const vtkShader::ReplacementSpec, vtkShader::ReplacementValue>
358 #endif // vtkOpenGLGPUVolumeRayCastMapper_h
abstract interface for implicit functions
virtual void GPURender(vtkRenderer *, vtkVolume *)
Handled in the subclass - the actual render method.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
represents a volume (data & properties) in a rendered scene
vtkNew< vtkOpenGLUniforms > VertexCustomUniforms
std::map< const vtkShader::ReplacementSpec, vtkShader::ReplacementValue > UserShaderReplacements
Container for a set of TransferFunction2D instances.
vtkGenericOpenGLResourceFreeCallback * ResourceCallback
vtkTypeUInt32 vtkMTimeType
Creates and manages the volume texture rendered by vtkOpenGLGPUVolumeRayCastMapper.
std::map< int, vtkVolumeInputHelper > VolumeInputMap
virtual void GetDepthImage(vtkImageData *)
Low level API to export the depth texture as vtkImageData in RenderToImage mode.
Type
Available shader types.
virtual void GetColorImage(vtkImageData *)
Low level API to export the color texture as vtkImageData in RenderToImage mode.
void PreRender(vtkRenderer *vtkNotUsed(ren), vtkVolume *vtkNotUsed(vol), double vtkNotUsed(datasetBounds)[6], double vtkNotUsed(scalarRange)[2], int vtkNotUsed(noOfComponents), unsigned int vtkNotUsed(numberOfLevels)) override
abstract specification for renderers
window superclass for vtkRenderWindow
OpenGL implementation of volume rendering through ray-casting.
a simple class to control print indentation
topologically and geometrically regular array of data
void RenderBlock(vtkRenderer *vtkNotUsed(ren), vtkVolume *vtkNotUsed(vol), unsigned int vtkNotUsed(level)) override
void PostRender(vtkRenderer *vtkNotUsed(ren), int vtkNotUsed(noOfComponents)) override
represents the common properties for rendering a volume.
abstracts an OpenGL texture object.
create a window for renderers to draw into
char * FragmentShaderCode
vtkNew< vtkOpenGLUniforms > FragmentCustomUniforms
int IsRenderSupported(vtkRenderWindow *vtkNotUsed(window), vtkVolumeProperty *vtkNotUsed(property)) override
Based on hardware and properties, we may or may not be able to render using 3D texture mapping...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void GetReductionRatio(double *ratio) override
Ray casting performed on the GPU.
static vtkGPUVolumeRayCastMapper * New()
VolumeInputMap AssembledInputs
vtkNew< vtkInformation > LastRenderPassInfo
Caches the vtkOpenGLRenderPass::RenderPasses() information.
The ShaderProgram uses one or more Shader objects.