61#ifndef vtkOpenGLGPUVolumeRayCastMapper_h
62#define vtkOpenGLGPUVolumeRayCastMapper_h
67#include "vtkRenderingVolumeOpenGL2Module.h"
72VTK_ABI_NAMESPACE_BEGIN
76class vtkOpenGLTransferFunctions2D;
77class vtkOpenGLVolumeGradientOpacityTables;
78class vtkOpenGLVolumeOpacityTables;
79class vtkOpenGLVolumeRGBTables;
181 double vtkNotUsed(datasetBounds)[6],
double vtkNotUsed(scalarRange)[2],
182 int vtkNotUsed(noOfComponents),
unsigned int vtkNotUsed(numberOfLevels))
override
188 unsigned int vtkNotUsed(level))
override
250 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
259 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
261 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
263 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
265 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
267 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
269 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
271 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
273 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
275 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
277 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.
int IsRenderSupported(vtkRenderWindow *window, vtkVolumeProperty *property) override
Based on hardware and properties, we may or may not be able to render using 3D texture mapping.
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 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 SetSharedDepthTexture(vtkTextureObject *nt)
void RenderBlock(vtkRenderer *ren, vtkVolume *vol, unsigned int level) override
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 PreRender(vtkRenderer *ren, vtkVolume *vol, double datasetBounds[6], double scalarRange[2], int noOfComponents, unsigned int numberOfLevels) override
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.
void PostRender(vtkRenderer *ren, int noOfComponents) override
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