|  | VTK
    9.0.1
    | 
 
 
 
Go to the documentation of this file.
   51 #ifndef vtkDualDepthPeelingPass_h 
   52 #define vtkDualDepthPeelingPass_h 
   55 #include "vtkRenderingOpenGL2Module.h"  
   82   vtkGetObjectMacro(VolumetricPass, 
vtkRenderPass) 
virtual void SetVolumetricPass(
 
  140   void SetCurrentStage(ShaderStage stage);
 
  141   vtkSetMacro(CurrentPeelType, PeelType);
 
  146   void FreeGLObjects();
 
  151   void RenderTranslucentPass();
 
  156   void RenderVolumetricPass();
 
  158   bool IsRenderingVolumes();
 
  180   template <
size_t NumTextures>
 
  183     this->ActivateDrawBuffers(a.data(), a.size());
 
  185   void ActivateDrawBuffers(
const TextureName* ids, 
size_t numTextures);
 
  193   void InitializeOcclusionQuery();
 
  194   void CopyOpaqueDepthBuffer();
 
  195   void InitializeDepth();
 
  197   void PeelVolumesOutsideTranslucentRange();
 
  209   void PrepareFrontDestination();
 
  210   void ClearFrontDestination();
 
  211   void CopyFrontSourceToFrontDestination();
 
  213   void InitializeTargetsForTranslucentPass();
 
  214   void InitializeTargetsForVolumetricPass();
 
  216   void PeelTranslucentGeometry();
 
  217   void PeelVolumetricGeometry();
 
  219   void BlendBackBuffer();
 
  221   void StartTranslucentOcclusionQuery();
 
  222   void EndTranslucentOcclusionQuery();
 
  224   void StartVolumetricOcclusionQuery();
 
  225   void EndVolumetricOcclusionQuery();
 
  230   void SwapFrontBufferSourceDest();
 
  231   void SwapDepthBufferSourceDest();
 
  235   void AlphaBlendRender();
 
  237   void BlendFinalImage();
 
  238   void DeleteOcclusionQueryIds();
 
  282 #endif // vtkDualDepthPeelingPass_h 
  
TextureName FrontDestination
virtual vtkMTimeType GetShaderStageMTime()
For multi-stage render passes that need to change shader code during a single pass,...
bool SaveScissorTestState
unsigned int TranslucentOcclusionQueryId
Implements the dual depth peeling algorithm.
void ActivateDrawBuffers(const std::array< TextureName, NumTextures > &a)
Bind and activate draw buffers.
static vtkDepthPeelingPass * New()
Implement Depth Peeling for use within a framebuffer pass.
const vtkRenderState * RenderState
vtkOpenGLQuadHelper * BackBlendHelper
vtkOpenGLQuadHelper * CopyDepthHelper
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
unsigned int VolumetricWrittenPixels
record modification and/or execution time
vtkTimeStamp CurrentStageTimeStamp
virtual bool PreReplaceShaderValues(std::string &vertexShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkProp *prop)
Use vtkShaderProgram::Substitute to replace //VTK::XXX:YYY declarations in the shader sources.
Internal class which encapsulates OpenGL FramebufferObject.
Class to make rendering a full screen quad easier.
window superclass for vtkRenderWindow
TextureName DepthDestination
unsigned int OcclusionThreshold
The ShaderProgram uses one or more Shader objects.
a simple class to control print indentation
abstracts an OpenGL texture object.
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.
int VolumetricRenderCount
Asynchronously measures GPU execution times for a series of events.
vtkOpenGLQuadHelper * CopyColorHelper
void Render(const vtkRenderState *s) override
Perform rendering according to a render state s.
int TranslucentRenderCount
abstract superclass for all actors, volumes and annotations
vtkRenderTimerLog * Timer
vtkRenderPass * VolumetricPass
vtkOpenGLQuadHelper * BlendHelper
void ActivateDrawBuffer(TextureName id)
Bind and activate draw buffers.
bool SetShaderParameters(vtkShaderProgram *program, vtkAbstractMapper *mapper, vtkProp *prop, vtkOpenGLVertexArrayObject *VAO=nullptr) override
Update the uniforms of the shader program.
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
Perform part of the rendering of a vtkRenderer.