H3D API
2.4.1
|
The GaussianFilterShader is a ConvolutionFilterShader node where the weights are automatically calculated from a gaussian function. More...
#include <H3D/GaussianFilterShader.h>
Classes | |
class | MFWeights |
Specialized field that reCalculate the kernel when it updates. More... | |
Public Member Functions | |
GaussianFilterShader (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< MFString > _fragmentShaderString=0, Inst< MFString > _vertexShaderString=0, Inst< SFTexture2DNode > _texture=0, Inst< SFString > _type=0, Inst< MFWeights > _weights=0, Inst< SFInt32 > _kernelSize=0, Inst< SFFloat > _sigma=0, Inst< SFFloat > _pixelStepOffset=0, Inst< SFInt32 > _width=0, Inst< SFInt32 > _height=0, Inst< TextureMonitor > _widthInUse=0, Inst< TextureMonitor > _heightInUse=0) | |
Constructor. | |
![]() | |
ConvolutionFilterShader (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< MFString > _fragmentShaderString=0, Inst< MFString > _vertexShaderString=0, Inst< SFTexture2DNode > _texture=0, Inst< SFString > _type=0, Inst< MFFloat > _weights=0, Inst< SFInt32 > _kernelSize=0, Inst< SFFloat > _pixelStepOffset=0, Inst< SFInt32 > _width=0, Inst< SFInt32 > _height=0, Inst< TextureMonitor > _widthInUse=0, Inst< TextureMonitor > _heightInUse=0) | |
Constructor. | |
virtual void | traverseSG (TraverseInfo &ti) |
Traverse the scene graph. | |
![]() | |
H3DGeneratedFragmentShaderNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< MFString > _fragmentShaderString=0, Inst< MFString > _vertexShaderString=0) | |
Constructor. | |
![]() | |
H3DGeneratedShaderNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< MFString > _fragmentShaderString=0, Inst< MFString > _vertexShaderString=0) | |
Constructor. | |
virtual void | preRender () |
The preRender method is extended to make sure that the shader is up to date before rendering. | |
virtual string | getFunctionShaderString () |
Get a string with GLSL function definitions to be used by the generated shader. | |
virtual void | getVaryingVariables (vector< VaryingVariable > &) |
Get the varying variables used by the shader generator. More... | |
virtual void | getAttributes (vector< Attribute > &) |
Get the attribues used by the shader generator. More... | |
virtual string | getFinalFragmentShaderOutputString () |
Returns the string that is the last thing that is done in the fragment shader. More... | |
virtual string | getVertexShaderString () |
Returns the shader code for the vertex shader. More... | |
virtual string | uniqueShaderName (const string &base_name) |
The uniqueShaderName function is used to generate a name unique for this instance of the shader generator node class. More... | |
![]() | |
ComposedShader (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0, Inst< MFShaderPart > _parts=0, Inst< SFBool > _suppressUniformWarnings=0, Inst< SFString > _geometryInputType=0, Inst< SFString > _geometryOutputType=0, Inst< SFInt32 > _geometryVerticesOut=0, Inst< SFString > _transparencyDetectMode=0, Inst< MFString > _transformFeedbackVaryings=0, Inst< SFBool > _printShaderWarnings=0, Inst< SFShaderConstants > _shaderConstants=0) | |
Constructor. | |
virtual | ~ComposedShader () |
Destructor. | |
virtual bool | addField (const string &_name, const Field::AccessType &access, Field *field) |
The addField method is specialized to add a route from the field added to the displayList field. | |
virtual bool | removeField (const string &_name) |
The removeField method is specialized to remove the route from the field to the displayList field. | |
virtual void | render () |
Sets up the shader program and sets uniform variable values. | |
virtual void | postRender () |
Disables the shader program. | |
virtual GLbitfield | getAffectedGLAttribs () |
Returns a bitmask of the OpenGL attrib bits that will be affected by this node. More... | |
virtual bool | isTransparent (X3DMaterialNode *material) |
Returns a hint if the X3DShaderNode produces an alpha channel that is < 1, i.e. More... | |
GLhandleARB | getProgramHandle () |
Returns the OpenGL shader program handle used by the ComposedShader. | |
![]() | |
X3DShaderNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0, Inst< SFBool > _isSelected=0, Inst< SFBool > _isValid=0, Inst< SFBool > _activate=0, Inst< SFString > _language=0) | |
Constructor. | |
virtual bool | isSupported () |
Returns true if the shader node type is supported by the browser. More... | |
void | setSelected (bool selected) |
Set the isSelected field. | |
virtual string | defaultXMLContainerField () |
Returns the default xml containerField attribute value. More... | |
![]() | |
X3DAppearanceChildNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0) | |
Constructor. | |
![]() | |
X3DNode (Inst< SFNode > _metadata=0) | |
Constructor. | |
X3DMetadataObject * | getMetadataByName (const string &_name) |
Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned. More... | |
![]() | |
Node () | |
Constructor. | |
virtual Node * | clone (bool deepCopy=true, DeepCopyMap *deepCopyMap=NULL) |
Returns a new instance of this node type with the same state as this one. More... | |
virtual | ~Node () |
Destructor. | |
X3DPrototypeInstance * | getProtoInstanceParent () |
If this node is the root node in the proto body of a X3DPrototypeInstance then this will return that node. More... | |
void | setProtoInstanceParent (X3DPrototypeInstance *p) |
Set the X3DPrototypeInstance this node is the the root node if applicaple. | |
virtual bool | lineIntersect (const Vec3f &from, const Vec3f &to, LineIntersectResult &result) |
Detect intersection between a line segment and the Node. More... | |
virtual void | closestPoint (const Vec3f &p, NodeIntersectResult &result) |
Find closest point on Node to p. More... | |
virtual bool | movingSphereIntersect (H3DFloat radius, const Vec3f &from, const Vec3f &to, NodeIntersectResult &result) |
Detect collision between a moving sphere and the Node. More... | |
virtual Field * | getField (const string &_name) const |
return a pointer to the field specified by name within this instance | |
int | addDestructCallback (void(*func)(Node *, void *), void *args) |
Add a callback function to be run on destruction of node. More... | |
int | removeDestructCallback (void(*func)(Node *, void *), void *args) |
Add a callback function to be run on destruction of node. More... | |
![]() | |
H3DDisplayListObject (Inst< DisplayList > _displayList=0) | |
Constructor. | |
![]() | |
X3DProgrammableShaderObject (H3DNodeDatabase *_database) | |
Constructor. | |
virtual void | clearFields () |
Remove all dynamic fields that have been previously added. | |
virtual | ~X3DProgrammableShaderObject () |
Destructor. | |
![]() | |
field_iterator | firstField () |
Get an iterator to the first of the dynamic fields. | |
field_iterator | endField () |
Get an iterator pointing to the end of the dynamic fields. | |
H3DDynamicFieldsObject () | |
Constructor. | |
Public Attributes | |
H3DUniquePtr< SFFloat > | sigma |
The sigma field is the sigma value in the gaussian function and decides how much blur the result will be. More... | |
![]() | |
H3DUniquePtr< SFTexture2DNode > | texture |
The texture field contains the texture on which to apply the filter kernel. More... | |
H3DUniquePtr< SFString > | type |
Some kernels(e.g. More... | |
H3DUniquePtr< MFFloat > | weights |
The weight field specifies the values in the convolution kernel. More... | |
H3DUniquePtr< SFInt32 > | kernelSize |
The kernelSize field specifies the size convolution kernel. More... | |
H3DUniquePtr< SFFloat > | pixelStepOffset |
The pixelStepOffset is used to add customized offset to the pixel step using in convolving, the metric of this value is pixel, so please keep this value relatively small as too many pixel offset will make result strange. More... | |
H3DUniquePtr< SFInt32 > | width |
The height of the window size this shader is going to apply to. More... | |
H3DUniquePtr< SFInt32 > | height |
The width of the window size this shader is going to apply to. More... | |
H3DUniquePtr< TextureMonitor > | widthInUse |
Actual width used in convolution filter shader. | |
H3DUniquePtr< TextureMonitor > | heightInUse |
Actual height used in convolution filter shader. | |
![]() | |
H3DUniquePtr< MFString > | fragmentShaderString |
Contains the generated fragment shader code. More... | |
H3DUniquePtr< MFString > | vertexShaderString |
Contains the generated vertex shader code. More... | |
H3DUniquePtr< RebuildShader > | rebuildShader |
Field used to update the shader code when an event is received. More... | |
![]() | |
H3DUniquePtr< SFShaderConstants > | shaderConstants |
The shaderConstants field can contain a ShaderConstants node defining constants that can be used by all ShaderPart instances in the ComposedShader node. More... | |
H3DUniquePtr< MFShaderPart > | parts |
The shader parts to use in the ComposedShader. More... | |
H3DUniquePtr< SFBool > | suppressUniformWarnings |
Suppress the warnings printed to the console about setting uniform fields that do not exist in the shader. More... | |
H3DUniquePtr< SFString > | geometryInputType |
The input geometry type of the geometry being rendered with a geometry shader. More... | |
H3DUniquePtr< SFString > | geometryOutputType |
The output geometry type of the geometry being rendered with a geometry shader. More... | |
H3DUniquePtr< SFInt32 > | geometryVerticesOut |
The number of vertices the geometry shader generates. More... | |
H3DUniquePtr< SFString > | transparencyDetectMode |
Determines how the render system will determine if the shader used generates any fragment that has an alpha channel that is < 1, i.e. More... | |
H3DUniquePtr< MFString > | transformFeedbackVaryings |
List of varying names to capture during transform feedback. More... | |
H3DUniquePtr< SFBool > | printShaderWarnings |
Always print shader warnings to console. More... | |
![]() | |
H3DUniquePtr< SFBool > | isSelected |
The isSelected output field is used to indicate that this shader instance is the one selected for use by the browser. More... | |
H3DUniquePtr< SFBool > | isValid |
The isValid field is used to indicate whether the current shader objects can be run as a shader program. More... | |
H3DUniquePtr< SFBool > | activate |
The activate field forces the shader to activate the contained objects. More... | |
H3DUniquePtr< EventCollectingField< Field > > | activateMonitor |
field used to monitor if activate field is modified | |
H3DUniquePtr< SFString > | language |
The language field is used to indicate to the browser which shading language is used for the source file(s). More... | |
![]() | |
H3DUniquePtr< SFNode > | metadata |
Meta data about the node. More... | |
![]() | |
H3DUniquePtr< DisplayList > | displayList |
The DisplayList instance handling the OpenGL caching of this object. | |
Static Public Attributes | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static H3DNodeDatabase | database |
The H3DNodeDatabase for this node. | |
![]() | |
static bool | use_bindless_textures = false |
True if we should use bindless textures. | |
Protected Member Functions | |
virtual bool | canBuildShader () |
Returns true if all conditions to be able to use the values to build a proper shader are fulfilled. | |
![]() | |
virtual void | buildShader () |
Overriding buildShader to only build the shader if canBuildShader is true. | |
string | addUniformFields (ComposedShader *shader) |
Adds uniform fields to the shader. More... | |
virtual string | getFragmentShaderString () |
Returns the shader code for the fragment shader. | |
virtual string | getFragmentShaderHeader () |
Return a string that is placed at the beginning of a fragment shader to specify minimum required version of the shader as well as enabled extensions. | |
virtual string | getVertexShaderHeader () |
Use version 150 compatibility for ConvolutionFilterShader. | |
![]() | |
void | setGeometryShaderParameters (GLenum _program_handle) |
Sets geometry shader paramters based on fields. | |
![]() | |
void | cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap) |
A helper function for the clone() method. More... | |
Additional Inherited Members | |
![]() | |
typedef DependentSFNode< H3DSingleTextureNode, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > | SFTexture2DNode |
The SFTexture2DNode field is dependent on the displayList field of the containing X3DTexture2DNode node. | |
![]() | |
typedef DependentSFNode< ShaderConstants, FieldRef< H3DDisplayListObject, H3DDisplayListObject::DisplayList, &H3DDisplayListObject::displayList >, true > | SFShaderConstantsBase |
The SFShaderConstants field is dependent on the displayList field of the containing ShaderConstants node. | |
typedef DependentMFNode< ShaderPart, FieldRef< ShaderPart, ShaderPart::SFShaderString, &ShaderPart::shaderString >, true > | MFShaderPartBase |
The MFShaderPartBase is dependent on the url field of the containing ShaderPart node. | |
![]() | |
typedef std::map< Node *, Node * > | DeepCopyMap |
A map type used during a deep copy clone() to map from original nodes to cloned nodes. | |
![]() | |
static string | addUniformToFragmentShader (ComposedShader *shader, const string &name, const string &glsl_type, const Field::AccessType &access, Field *field, int array_size=-1, bool delete_unadded_field=true) |
Convenience function to add field in addUniformFields function to add uniform to fragment shader. More... | |
![]() | |
static X3DShaderNode * | getActiveShader () |
Gets the currently active shader, i.e. More... | |
![]() | |
static unsigned int | nrNodesAlive () |
Returns the nr of nodes currently alive, i.e. nodes created but not destructed. | |
static int | nrNodesCreated () |
Returns the number of nodes created in total since the start of the program. | |
![]() | |
static Node * | getClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap) |
A helper function for nodes that implement clone() More... | |
![]() | |
GLhandleARB | program_handle |
The handle to the program object used for the shader in OpenGL. | |
vector< GLhandleARB > | current_shaders |
A vector of the handles to all shader objects that are currently linked into the program object. | |
H3DUniquePtr< SetupDynamicRoutes > | setupDynamicRoutes |
C++ fields only. Contains instance of SetupDynamicRoutes. | |
list< H3DSingleTextureNode * > | shader_textures |
list of textures to be used by the composedshader | |
H3DUniquePtr< UpdateUniforms > | updateUniforms |
A field used to update any uniforms from their corresponding fields. | |
![]() | |
static bool | tessellation_support_checked = false |
True if a warning has already been output about missing tessellation shader support. | |
![]() | |
static bool | use_bindless_textures_set = false |
True if use_bindless_textures has already be set once. | |
The GaussianFilterShader is a ConvolutionFilterShader node where the weights are automatically calculated from a gaussian function.
The function used is:
If type field is "HORIZONTAL" or "VERTICAL" f(x) = (1/(2.0*pi*sigma*sigma)*exp(-(x*x)/(2*sigma*sigma)) )
If type field is "FULL" f(x,y) = (1/(2.0*pi*sigma*sigma)*exp(-(x*x+y*y)/(2*sigma*sigma)) )
The sigma field is the sigma value in the functions above and decides how much blur the result will be. A higher value of sigma will give a higher blur.
The kernelSize field specifies the size convolution kernel. This referes to how many pixels should be sampled in each direction.
Examples:
H3DUniquePtr< SFFloat > H3D::GaussianFilterShader::sigma |
The sigma field is the sigma value in the gaussian function and decides how much blur the result will be.
A higher value of sigma will give a higher blur.
Access type: inputOutput Default value: 1
Referenced by canBuildShader(), GaussianFilterShader(), and H3D::GaussianFilterShader::MFWeights::update().