Go to the documentation of this file.
51 #ifndef vtkDualDepthPeelingPass_h
52 #define vtkDualDepthPeelingPass_h
54 #include "vtkRenderingOpenGL2Module.h"
72 void PrintSelf(ostream &os,
vtkIndent indent) override;
75 void ReleaseGraphicsResources(
vtkWindow *w) override;
88 bool PreReplaceShaderValues(std::
string &vertexShader,
89 std::
string &geometryShader,
90 std::
string &fragmentShader,
93 bool PostReplaceShaderValues(std::
string &vertexShader,
94 std::
string &geometryShader,
95 std::
string &fragmentShader,
106 bool PostReplaceTranslucentShaderValues(std::
string &vertexShader,
107 std::
string &geometryShader,
108 std::
string &fragmentShader,
111 bool PreReplaceVolumetricShaderValues(std::
string &vertexShader,
112 std::
string &geometryShader,
113 std::
string &fragmentShader,
165 void FreeGLObjects();
170 void RenderTranslucentPass();
175 void RenderVolumetricPass();
177 bool IsRenderingVolumes();
199 { this->ActivateDrawBuffers(&
id, 1); }
200 template <
size_t NumTextures>
202 { this->ActivateDrawBuffers(a.data(), a.size()); }
300 #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.
const vtkRenderState * RenderState
vtkOpenGLQuadHelper * BackBlendHelper
vtkOpenGLQuadHelper * CopyDepthHelper
void StartVolumetricOcclusionQuery()
void InitializeTargetsForVolumetricPass()
void InitializeOcclusionQuery()
void PeelVolumesOutsideTranslucentRange()
unsigned int VolumetricWrittenPixels
record modification and/or execution time
vtkTimeStamp CurrentStageTimeStamp
Internal class which encapsulates OpenGL FramebufferObject.
void PeelTranslucentGeometry()
Class to make rendering a full screen quad easier.
void CopyFrontSourceToFrontDestination()
void CopyOpaqueDepthBuffer()
window superclass for vtkRenderWindow
TextureName DepthDestination
void StartTranslucentOcclusionQuery()
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 SwapFrontBufferSourceDest()
Swap the src/dest render targets:
void DeleteOcclusionQueryIds()
a simple class to control print indentation
abstracts an OpenGL texture object.
void SwapDepthBufferSourceDest()
void ClearFrontDestination()
void ActivateDrawBuffers(const TextureName *ids, size_t numTextures)
Bind and activate draw buffers.
int VolumetricRenderCount
Asynchronously measures GPU execution times for a series of events.
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 EndTranslucentOcclusionQuery()
vtkRenderTimerLog * Timer
vtkRenderPass * VolumetricPass
vtkOpenGLQuadHelper * BlendHelper
void PrepareFrontDestination()
void InitializeTargetsForTranslucentPass()
~vtkDualDepthPeelingPass() override
static vtkDualDepthPeelingPass * New()
Context in which a vtkRenderPass will render.
The VertexArrayObject class uses, or emulates, vertex array objects.
unsigned int TranslucentWrittenPixels
unsigned int VolumetricOcclusionQueryId
abstract class specifies interface to map data
vtkTypeUInt32 vtkMTimeType
vtkDualDepthPeelingPass()
Perform part of the rendering of a vtkRenderer.