61 #ifndef vtkOpenGLGPUVolumeRayCastMapper_h
62 #define vtkOpenGLGPUVolumeRayCastMapper_h
67 #include "vtkRenderingVolumeOpenGL2Module.h"
72 VTK_ABI_NAMESPACE_BEGIN
76 class vtkOpenGLTransferFunctions2D;
77 class vtkOpenGLVolumeGradientOpacityTables;
78 class vtkOpenGLVolumeOpacityTables;
79 class vtkOpenGLVolumeRGBTables;
131 vtkGetMacro(CurrentPass,
int);
146 void SetPartitions(
unsigned short x,
unsigned short y,
unsigned short z);
171 void BuildDepthPassShader(
181 double vtkNotUsed(datasetBounds)[6],
double vtkNotUsed(scalarRange)[2],
182 int vtkNotUsed(noOfComponents),
unsigned int vtkNotUsed(numberOfLevels))
override
188 unsigned int vtkNotUsed(
level))
override
212 void ComputeReductionFactor(
double allocatedTime);
243 void GetShaderTemplate(
249 void ReplaceShaderValues(
250 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
256 void ReplaceShaderCustomUniforms(
258 void ReplaceShaderBase(
259 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
260 void ReplaceShaderTermination(
261 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
262 void ReplaceShaderShading(
263 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
264 void ReplaceShaderCompute(
265 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
266 void ReplaceShaderCropping(
267 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
268 void ReplaceShaderClipping(
269 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
270 void ReplaceShaderMasking(
271 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
272 void ReplaceShaderPicking(
273 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
274 void ReplaceShaderRTT(
275 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkRenderer* ren,
vtkVolume* vol,
int numComps);
276 void ReplaceShaderRenderPass(
277 std::map<vtkShader::Type, vtkShader*>& shaders,
vtkVolume* vol,
bool prePass);
282 void SetShaderParametersRenderPass();
310 VTK_ABI_NAMESPACE_END
311 #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
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.
virtual void GetColorImage(vtkImageData *)
Low level API to export the color texture as vtkImageData in RenderToImage mode.
abstract specification for renderers
represent GPU shader properties
void PreRender(vtkRenderer *ren, vtkVolume *vol, double datasetBounds[6], double scalarRange[2], int noOfComponents, unsigned int numberOfLevels) override
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 PostRender(vtkRenderer *ren, int noOfComponents) override
virtual void GetReductionRatio(double ratio[3])=0
Return how much the dataset has to be reduced in each dimension to fit on the GPU.
void RenderBlock(vtkRenderer *ren, vtkVolume *vol, unsigned int level) override
represents the common properties for rendering a volume.
abstracts an OpenGL texture object.
create a window for renderers to draw into
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Ray casting performed on the GPU.
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...
static vtkGPUVolumeRayCastMapper * New()
VolumeInputMap AssembledInputs
vtkNew< vtkInformation > LastRenderPassInfo
Caches the vtkOpenGLRenderPass::RenderPasses() information.
The ShaderProgram uses one or more Shader objects.