61 #ifndef vtkShadowMapPass_h
62 #define vtkShadowMapPass_h
65 #include "vtkRenderingOpenGL2Module.h"
69 VTK_ABI_NAMESPACE_BEGIN
74 class vtkFrameBufferObject;
75 class vtkShadowMapPassTextures;
76 class vtkShadowMapPassLightCameras;
200 VTK_ABI_NAMESPACE_END
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::vector< double > ShadowMapTransforms()
get the matricies for all the shadow maps.
std::string FragmentDeclaration
void ReleaseGraphicsResources(vtkWindow *w) override
Release graphics resources and ask components to release their own resources.
static vtkInformationObjectBaseKey * ShadowMapPass()
this key will contain the shadow map pass
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.
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
std::vector< int > GetShadowMapTextureUnits()
get the texture units for the shadow maps for each light.
~vtkShadowMapPass() override
Destructor.
std::vector< double > ShadowTransforms
void Render(const vtkRenderState *s) override
Perform rendering according to a render state s.
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.
static vtkShadowMapPass * New()
vtkShadowMapPass()
Default constructor.
vtkTimeStamp LastRenderTime
record modification and/or execution time
window superclass for vtkRenderWindow