70#ifndef vtkShadowMapPass_h
71#define vtkShadowMapPass_h
74#include "vtkRenderingOpenGL2Module.h"
82class vtkFrameBufferObject;
83class vtkShadowMapPassTextures;
84class vtkShadowMapPassLightCameras;
abstract class specifies interface to map data
a virtual camera for 3D rendering
a simple class to control print indentation
a virtual light for 3D rendering
Abstract render pass with shader modifications.
The VertexArrayObject class uses, or emulates, vertex array objects.
abstract superclass for all actors, volumes and annotations
Perform part of the rendering of a vtkRenderer.
Context in which a vtkRenderPass will render.
The ShaderProgram uses one or more Shader objects.
Implement a builder of shadow map pass.
Implement a shadow mapping render pass.
std::vector< int > ShadowTextureUnits
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::vector< int > ShadowParallel
std::vector< float > ShadowAttenuation
std::string FragmentDeclaration
static vtkShadowMapPass * New()
std::vector< int > GetShadowMapTextureUnits()
get the texture units for the shadow maps for each light.
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
vtkShadowMapPassLightCameras * LightCameras
std::string FragmentImplementation
vtkShadowMapBakerPass * ShadowMapBakerPass
bool PreReplaceShaderValues(std::string &vertexShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkProp *prop) override
Use vtkShaderProgram::Substitute to replace.
vtkRenderPass * OpaqueSequence
virtual void SetOpaqueSequence(vtkRenderPass *opaqueSequence)
Pass that render the lights and opaque geometry Typically a sequence pass with a light pass and opaqu...
void CheckSupport(vtkOpenGLRenderWindow *w)
Check if shadow mapping is supported by the current OpenGL context.
virtual void SetShadowMapBakerPass(vtkShadowMapBakerPass *shadowMapBakerPass)
Pass that generates the shadow maps.
static vtkInformationObjectBaseKey * ShadowMapPass()
this key will contain the shadow map pass
bool SetShaderParameters(vtkShaderProgram *program, vtkAbstractMapper *mapper, vtkProp *prop, vtkOpenGLVertexArrayObject *VAO=nullptr) override
Update the uniforms of the shader program.
vtkFrameBufferObject * FrameBufferObject
Graphics resources.
std::string GetFragmentDeclaration()
Get the shader code to compute light factors based on a mappers vertexVC variable.
vtkShadowMapPassTextures * ShadowMaps
~vtkShadowMapPass() override
Destructor.
std::vector< double > ShadowTransforms
void Render(const vtkRenderState *s) override
Perform rendering according to a render state s.
std::vector< double > ShadowMapTransforms()
get the matricies for all the shadow maps.
std::string GetFragmentImplementation()
vtkRenderPass * CompositeRGBAPass
bool PostReplaceShaderValues(std::string &vertexShader, std::string &geometryShader, std::string &fragmentShader, vtkAbstractMapper *mapper, vtkProp *prop) override
Use vtkShaderProgram::Substitute to replace.
vtkShadowMapPass()
Default constructor.
vtkTimeStamp LastRenderTime
record modification and/or execution time
window superclass for vtkRenderWindow