16 #ifndef vtkOpenGLGPUVolumeRayCastMapper_h 17 #define vtkOpenGLGPUVolumeRayCastMapper_h 21 #include "vtkRenderingVolumeOpenGL2Module.h" 81 vtkGetMacro(CurrentPass,
int);
91 vtkSetVector2Macro(NoiseTextureSize,
int);
99 void SetPartitions(
unsigned short x,
unsigned short y,
unsigned short z);
119 void AddShaderReplacement(
125 void ClearShaderReplacement(
138 vtkSetStringMacro(VertexShaderCode);
140 vtkSetStringMacro(FragmentShaderCode);
158 int independentComponents);
168 double vtkNotUsed(datasetBounds)[6],
169 double vtkNotUsed(scalarRange)[2],
170 int vtkNotUsed(noOfComponents),
171 unsigned int vtkNotUsed(numberOfLevels))
override {};
176 unsigned int vtkNotUsed(
level))
override {}
179 int vtkNotUsed(noOfComponents))
override {}
192 int independentComponents);
203 void ComputeReductionFactor(
double allocatedTime);
209 ratio[0] = ratio[1] = ratio[2] = 1.0;
230 void GetShaderTemplate(std::map<vtkShader::Type, vtkShader*>& shaders);
235 void ReplaceShaderValues(std::map<vtkShader::Type, vtkShader*>& shaders,
242 void ReplaceShaderBase(std::map<vtkShader::Type, vtkShader*>& shaders,
244 void ReplaceShaderTermination(std::map<vtkShader::Type, vtkShader*>& shaders,
246 void ReplaceShaderShading(std::map<vtkShader::Type, vtkShader*>& shaders,
248 void ReplaceShaderCompute(std::map<vtkShader::Type, vtkShader*>& shaders,
250 void ReplaceShaderCropping(std::map<vtkShader::Type, vtkShader*>& shaders,
252 void ReplaceShaderClipping(std::map<vtkShader::Type, vtkShader*>& shaders,
254 void ReplaceShaderMasking(std::map<vtkShader::Type, vtkShader*>& shaders,
256 void ReplaceShaderPicking(std::map<vtkShader::Type, vtkShader*>& shaders,
258 void ReplaceShaderRTT(std::map<vtkShader::Type, vtkShader*>& shaders,
260 void ReplaceShaderRenderPass(std::map<vtkShader::Type, vtkShader*>& shaders,
266 void SetShaderParametersRenderPass(
vtkVolume* vol);
276 double ReductionFactor;
280 std::map<const vtkShader::ReplacementSpec, vtkShader::ReplacementValue>
291 int NoiseTextureSize[2];
298 #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
std::map< const vtkShader::ReplacementSpec, vtkShader::ReplacementValue > UserShaderReplacements
vtkGenericOpenGLResourceFreeCallback * ResourceCallback
vtkTypeUInt32 vtkMTimeType
Creates and manages the volume texture rendered by vtkOpenGLGPUVolumeRayCastMapper.
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 subclass that draws the image to the screen.
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
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
represents the common properties for rendering a volume.
abstracts an OpenGL texture object.
create a window for renderers to draw into
char * FragmentShaderCode
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()
vtkNew< vtkInformation > LastRenderPassInfo
Caches the vtkOpenGLRenderPass::RenderPasses() information.
The ShaderProgram uses one or more Shader objects.