Go to the documentation of this file.
60 #ifndef vtkOpenGLGPUVolumeRayCastMapper_h
61 #define vtkOpenGLGPUVolumeRayCastMapper_h
65 #include "vtkRenderingVolumeOpenGL2Module.h"
129 vtkGetMacro(CurrentPass,
int);
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 {}
263 ratio[0] = ratio[1] = ratio[2] = 1.0;
297 std::map<vtkShader::Type, vtkShader*>& shaders );
336 std::map<const vtkShader::ReplacementSpec, vtkShader::ReplacementValue>
358 #endif // vtkOpenGLGPUVolumeRayCastMapper_h
vtkGenericOpenGLResourceFreeCallback * ResourceCallback
void SetShaderParametersRenderPass()
Update parameters from RenderPass.
void ClearAllShaderReplacements()
void ReplaceShaderCropping(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void ReplaceShaderShading(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void ReplaceShaderRTT(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void PostRender(vtkRenderer *vtkNotUsed(ren), int vtkNotUsed(noOfComponents)) override
represents a volume (data & properties) in a rendered scene
void SetPartitions(unsigned short x, unsigned short y, unsigned short z)
Set a fixed number of partitions in which to split the volume during rendring.
void GetDepthImage(vtkImageData *im) override
Low level API to export the depth texture as vtkImageData in RenderToImage mode.
void ReplaceShaderBase(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void PreRender(vtkRenderer *vtkNotUsed(ren), vtkVolume *vtkNotUsed(vol), double vtkNotUsed(datasetBounds)[6], double vtkNotUsed(scalarRange)[2], int vtkNotUsed(noOfComponents), unsigned int vtkNotUsed(numberOfLevels)) override
vtkMTimeType GetRenderPassStageMTime(vtkVolume *vol)
vtkOpenGLRenderPass API
bool PreLoadData(vtkRenderer *ren, vtkVolume *vol)
Load the volume texture into GPU memory.
vtkOpenGLGPUVolumeRayCastMapper()
void DoGPURender(vtkRenderer *ren, vtkOpenGLCamera *cam, vtkShaderProgram *shaderProgram)
vtkNew< vtkInformation > LastRenderPassInfo
Caches the vtkOpenGLRenderPass::RenderPasses() information.
void ReplaceShaderCompute(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void BuildShader(vtkRenderer *ren)
char * FragmentShaderCode
vtkNew< vtkOpenGLUniforms > FragmentCustomUniforms
void BuildDepthPassShader(vtkRenderer *ren, vtkVolume *vol, int noOfComponents, int independentComponents)
~vtkOpenGLGPUVolumeRayCastMapper() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
window superclass for vtkRenderWindow
vtkNew< vtkOpenGLUniforms > VertexCustomUniforms
void ReplaceShaderRenderPass(std::map< vtkShader::Type, vtkShader * > &shaders, vtkVolume *vol, bool prePass)
abstract interface for implicit functions
void ReleaseGraphicsResources(vtkWindow *window) override
Release any graphics resources that are being consumed by this mapper.
void ReplaceShaderTermination(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void SetSharedDepthTexture(vtkTextureObject *nt)
void GPURender(vtkRenderer *ren, vtkVolume *vol) override
Handled in the subclass - the actual render method.
The ShaderProgram uses one or more Shader objects.
void ReplaceShaderCustomUniforms(std::map< vtkShader::Type, vtkShader * > &shaders)
RenderPass string replacements on shader templates called from ReplaceShaderValues.
topologically and geometrically regular array of data
a simple class to control print indentation
abstracts an OpenGL texture object.
Type
Available shader types.
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 GetReductionRatio(double *ratio) override
Ray casting performed on the GPU.
void RenderBlock(vtkRenderer *vtkNotUsed(ren), vtkVolume *vtkNotUsed(vol), unsigned int vtkNotUsed(level)) override
void ClearShaderReplacement(vtkShader::Type shaderType, const std::string &originalValue, bool replaceFirst)
void ReplaceShaderClipping(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void ReplaceShaderValues(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
Perform string replacements on the shader templates.
Creates and manages the volume texture rendered by vtkOpenGLGPUVolumeRayCastMapper.
OpenGL implementation of volume rendering through ray-casting.
void ComputeReductionFactor(double allocatedTime)
vtkTextureObject * GetColorTexture()
void ReplaceShaderPicking(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
vtkTextureObject * GetDepthTexture()
abstract specification for renderers
VolumeInputMap AssembledInputs
std::map< int, vtkVolumeInputHelper > VolumeInputMap
void GetColorImage(vtkImageData *im) override
Low level API to export the color texture as vtkImageData in RenderToImage mode.
create a window for renderers to draw into
void ReplaceShaderMasking(std::map< vtkShader::Type, vtkShader * > &shaders, vtkRenderer *ren, vtkVolume *vol, int numComps)
void GetShaderTemplate(std::map< vtkShader::Type, vtkShader * > &shaders)
Create the basic shader template strings before substitutions.
void AddShaderReplacement(vtkShader::Type shaderType, const std::string &originalValue, bool replaceFirst, const std::string &replacementValue, bool replaceAll)
This function enables you to apply your own substitutions to the shader creation process.
Container for a set of TransferFunction2D instances.
void ClearAllShaderReplacements(vtkShader::Type shaderType)
std::map< const vtkShader::ReplacementSpec, vtkShader::ReplacementValue > UserShaderReplacements
represents the common properties for rendering a volume.
vtkTypeUInt32 vtkMTimeType
static vtkOpenGLGPUVolumeRayCastMapper * New()