#include <vtkShadowMapPass.h>
Render the opaque polygonal geometry of a scene with shadow maps (a technique to render hard shadows in hardware).
This pass expects an initialized depth buffer and color buffer. Initialized buffers means they have been cleared with farest z-value and background color/gradient/transparent color. An opaque pass may have been performed right after the initialization.
Its delegate is usually set to a vtkOpaquePass.
Definition at line 62 of file vtkShadowMapPass.h.
vtkShadowMapPass::vtkShadowMapPass | ( | ) | [protected] |
Default constructor. DelegatetPass is set to NULL.
virtual vtkShadowMapPass::~vtkShadowMapPass | ( | ) | [protected, virtual] |
Destructor.
static vtkShadowMapPass* vtkShadowMapPass::New | ( | ) | [static] |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkObject.
virtual const char* vtkShadowMapPass::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkRenderPass.
static int vtkShadowMapPass::IsTypeOf | ( | const char * | name | ) | [static] |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkRenderPass.
virtual int vtkShadowMapPass::IsA | ( | const char * | name | ) | [virtual] |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkRenderPass.
static vtkShadowMapPass* vtkShadowMapPass::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkRenderPass.
void vtkShadowMapPass::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) | [virtual] |
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkRenderPass.
static vtkInformationIntegerKey* vtkShadowMapPass::OCCLUDER | ( | ) | [static] |
If this key exists on the PropertyKeys of a prop, the prop is viewed as a light occluder (ie it casts shadows). This key is not mutually exclusive with the RECEIVER() key.
static vtkInformationIntegerKey* vtkShadowMapPass::RECEIVER | ( | ) | [static] |
virtual void vtkShadowMapPass::Render | ( | const vtkRenderState * | s | ) | [virtual] |
Perform rendering according to a render state s
.
Implements vtkRenderPass.
void vtkShadowMapPass::ReleaseGraphicsResources | ( | vtkWindow * | w | ) | [virtual] |
Release graphics resources and ask components to release their own resources.
Reimplemented from vtkRenderPass.
virtual vtkRenderPass* vtkShadowMapPass::GetOpaquePass | ( | ) | [virtual] |
Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.
virtual void vtkShadowMapPass::SetOpaquePass | ( | vtkRenderPass * | opaquePass | ) | [virtual] |
Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.
virtual vtkRenderPass* vtkShadowMapPass::GetCompositeZPass | ( | ) | [virtual] |
Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.
virtual void vtkShadowMapPass::SetCompositeZPass | ( | vtkRenderPass * | opaquePass | ) | [virtual] |
Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.
virtual void vtkShadowMapPass::SetResolution | ( | unsigned | int | ) | [virtual] |
Set/Get the number of pixels in each dimension of the shadow maps (shadow maps are square). Initial value is 256. The greater the better. Resolution does not have to be a power-of-two value.
virtual unsigned int vtkShadowMapPass::GetResolution | ( | ) | [virtual] |
Set/Get the number of pixels in each dimension of the shadow maps (shadow maps are square). Initial value is 256. The greater the better. Resolution does not have to be a power-of-two value.
virtual void vtkShadowMapPass::SetPolygonOffsetFactor | ( | float | ) | [virtual] |
Factor used to scale the maximum depth slope of a polygon (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetUnits to solve self-shadowing. Valid values can be either positive or negative. Initial value is 1.1f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 3.1f works well with the regression test.
virtual float vtkShadowMapPass::GetPolygonOffsetFactor | ( | ) | [virtual] |
Factor used to scale the maximum depth slope of a polygon (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetUnits to solve self-shadowing. Valid values can be either positive or negative. Initial value is 1.1f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 3.1f works well with the regression test.
virtual void vtkShadowMapPass::SetPolygonOffsetUnits | ( | float | ) | [virtual] |
Factor used to scale an implementation dependent constant that relates to the usable resolution of the depth buffer (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetFactor to solve self-shadowing. Valid values can be either positive or negative. Initial value is 4.0f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 10.0f works well with the regression test.
virtual float vtkShadowMapPass::GetPolygonOffsetUnits | ( | ) | [virtual] |
Factor used to scale an implementation dependent constant that relates to the usable resolution of the depth buffer (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetFactor to solve self-shadowing. Valid values can be either positive or negative. Initial value is 4.0f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 10.0f works well with the regression test.
void vtkShadowMapPass::BuildCameraLight | ( | vtkLight * | light, | |
double * | boundingBox, | |||
vtkCamera * | lcamera | |||
) | [protected] |
Build a camera from spot light parameters.
light_is_spotlight: light->GetConeAngle()<180.0
camera_exists: camera!=0
void vtkShadowMapPass::BuildSpotLightIntensityMap | ( | ) | [protected] |
Build the intensity map.
void vtkShadowMapPass::CheckSupport | ( | vtkOpenGLRenderWindow * | w | ) | [protected] |
Check if shadow mapping is supported by the current OpenGL context.
vtkRenderPass* vtkShadowMapPass::OpaquePass [protected] |
Definition at line 165 of file vtkShadowMapPass.h.
vtkRenderPass* vtkShadowMapPass::CompositeZPass [protected] |
Definition at line 166 of file vtkShadowMapPass.h.
unsigned int vtkShadowMapPass::Resolution [protected] |
Definition at line 167 of file vtkShadowMapPass.h.
float vtkShadowMapPass::PolygonOffsetFactor [protected] |
Definition at line 169 of file vtkShadowMapPass.h.
float vtkShadowMapPass::PolygonOffsetUnits [protected] |
Definition at line 170 of file vtkShadowMapPass.h.
vtkFrameBufferObject* vtkShadowMapPass::FrameBufferObject [protected] |
Graphics resources.
Definition at line 173 of file vtkShadowMapPass.h.
vtkShadowMapPassTextures* vtkShadowMapPass::ShadowMaps [protected] |
Definition at line 175 of file vtkShadowMapPass.h.
vtkShadowMapPassLightCameras* vtkShadowMapPass::LightCameras [protected] |
Definition at line 176 of file vtkShadowMapPass.h.
vtkShaderProgram2* vtkShadowMapPass::Program [protected] |
Definition at line 177 of file vtkShadowMapPass.h.
vtkTextureObject* vtkShadowMapPass::IntensityMap [protected] |
Definition at line 179 of file vtkShadowMapPass.h.
vtkSampleFunction* vtkShadowMapPass::IntensitySource [protected] |
Definition at line 182 of file vtkShadowMapPass.h.
vtkImageExport* vtkShadowMapPass::IntensityExporter [protected] |
Definition at line 183 of file vtkShadowMapPass.h.
vtkImplicitHalo* vtkShadowMapPass::Halo [protected] |
Definition at line 184 of file vtkShadowMapPass.h.
vtkTimeStamp vtkShadowMapPass::LastRenderTime [protected] |
Definition at line 186 of file vtkShadowMapPass.h.