 |
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.