58#ifndef vtkOpenGLGPUVolumeRayCastMapper_h
59#define vtkOpenGLGPUVolumeRayCastMapper_h
64#include "vtkRenderingVolumeOpenGL2Module.h"
69VTK_ABI_NAMESPACE_BEGIN
73class vtkOpenGLTransferFunctions2D;
74class vtkOpenGLVolumeGradientOpacityTables;
75class vtkOpenGLVolumeOpacityTables;
76class vtkOpenGLVolumeRGBTables;
178 double vtkNotUsed(datasetBounds)[6],
double vtkNotUsed(scalarRange)[2],
179 int vtkNotUsed(noOfComponents),
unsigned int vtkNotUsed(numberOfLevels))
override
185 unsigned int vtkNotUsed(level))
override
247 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
256 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
258 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
260 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
262 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
264 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
266 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
268 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
270 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
272 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
274 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkVolume* vol,
bool prePass);
vtkGPUVolumeRayCastMapper()
topologically and geometrically regular array of data
abstract interface for implicit functions
a simple class to control print indentation
Allocate and hold a VTK object.
void GetColorImage(vtkImageData *im) override
Low level API to export the color texture as vtkImageData in RenderToImage mode.
void ReplaceShaderRTT(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void SetShaderParametersRenderPass()
Update parameters from RenderPass.
void PreRender(vtkRenderer *vtkNotUsed(ren), vtkVolume *vtkNotUsed(vol), double vtkNotUsed(datasetBounds)[6], double vtkNotUsed(scalarRange)[2], int vtkNotUsed(noOfComponents), unsigned int vtkNotUsed(numberOfLevels)) override
void ReplaceShaderCustomUniforms(std::map< vtkShader::Type, vtkShader * > &shaders, vtkOpenGLShaderProperty *p)
RenderPass string replacements on shader templates called from ReplaceShaderValues.
void GetShaderTemplate(std::map< vtkShader::Type, vtkShader * > &shaders, vtkOpenGLShaderProperty *p)
Create the basic shader template strings before substitutions.
void GetDepthImage(vtkImageData *im) override
Low level API to export the depth texture as vtkImageData in RenderToImage mode.
vtkVolumeInputHelper VolumeInput
void BuildShader(vtkRenderer *ren)
void ReplaceShaderCropping(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void ReplaceShaderRenderPass(std::map< vtkShader::Type, vtkShader * > &shaders, vtkVolume *vol, bool prePass)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void DoGPURender(vtkRenderer *ren, vtkOpenGLCamera *cam, vtkShaderProgram *shaderProgram, vtkOpenGLShaderProperty *shaderProperty)
std::map< int, vtkVolumeInputHelper > VolumeInputMap
friend class vtkVolumeTexture
bool PreLoadData(vtkRenderer *ren, vtkVolume *vol)
Load the volume texture into GPU memory.
void ReplaceShaderTermination(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void RenderBlock(vtkRenderer *vtkNotUsed(ren), vtkVolume *vtkNotUsed(vol), unsigned int vtkNotUsed(level)) override
void PostRender(vtkRenderer *vtkNotUsed(ren), int vtkNotUsed(noOfComponents)) override
void SetSharedDepthTexture(vtkTextureObject *nt)
void ComputeReductionFactor(double allocatedTime)
vtkOpenGLGPUVolumeRayCastMapper()
void ReplaceShaderPicking(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
~vtkOpenGLGPUVolumeRayCastMapper() override
void ReplaceShaderBase(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void GetReductionRatio(double *ratio) override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ReplaceShaderClipping(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
vtkMTimeType GetRenderPassStageMTime(vtkVolume *vol)
vtkOpenGLRenderPass API
vtkTextureObject * GetColorTexture()
void ReplaceShaderCompute(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void ReplaceShaderMasking(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void BuildDepthPassShader(vtkRenderer *ren, vtkVolume *vol, int noOfComponents, int independentComponents)
vtkGenericOpenGLResourceFreeCallback * ResourceCallback
void SetPartitions(unsigned short x, unsigned short y, unsigned short z)
Set a fixed number of partitions in which to split the volume during rendering.
vtkNew< vtkInformation > LastRenderPassInfo
Caches the vtkOpenGLRenderPass::RenderPasses() information.
vtkTextureObject * GetDepthTexture()
void GPURender(vtkRenderer *ren, vtkVolume *vol) override
Handled in the subclass - the actual render method.
static vtkOpenGLGPUVolumeRayCastMapper * New()
void ReplaceShaderValues(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Perform string replacements on the shader templates.
void ReleaseGraphicsResources(vtkWindow *window) override
Release any graphics resources that are being consumed by this mapper.
void ReplaceShaderShading(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Caches the vtkOpenGLRenderPass::RenderPasses() information.
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.
VolumeInputMap AssembledInputs
represent GPU shader properties
create a window for renderers to draw into
abstract specification for renderers
The ShaderProgram uses one or more Shader objects.
In case DepthTextureCompare is true, specify the comparison function in use.
represents the common properties for rendering a volume.
Creates and manages the volume texture rendered by vtkOpenGLGPUVolumeRayCastMapper.
represents a volume (data & properties) in a rendered scene
window superclass for vtkRenderWindow
vtkTypeUInt32 vtkMTimeType