![]() |
VR-Forces Developer's Guide
|
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 DtPostProcessManagerInterface will create an instance of each post processor added to the factory's post processor list.

Public Member Functions | |
| DtPostProcessor (DtDe &de, const std::string &postProcessType, bool handles2D) | |
| virtual | ~DtPostProcessor () |
| virtual void | setFragmentShaderSource (const char *source) |
| virtual void | setVertexShaderSource (const char *source) |
| virtual void | setFragmentShaderFile (const std::string &fileName) |
| virtual void | setVertexShaderFile (const std::string &fileName) |
| virtual void | setInputTexture (const DtChannel *channel, osg::Texture *texture) |
| virtual bool | update (DtChannel *channel)=0 |
| virtual osg::Texture * | outputTexture () |
| virtual void | setIsFinalEffect (const DtChannel *channel, bool final) |
| virtual osg::Camera * | cameraForChannel (const DtChannel *channel) |
| virtual void | slot_releaseResources () |
| virtual void | releaseGLObjects () |
| virtual bool | hasEffect (const std::string &effect) |
| virtual bool | effectEnabled (const std::string &effect) |
| virtual bool | anyEffectEnabled () |
| virtual std::list< std::string > | supportedEffects () |
| virtual bool | handles2D () const |
| virtual const std::string & | type () const |
| virtual bool | postProcessorEnabled () |
| virtual bool | needsOcclusionTexture () const |
| virtual bool | enableEffect (const std::string &effect) |
| virtual bool | disableEffect (const std::string &effect) |
| virtual void | enablePostProcessor () |
| virtual void | disablePostProcessor () |
Protected Types | |
| typedef boost::unordered_map < std::string, bool > | EffectMap |
| typedef std::map< const DtChannel *, osg::ref_ptr < osg::Camera > > | CameraMap |
| typedef osg::ref_ptr < DtPostProcessorCullVistorCallback > | CallbackRefPtr |
| typedef std::map< const DtChannel *, CallbackRefPtr > | CallbackMap |
Protected Member Functions | |
| virtual bool | effectItrEnabled (const EffectMap::iterator &effect) const |
| virtual void | initialize () |
| virtual void | addEffect (std::string effect) |
| virtual void | setEnablePostProcessor (bool enabled) |
Protected Attributes | |
| osg::ref_ptr< osg::Texture > | myOutputTexture |
| osg::ref_ptr< osg::Texture > | myInputTexture |
| osg::ref_ptr< osg::Program > | myProgram |
| osg::ref_ptr< osg::Shader > | myFragmentShader |
| osg::ref_ptr< osg::Shader > | myVertexShader |
| osg::ref_ptr< osg::Geode > | myQuad |
| CameraMap | myCameraMap |
| bool | myHandles2DFlag |
| bool | myEnabledFlag |
| std::string | myType |
| EffectMap | myEffects |
| CallbackMap | myCullCallbackMap |
| DtDe & | myDe |
| DtSignalConnectionManager | mySignals |
Friends | |
| class | DtPostProcessManager |
|
protected |
|
protected |
|
protected |
|
protected |
| makVrv::DtPostProcessor::DtPostProcessor | ( | DtDe & | de, |
| const std::string & | postProcessType, | ||
| bool | handles2D | ||
| ) |
CTOR.
| handles2D | Whether this post processor should be used in 2D orthographic views. |
|
virtual |
DTOR.
|
virtual |
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)
|
virtual |
Sets vertex 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)
|
virtual |
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)
|
virtual |
Sets vertex 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)
|
virtual |
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 DtPostProcessManager, you shouldn't need to call this yourself.
Reimplemented in makVrv::DtSenSimPostProcessor, makVrv::DtHdrPostProcessor, makVrv::DtVolumetricLighting, makVrv::DtHbaoPostProcessor, and makVrv::DtVideoStreamPostProcessor.
Called once per frame, per channel.
Implemented in makVrv::DtSenSimPostProcessor, makVrv::DtWaterOnScreen, makVrv::DtHdrPostProcessor, makVrv::DtDepthOfField, makVrv::DtHbaoPostProcessor, makVrv::DtVirtualRealityPostProcessor, makVrv::DtPlanViewPostProcessor, makVrv::DtVideoStreamPostProcessor, makVrv::DtVolumetricLighting, makVrv::DtHorizontalFlip, and makVrv::DtReverseDepthBuffer.
|
virtual |
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.
Reimplemented in makVrv::DtVolumetricLighting.
|
virtual |
Called by the DtPostProcessManager to indicate if this is the last post processor in the chain, and should render to the framebuffer.
Reimplemented in makVrv::DtSenSimPostProcessor.
|
virtual |
Gets the Camera node associated with this effect and channel. Use their statesets to set shader uniforms for your effect.
|
virtual |
used to call releaseGLObjects on this post processor's openGL related objects when the last window is removed.
|
virtual |
cleanup any graphics related stuff when the last window is removed since the graphics context will soon be destroyed.
Reimplemented in makVrv::DtWaterOnScreen, and makVrv::DtHdrPostProcessor.
|
virtual |
Does this post processor support this effect?
|
virtual |
Is this effect (post processor sub-component) enabled?
|
virtual |
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".
|
virtual |
Get a list of supported effects for this post processor.
|
virtual |
Retrieves whether this post processor should be used in 2D orthographic views, as specified in its constructor.
|
virtual |
Gets the type of the post processor.
|
virtual |
Enable or disable the post processor.
|
virtual |
Enable or disable the post processor.
|
virtual |
Is this post processor enabled?
Reimplemented in makVrv::DtHdrPostProcessor, makVrv::DtVolumetricLighting, and makVrv::DtPlanViewPostProcessor.
|
virtual |
Does this post processor need an occlusion texture generated by the osgChannel false by default but derrived classes can override this and let the manager know they need an occlusion texture.
Reimplemented in makVrv::DtVolumetricLighting, and makVrv::DtHbaoPostProcessor.
|
protectedvirtual |
Reimplemented in makVrv::DtHdrPostProcessor.
|
protectedvirtual |
Reimplemented in makVrv::DtWaterOnScreen.
|
protectedvirtual |
When constructing a post processor, add the names of the sub-components (effects) that can be enabled and disabled.
|
protectedvirtual |
Set the post processor enabled state (true = enabled)
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |