![]() |
VR-Forces 4.3 Class Documentation
|
This class provides the OSG-specific implementation of a post processor. More...

Public Member Functions | |
| DtPostProcessor (const std::string &postProcessType, bool handles2D) | |
| CTOR. | |
| virtual | ~DtPostProcessor () |
| DTOR. | |
| void | setFragmentShaderSource (const char *source) |
| Sets fragment shader source for this post-processor. | |
| void | setFragmentShaderFile (const std::string &fileName) |
| Sets fragment shader file for this post-processor. | |
| void | setInputTexture (const DtChannel *channel, osg::Texture2D *texture) |
| Sets the image that is postprocessed; this may be the 3D scene rendered to a texture, or the output texture of a chained post processor. | |
| virtual void | update (DtChannel *channel)=0 |
| Called once per frame, per channel. | |
| osg::Texture2D * | outputTexture () |
| Gets the output texture of this post processor, for use in chaining processors together. | |
| void | setIsFinalEffect (const DtChannel *channel, bool final) |
| Called by the DtOsgPostProcessManager to indicate if this is the last post processor in the chain, and should render to the framebuffer. | |
| osg::Camera * | cameraForChannel (const DtChannel *channel) |
| Gets the Camera node associated with this effect and channel. | |
| virtual void | releaseGLObjects () |
| bool | hasEffect (std::string effect) |
| Does this post processor support this effect? | |
| bool | effectEnabled (std::string effect) |
| Is this effect (post processor sub-component) enabled? | |
| bool | anyEffectEnabled () |
| Are any effects enabled? | |
| std::list< std::string > | supportedEffects () |
| Get a list of supported effects for this post processor. | |
| bool | handles2D () const |
| Retrieves whether this post processor should be used in 2D orthographic views, as specified in its constructor. | |
| const std::string & | type () const |
| Gets the type of the post processor. | |
| bool | postProcessorEnabled () const |
| Is this post processor enabled? | |
| virtual bool | enableEffect (std::string effect) |
| Enable a particular post processing technique For example, "wateroncamera" has techniques "rainsplash", "oceanspray", and "wavesplash". | |
| virtual bool | disableEffect (std::string effect) |
| Enable a particular post processing technique For example, "wateroncamera" has techniques "rainsplash", "oceanspray", and "wavesplash". | |
| virtual void | enablePostProcessor () |
| Enable or disable the post processor. | |
| virtual void | disablePostProcessor () |
| Enable or disable the post processor. | |
Protected Types | |
| typedef std::map< const DtChannel *, osg::ref_ptr < osg::Camera > > | CameraMap |
| typedef boost::unordered_map < std::string, bool > | EffectMap |
Protected Member Functions | |
| void | initialize () |
| void | addEffect (std::string effect) |
| When constructing a post processor, add the names of the sub-components (effects) that can be enabled and disabled. | |
| void | setEnablePostProcessor (bool enabled) |
| Set the post processor enabled state (true = enabled) | |
Protected Attributes | |
| osg::ref_ptr< osg::Texture2D > | myOutputTexture |
| osg::ref_ptr< osg::Texture2D > | myInputTexture |
| osg::ref_ptr< osg::Program > | myProgram |
| osg::ref_ptr< osg::Shader > | myFragmentShader |
| osg::ref_ptr< osg::Geode > | myQuad |
| char * | myCustomFragmentSource |
| CameraMap | myCameraMap |
| bool | myHandles2DFlag |
| bool | myEnabledFlag |
| std::string | myType |
| EffectMap | myEffects |
Friends | |
| class | DtOsgPostProcessManager |
This class provides the OSG-specific implementation of a post processor.
A post processor has a type (ex. "wateronscreen") and a list of effects which are components that can be turned on or off (ex. "oceanspray", "rainsplash"). A post processor should register at least one effect. The post processor order is created in the DtPostProcessorFactory On channel creation, the DtPostProcessManager will create an instance of each post processor added to the factory's post processor list.
|
protected |
|
protected |
| makVrv::DtPostProcessor::DtPostProcessor | ( | const std::string & | postProcessType, |
| bool | handles2D | ||
| ) |
CTOR.
| handles2D | Whether this post processor should be used in 2D orthographic views. |
|
virtual |
DTOR.
| void makVrv::DtPostProcessor::setFragmentShaderSource | ( | const char * | source | ) |
Sets fragment shader source for this post-processor.
The following uniforms will be automatically set for you: sampler2D inputImage; float aspectRatio; // (width over height) float fovy; // Vertical field of view (radians)
| void makVrv::DtPostProcessor::setFragmentShaderFile | ( | const std::string & | fileName | ) |
Sets fragment shader file for this post-processor.
The following uniforms will be automatically set for you: sampler2D inputImage; float aspectRatio; // (width over height) float fovy; // Vertical field of view (radians)
| void makVrv::DtPostProcessor::setInputTexture | ( | const DtChannel * | channel, |
| osg::Texture2D * | texture | ||
| ) |
Sets the image that is postprocessed; this may be the 3D scene rendered to a texture, or the output texture of a chained post processor.
Managed by the DtOsgPostProcessManager, you shouldn't need to call this yourself.
|
pure virtual |
Called once per frame, per channel.
Implemented in makVrv::DtSenSimPostProcessor, makVrv::DtWaterOnScreen, and makVrv::DtDepthOfField.
| osg::Texture2D* makVrv::DtPostProcessor::outputTexture | ( | ) |
Gets the output texture of this post processor, for use in chaining processors together.
It may be null if this is the last post processor, rendering directly to the frame buffer.
Called by the DtOsgPostProcessManager to indicate if this is the last post processor in the chain, and should render to the framebuffer.
| osg::Camera* makVrv::DtPostProcessor::cameraForChannel | ( | const DtChannel * | channel | ) |
Gets the Camera node associated with this effect and channel.
Use their statesets to set shader uniforms for your effect.
|
virtual |
| bool makVrv::DtPostProcessor::hasEffect | ( | std::string | effect | ) |
Does this post processor support this effect?
| bool makVrv::DtPostProcessor::effectEnabled | ( | std::string | effect | ) |
Is this effect (post processor sub-component) enabled?
| bool makVrv::DtPostProcessor::anyEffectEnabled | ( | ) |
Are any effects enabled?
|
virtual |
Enable a particular post processing technique For example, "wateroncamera" has techniques "rainsplash", "oceanspray", and "wavesplash".
|
virtual |
Enable a particular post processing technique For example, "wateroncamera" has techniques "rainsplash", "oceanspray", and "wavesplash".
| std::list<std::string> makVrv::DtPostProcessor::supportedEffects | ( | ) |
Get a list of supported effects for this post processor.
| bool makVrv::DtPostProcessor::handles2D | ( | ) | const |
Retrieves whether this post processor should be used in 2D orthographic views, as specified in its constructor.
| const std::string& makVrv::DtPostProcessor::type | ( | ) | const |
Gets the type of the post processor.
|
virtual |
Enable or disable the post processor.
|
virtual |
Enable or disable the post processor.
| bool makVrv::DtPostProcessor::postProcessorEnabled | ( | ) | const |
Is this post processor enabled?
|
protected |
Reimplemented in makVrv::DtWaterOnScreen, and makVrv::DtDepthOfField.
|
protected |
When constructing a post processor, add the names of the sub-components (effects) that can be enabled and disabled.
|
protected |
Set the post processor enabled state (true = enabled)
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |