| VRS - The Virtual Rendering System |
| version 3.3 |
#include <vrs/opengl/shadowvolumetechniquegl.h>

Public Member Functions | |
| BaseShadowVolumeTechniqueGL () | |
| Abstract base class for shadow-volume based shadow techniques. | |
| virtual bool | isSupported (Engine *, bool verbose) const |
| VRS_TYPEINFO (BaseShadowVolumeTechniqueGL, ShadowTechniqueTemplateGL) | |
Protected Member Functions | |
| virtual void | prepareStencilingInPreparePass (Engine *) const =0 |
| virtual void | resetStencilingInFinishPass (Engine *) const =0 |
| virtual void | startHook (Engine *) |
| called by start() | |
| virtual void | stopHook (Engine *) |
| called by stop() | |
| virtual bool | preparePassHook (Engine *) |
| virtual void | finishPassHook (Engine *) |
| called by finishPass() | |
| virtual void | nextPassHook (Engine *) |
| called by nextPass() | |
| virtual bool | prepareEvalHook (Engine *engine, const Shape *shape) |
| virtual void | finishEvalHook (Engine *engine, const Shape *shape, bool render) |
| virtual void | setupShadowTest (bool onOff, Engine *) |
| virtual void | toggleShadowTest (bool receiving, Engine *) |
| VRS::BaseShadowVolumeTechniqueGL::BaseShadowVolumeTechniqueGL | ( | ) |
Abstract base class for shadow-volume based shadow techniques.
| virtual bool VRS::BaseShadowVolumeTechniqueGL::isSupported | ( | Engine * | , | |
| bool | verbose | |||
| ) | const [virtual] |
Shadow volumes require a stencil buffer, and ARB vertex programs. Models which cast shadows must provide normals and should be well tesselated.
Implements VRS::ShadowTechniqueTemplateGL.
Reimplemented in VRS::TwoSidedShadowVolumeTechniqueGL.
| VRS::BaseShadowVolumeTechniqueGL::VRS_TYPEINFO | ( | BaseShadowVolumeTechniqueGL | , | |
| ShadowTechniqueTemplateGL | ||||
| ) |
| virtual void VRS::BaseShadowVolumeTechniqueGL::prepareStencilingInPreparePass | ( | Engine * | ) | const [protected, pure virtual] |
Implements a template pattern for concrete derived classes. In this method, they set up stencil settings for rendering passes in which stencil volumes are rendered.
Implemented in VRS::ShadowVolumeTechniqueGL, and VRS::TwoSidedShadowVolumeTechniqueGL.
| virtual void VRS::BaseShadowVolumeTechniqueGL::resetStencilingInFinishPass | ( | Engine * | ) | const [protected, pure virtual] |
Implements a template pattern for concrete derived classes. In this method, they reset stencil settings for rendering passes in which stencil volumes are rendered.
Implemented in VRS::ShadowVolumeTechniqueGL, and VRS::TwoSidedShadowVolumeTechniqueGL.
| virtual void VRS::BaseShadowVolumeTechniqueGL::startHook | ( | Engine * | ) | [protected, virtual] |
| virtual void VRS::BaseShadowVolumeTechniqueGL::stopHook | ( | Engine * | ) | [protected, virtual] |
| virtual bool VRS::BaseShadowVolumeTechniqueGL::preparePassHook | ( | Engine * | ) | [protected, virtual] |
called by preparePass(). If the result is true, the pass will be evaluated in any case. If the result is false, it is up to the ShadowTechniqueTemplateGL base technique whether the pass is evaluated or not. (see preparePass() )
Implements VRS::ShadowTechniqueTemplateGL.
Reimplemented in VRS::TwoSidedShadowVolumeTechniqueGL.
| virtual void VRS::BaseShadowVolumeTechniqueGL::finishPassHook | ( | Engine * | ) | [protected, virtual] |
called by finishPass()
Implements VRS::ShadowTechniqueTemplateGL.
Reimplemented in VRS::TwoSidedShadowVolumeTechniqueGL.
| virtual void VRS::BaseShadowVolumeTechniqueGL::nextPassHook | ( | Engine * | ) | [protected, virtual] |
| virtual bool VRS::BaseShadowVolumeTechniqueGL::prepareEvalHook | ( | Engine * | , | |
| const Shape * | ||||
| ) | [protected, virtual] |
called by prepareEval(). If the result is false, the shape will not be rendered in any case. If the result is true, it is up to the ShadowTechniqueTemplateGL base technique whether the shape is rendered or not (see prepareEval() )
Implements VRS::ShadowTechniqueTemplateGL.
| virtual void VRS::BaseShadowVolumeTechniqueGL::finishEvalHook | ( | Engine * | , | |
| const Shape * | , | |||
| bool | render | |||
| ) | [protected, virtual] |
called by finishEval(). render contains the information whether the shape has been rendered or not.
Implements VRS::ShadowTechniqueTemplateGL.
| virtual void VRS::BaseShadowVolumeTechniqueGL::setupShadowTest | ( | bool | onOff, | |
| Engine * | ||||
| ) | [protected, virtual] |
For SIMPLESHADOWADDLIGHT pass, if onOff is true, sets up opengl stenciling and/or blending function in a way that only fragments in light are rendered. If onOff is false, the settings are undone.
Implements VRS::ShadowTechniqueTemplateGL.
| virtual void VRS::BaseShadowVolumeTechniqueGL::toggleShadowTest | ( | bool | receiving, | |
| Engine * | ||||
| ) | [protected, virtual] |
For SIMPLESHADOWADDLIGHT pass, enables resp. disables the fragment check for shadowed regions.
Implements VRS::ShadowTechniqueTemplateGL.