 |
VTK
9.0.1
|
Go to the documentation of this file.
51 #ifndef vtkDualDepthPeelingPass_h
52 #define vtkDualDepthPeelingPass_h
55 #include "vtkRenderingOpenGL2Module.h"
180 template <
size_t NumTextures>
183 this->ActivateDrawBuffers(a.data(), a.size());
282 #endif // vtkDualDepthPeelingPass_h
TextureName FrontDestination
bool SaveScissorTestState
unsigned int TranslucentOcclusionQueryId
Implements the dual depth peeling algorithm.
void ActivateDrawBuffers(const std::array< TextureName, NumTextures > &a)
Bind and activate draw buffers.
Implement Depth Peeling for use within a framebuffer pass.
bool IsRenderingVolumes()
const vtkRenderState * RenderState
vtkOpenGLQuadHelper * BackBlendHelper
vtkOpenGLQuadHelper * CopyDepthHelper
void StartVolumetricOcclusionQuery()
void InitializeTargetsForVolumetricPass()
bool SetTranslucentShaderParameters(vtkShaderProgram *program, vtkAbstractMapper *mapper, vtkProp *prop, vtkOpenGLVertexArrayObject *VAO)
void InitializeOcclusionQuery()
void PeelVolumesOutsideTranslucentRange()
unsigned int VolumetricWrittenPixels
record modification and/or execution time
vtkTimeStamp CurrentStageTimeStamp
void FreeGLObjects()
Release all FBOs and textures.
Internal class which encapsulates OpenGL FramebufferObject.
bool PostReplaceTranslucentShaderValues(std::string &vertexShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkProp *prop)
void PeelTranslucentGeometry()
Class to make rendering a full screen quad easier.
void CopyFrontSourceToFrontDestination()
void CopyOpaqueDepthBuffer()
void InitColorTexture(vtkTextureObject *tex, const vtkRenderState *s)
Initialize helpers.
void RenderTranslucentPass()
Render the translucent pass geometry, counting number of render calls.
window superclass for vtkRenderWindow
void InitFramebuffer(const vtkRenderState *s)
TextureName DepthDestination
void InitOpaqueDepthTexture(vtkTextureObject *tex, const vtkRenderState *s)
void StartTranslucentOcclusionQuery()
void Render(const vtkRenderState *s) override
Perform rendering according to a render state s.
void Peel()
Render the scene to produce the next set of peels.
unsigned int OcclusionThreshold
The ShaderProgram uses one or more Shader objects.
void EndVolumetricOcclusionQuery()
void PeelVolumetricGeometry()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SwapFrontBufferSourceDest()
Swap the src/dest render targets:
void DeleteOcclusionQueryIds()
a simple class to control print indentation
abstracts an OpenGL texture object.
void SwapDepthBufferSourceDest()
vtkMTimeType GetShaderStageMTime() override
For multi-stage render passes that need to change shader code during a single pass,...
void ClearFrontDestination()
bool PostReplaceShaderValues(std::string &vertexShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkProp *prop) override
Use vtkShaderProgram::Substitute to replace //VTK::XXX:YYY declarations in the shader sources.
bool PreReplaceVolumetricShaderValues(std::string &vertexShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkProp *prop)
bool SetVolumetricShaderParameters(vtkShaderProgram *program, vtkAbstractMapper *mapper, vtkProp *prop, vtkOpenGLVertexArrayObject *VAO)
void ActivateDrawBuffers(const TextureName *ids, size_t numTextures)
Bind and activate draw buffers.
int VolumetricRenderCount
virtual void SetVolumetricPass(vtkRenderPass *volumetricPass)
Asynchronously measures GPU execution times for a series of events.
void InitDepthTexture(vtkTextureObject *tex, const vtkRenderState *s)
vtkOpenGLQuadHelper * CopyColorHelper
int TranslucentRenderCount
void SetCurrentStage(ShaderStage stage)
abstract superclass for all actors, volumes and annotations
void Prepare()
Fill textures with initial values, bind the framebuffer.
void RenderVolumetricPass()
Render any volumetric geometry.
void EndTranslucentOcclusionQuery()
vtkRenderTimerLog * Timer
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
vtkRenderPass * VolumetricPass
vtkOpenGLQuadHelper * BlendHelper
void PrepareFrontDestination()
void ActivateDrawBuffer(TextureName id)
Bind and activate draw buffers.
void InitializeTargetsForTranslucentPass()
bool SetShaderParameters(vtkShaderProgram *program, vtkAbstractMapper *mapper, vtkProp *prop, vtkOpenGLVertexArrayObject *VAO=nullptr) override
Update the uniforms of the shader program.
~vtkDualDepthPeelingPass() override
bool PreReplaceShaderValues(std::string &vertexShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkProp *prop) override
Use vtkShaderProgram::Substitute to replace //VTK::XXX:YYY declarations in the shader sources.
static vtkDualDepthPeelingPass * New()
Context in which a vtkRenderPass will render.
The VertexArrayObject class uses, or emulates, vertex array objects.
void Initialize(const vtkRenderState *state)
Allocate and configure FBOs and textures.
unsigned int TranslucentWrittenPixels
unsigned int VolumetricOcclusionQueryId
abstract class specifies interface to map data
vtkTypeUInt32 vtkMTimeType
vtkDualDepthPeelingPass()
Perform part of the rendering of a vtkRenderer.