H3D API  2.4.1
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
H3D::RenderProperties Class Reference

The RenderProperties node specifies additional rendering options that cannot be specified with the X3D Appearance node. More...

#include <H3D/RenderProperties.h>

Inheritance diagram for H3D::RenderProperties:
Inheritance graph

Public Member Functions

 RenderProperties (Inst< SFNode > _metadata=0, Inst< DisplayList > _displayList=0, Inst< SFBool > _depthTestEnabled=0, Inst< SFString > _depthFunc=0, Inst< SFBool > _smoothShading=0, Inst< SFBool > _multiPassTransparency=0, Inst< SFBool > _depthBufferWriteEnabled=0, Inst< SFBool > _colorBufferRedWriteEnabled=0, Inst< SFBool > _colorBufferGreenWriteEnabled=0, Inst< SFBool > _colorBufferBlueWriteEnabled=0, Inst< SFBool > _colorBufferAlphaWriteEnabled=0, Inst< SFString > _alphaFunc=0, Inst< SFFloat > _alphaFuncValue=0, Inst< SFString > _blendFuncSrcFactorRGB=0, Inst< SFString > _blendFuncSrcFactorAlpha=0, Inst< SFString > _blendFuncDstFactorRGB=0, Inst< SFString > _blendFuncDstFactorAlpha=0, Inst< SFString > _blendEquationRGB=0, Inst< SFString > _blendEquationAlpha=0, Inst< SFColorRGBA > _blendColor=0, Inst< SFBool > _blendEnabled=0)
 Constructor.
 
virtual GLbitfield getAffectedGLAttribs ()
 Returns a bitmask of the OpenGL attrib bits that will be affected by this node. More...
 
virtual void render ()
 Set up the line properties with OpenGL.
 
virtual string defaultXMLContainerField ()
 Returns the default xml containerField attribute value. More...
 
- Public Member Functions inherited from H3D::X3DAppearanceChildNode
 X3DAppearanceChildNode (Inst< DisplayList > _displayList=0, Inst< SFNode > _metadata=0)
 Constructor.
 
virtual void preRender ()
 This function will be called by the X3DShapeNode before any rendering of geometry and before the call to the render function. More...
 
virtual void postRender ()
 This function will be called by the X3DShapeNode after the geometry has been rendered.
 
- Public Member Functions inherited from H3D::X3DNode
 X3DNode (Inst< SFNode > _metadata=0)
 Constructor.
 
X3DMetadataObjectgetMetadataByName (const string &_name)
 Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned. More...
 
- Public Member Functions inherited from H3D::Node
 Node ()
 Constructor.
 
virtual Nodeclone (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.
 
X3DPrototypeInstancegetProtoInstanceParent ()
 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 void traverseSG (TraverseInfo &ti)
 traverseSG is called once per scenegraph loop on the scene in order to traverse the scenegraph. More...
 
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 FieldgetField (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...
 
- Public Member Functions inherited from H3D::H3DDisplayListObject
 H3DDisplayListObject (Inst< DisplayList > _displayList=0)
 Constructor.
 

Public Attributes

H3DUniquePtr< SFBooldepthTestEnabled
 The depthTestEnabled field specifies if depth test should be enabled or not. More...
 
H3DUniquePtr< SFStringdepthFunc
 The depthFunc field specifies if a alpha testing should be used and in that case how the function should look. More...
 
H3DUniquePtr< SFBoolsmoothShading
 The smoothShading field specifies if smooth shading of colors should be used. More...
 
H3DUniquePtr< SFBoolmultiPassTransparency
 If the multiPassTransparency field is true, and we have a transparent shape, the entire scene will be rendered three times, once with all non-transparant objects drawn, once with all transparant objects drawn with front face culled and once with all transparent objects with back face culled. More...
 
H3DUniquePtr< SFBooldepthBufferWriteEnabled
 The depthBufferWriteEnabled field specifies if depth values should be written to the depth buffer of not during rendering. More...
 
H3DUniquePtr< SFBoolcolorBufferRedWriteEnabled
 The colorBufferRedWriteEnabled field specifies if red color values should be written to the color buffer of not during rendering. More...
 
H3DUniquePtr< SFBoolcolorBufferGreenWriteEnabled
 The colorBufferGreenWriteEnabled field specifies if green color values should be written to the color buffer of not during rendering. More...
 
H3DUniquePtr< SFBoolcolorBufferBlueWriteEnabled
 The colorBufferBlueWriteEnabled field specifies if blue color values should be written to the color buffer of not during rendering. More...
 
H3DUniquePtr< SFBoolcolorBufferAlphaWriteEnabled
 The colorBufferAlphaWriteEnabled field specifies if alpha values should be written to the color buffer of not during rendering. More...
 
H3DUniquePtr< SFStringalphaFunc
 The alphaFunc field specifies if a alpha testing should be used and in that case how the function should look. More...
 
H3DUniquePtr< SFFloatalphaFuncValue
 The alphaFuncValue field specifies the reference value when alpha testing is enabled. More...
 
H3DUniquePtr< SFStringblendFuncSrcFactorRGB
 The blendFuncSrcFactorRGB field specifies how the red, blue and green channels are computed for source when using a blend function. More...
 
H3DUniquePtr< SFStringblendFuncDstFactorRGB
 The blendFuncDstFactorRGB field specifies how the red, blue and green channels are computed for destination when using a blend function. More...
 
H3DUniquePtr< SFStringblendFuncSrcFactorAlpha
 The blendFuncSrcFactorAlpha field specifies how the alpha channel is computed for source when using a blend function. More...
 
H3DUniquePtr< SFStringblendFuncDstFactorAlpha
 The blendFuncDstFactorAlpha field specifies how the alpha channel is computed for destination when using a blend function. More...
 
H3DUniquePtr< SFStringblendEquationRGB
 The blendEquationRGB field specifies the blend equation used to combine the red, green and blue channel. More...
 
H3DUniquePtr< SFStringblendEquationAlpha
 The blendEquationAlpha field specifies the blend equation used to combine the alpha channel. More...
 
H3DUniquePtr< SFColorRGBAblendColor
 The blendColor field specifies the blend color. More...
 
H3DUniquePtr< SFBoolblendEnabled
 The blendEnabled field specifies if blending should be enabled or not. More...
 
- Public Attributes inherited from H3D::X3DNode
H3DUniquePtr< SFNodemetadata
 Meta data about the node. More...
 
- Public Attributes inherited from H3D::H3DDisplayListObject
H3DUniquePtr< DisplayListdisplayList
 The DisplayList instance handling the OpenGL caching of this object.
 

Static Public Attributes

static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 
- Static Public Attributes inherited from H3D::X3DNode
static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 

Additional Inherited Members

- Public Types inherited from H3D::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 Public Member Functions inherited from H3D::Node
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.
 
- Protected Member Functions inherited from H3D::Node
void cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for the clone() method. More...
 
- Static Protected Member Functions inherited from H3D::Node
static NodegetClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for nodes that implement clone() More...
 

Detailed Description

The RenderProperties node specifies additional rendering options that cannot be specified with the X3D Appearance node.

The depthTestEnabled field specifies if depth test should be enabled or not. If depth test is disabled geometries will be drawn over the current values in the frame buffer regardless of if it is in front of or behind the previous objects drawn.

The smoothShading field specifies if smooth shading should be used. If false, flat shading is used.

The depthBufferWriteEnabled field specifies if depth values should be written to the depth buffer or not during rendering.

The colorBufferRedWriteEnabled field specifies if red color values should be written to the color buffer or not during rendering.

The colorBufferGreenWriteEnabled field specifies if green color values should be written to the color buffer or not during rendering.

The colorBufferBlueWriteEnabled field specifies if blue color values should be written to the color buffer or not during rendering.

The colorBufferAlphaWriteEnabled field specifies if alpha values should be written to the color buffer or not during rendering.

Examples:

Internal routes:

Member Function Documentation

◆ defaultXMLContainerField()

virtual string H3D::RenderProperties::defaultXMLContainerField ( )
inlinevirtual

Returns the default xml containerField attribute value.

For this node it is "fillProperties".

Reimplemented from H3D::Node.

◆ getAffectedGLAttribs()

virtual GLbitfield H3D::RenderProperties::getAffectedGLAttribs ( )
inlinevirtual

Returns a bitmask of the OpenGL attrib bits that will be affected by this node.

The value can be used in glPushAttrib in order to save the current state.

Reimplemented from H3D::X3DAppearanceChildNode.

Referenced by H3D::Appearance::getAffectedGLAttribs().

Member Data Documentation

◆ alphaFunc

H3DUniquePtr< SFString > H3D::RenderProperties::alphaFunc

The alphaFunc field specifies if a alpha testing should be used and in that case how the function should look.

See opengl glAlphaFunc reference for more information about each value.

Access type: inputOutput
Default value: ALWAYS
Valid values: NEVER, LESS, EQUAL, LEQUAL, GREATER, NOTEQUAL,
GEQUAL, ALWAYS

Referenced by render(), and RenderProperties().

◆ alphaFuncValue

H3DUniquePtr< SFFloat > H3D::RenderProperties::alphaFuncValue

The alphaFuncValue field specifies the reference value when alpha testing is enabled.

Only used if alphaFunc != ALWAYS.

Access type: inputOutput
Default value: 0
Valid values: [0,1]

Referenced by render(), and RenderProperties().

◆ blendColor

H3DUniquePtr< SFColorRGBA > H3D::RenderProperties::blendColor

The blendColor field specifies the blend color.

See opengl glBlendColor reference for more information.

Access type: inputOutput
Default value: 0, 0, 0, 1

Referenced by render(), and RenderProperties().

◆ blendEnabled

H3DUniquePtr< SFBool > H3D::RenderProperties::blendEnabled

The blendEnabled field specifies if blending should be enabled or not.

Access type: inputOutput
Default value: TRUE

Referenced by render(), and RenderProperties().

◆ blendEquationAlpha

H3DUniquePtr< SFString > H3D::RenderProperties::blendEquationAlpha

The blendEquationAlpha field specifies the blend equation used to combine the alpha channel.

See opengl glBlendEquationSeparate reference for more information about each value.

Access type: inputOutput
Default value: ADD
Valid values: ADD, SUBTRACT, REVERSE_SUBTRACT, MIN, MAX

Referenced by render(), and RenderProperties().

◆ blendEquationRGB

H3DUniquePtr< SFString > H3D::RenderProperties::blendEquationRGB

The blendEquationRGB field specifies the blend equation used to combine the red, green and blue channel.

See opengl glBlendEquationSeparate reference for more information about each value.

Access type: inputOutput
Default value: ADD
Valid values: ADD, SUBTRACT, REVERSE_SUBTRACT, MIN, MAX

Referenced by render(), and RenderProperties().

◆ blendFuncDstFactorAlpha

H3DUniquePtr< SFString > H3D::RenderProperties::blendFuncDstFactorAlpha

The blendFuncDstFactorAlpha field specifies how the alpha channel is computed for destination when using a blend function.

See opengl glBlendFuncSeparate reference for more information about each value.

Access type: inputOutput
Default value: ONE_MINUS_SRC_ALPHA
Valid values: ZERO, ONE, SRC_COLOR, ONE_MINUS_SRC_COLOR,
DST_COLOR, ONE_MINUS_DST_COLOR, SRC_ALPHA, ONE_MINUS_SRC_ALPHA,
DST_ALPHA, ONE_MINUS_DST_ALPHA, CONSTANT_COLOR,
ONE_MINUS_CONSTANT_COLOR, CONSTANT_ALPHA, ONE_MINUS_CONSTANT_ALPHA

Referenced by render(), and RenderProperties().

◆ blendFuncDstFactorRGB

H3DUniquePtr< SFString > H3D::RenderProperties::blendFuncDstFactorRGB

The blendFuncDstFactorRGB field specifies how the red, blue and green channels are computed for destination when using a blend function.

See opengl glBlendFuncSeparate reference for more information about each value.

Access type: inputOutput
Default value: ONE_MINUS_SRC_ALPHA
Valid values: ZERO, ONE, SRC_COLOR, ONE_MINUS_SRC_COLOR,
DST_COLOR, ONE_MINUS_DST_COLOR, SRC_ALPHA, ONE_MINUS_SRC_ALPHA,
DST_ALPHA, ONE_MINUS_DST_ALPHA, CONSTANT_COLOR,
ONE_MINUS_CONSTANT_COLOR, CONSTANT_ALPHA, ONE_MINUS_CONSTANT_ALPHA

Referenced by render(), and RenderProperties().

◆ blendFuncSrcFactorAlpha

H3DUniquePtr< SFString > H3D::RenderProperties::blendFuncSrcFactorAlpha

The blendFuncSrcFactorAlpha field specifies how the alpha channel is computed for source when using a blend function.

See opengl glBlendFuncSeparate reference for more information about each value.

Access type: inputOutput
Default value: SRC_ALPHA
Valid values: ZERO, ONE, SRC_COLOR, ONE_MINUS_SRC_COLOR,
DST_COLOR, ONE_MINUS_DST_COLOR, SRC_ALPHA, ONE_MINUS_SRC_ALPHA,
DST_ALPHA, ONE_MINUS_DST_ALPHA, CONSTANT_COLOR,
ONE_MINUS_CONSTANT_COLOR, CONSTANT_ALPHA, ONE_MINUS_CONSTANT_ALPHA,
SRC_ALPHA_SATURATE

Referenced by render(), and RenderProperties().

◆ blendFuncSrcFactorRGB

H3DUniquePtr< SFString > H3D::RenderProperties::blendFuncSrcFactorRGB

The blendFuncSrcFactorRGB field specifies how the red, blue and green channels are computed for source when using a blend function.

See opengl glBlendFuncSeparate reference for more information about each value.

Access type: inputOutput
Default value: SRC_ALPHA
Valid values: ZERO, ONE, SRC_COLOR, ONE_MINUS_SRC_COLOR,
DST_COLOR, ONE_MINUS_DST_COLOR, SRC_ALPHA, ONE_MINUS_SRC_ALPHA,
DST_ALPHA, ONE_MINUS_DST_ALPHA, CONSTANT_COLOR,
ONE_MINUS_CONSTANT_COLOR, CONSTANT_ALPHA, ONE_MINUS_CONSTANT_ALPHA,
SRC_ALPHA_SATURATE

Referenced by render(), and RenderProperties().

◆ colorBufferAlphaWriteEnabled

H3DUniquePtr< SFBool > H3D::RenderProperties::colorBufferAlphaWriteEnabled

The colorBufferAlphaWriteEnabled field specifies if alpha values should be written to the color buffer of not during rendering.

Access type: inputOutput
Default value: true

Referenced by render(), and RenderProperties().

◆ colorBufferBlueWriteEnabled

H3DUniquePtr< SFBool > H3D::RenderProperties::colorBufferBlueWriteEnabled

The colorBufferBlueWriteEnabled field specifies if blue color values should be written to the color buffer of not during rendering.

Access type: inputOutput
Default value: true

Referenced by render(), and RenderProperties().

◆ colorBufferGreenWriteEnabled

H3DUniquePtr< SFBool > H3D::RenderProperties::colorBufferGreenWriteEnabled

The colorBufferGreenWriteEnabled field specifies if green color values should be written to the color buffer of not during rendering.

Access type: inputOutput
Default value: true

Referenced by render(), and RenderProperties().

◆ colorBufferRedWriteEnabled

H3DUniquePtr< SFBool > H3D::RenderProperties::colorBufferRedWriteEnabled

The colorBufferRedWriteEnabled field specifies if red color values should be written to the color buffer of not during rendering.

Access type: inputOutput
Default value: true

Referenced by render(), and RenderProperties().

◆ depthBufferWriteEnabled

H3DUniquePtr< SFBool > H3D::RenderProperties::depthBufferWriteEnabled

The depthBufferWriteEnabled field specifies if depth values should be written to the depth buffer of not during rendering.

Access type: inputOutput
Default value: true

Referenced by render(), and RenderProperties().

◆ depthFunc

H3DUniquePtr< SFString > H3D::RenderProperties::depthFunc

The depthFunc field specifies if a alpha testing should be used and in that case how the function should look.

See opengl glDepthFunc reference for more information about each value.

Access type: inputOutput
Default value: LESS
Valid values: NEVER, LESS, EQUAL, LEQUAL, GREATER, NOTEQUAL,
GEQUAL, ALWAYS

Referenced by render(), and RenderProperties().

◆ depthTestEnabled

H3DUniquePtr< SFBool > H3D::RenderProperties::depthTestEnabled

The depthTestEnabled field specifies if depth test should be enabled or not.

If depth test is disabled geometries will be drawn over the current values in the frame buffer regardless of if they are in front of or behind the previous objects drawn.

Access type: inputOutput
Default value: true

Referenced by render(), and RenderProperties().

◆ multiPassTransparency

H3DUniquePtr< SFBool > H3D::RenderProperties::multiPassTransparency

If the multiPassTransparency field is true, and we have a transparent shape, the entire scene will be rendered three times, once with all non-transparant objects drawn, once with all transparant objects drawn with front face culled and once with all transparent objects with back face culled.

This will avoid many artifact of transparency caused by rendering objects in the wrong order, however it requires three traversals of the scenegraph. If set to false, transparent objects will just be drawn in the order they appear in the scene graph.

Access type: inputOutput
Default value: true

Referenced by H3D::Scene::idle(), RenderProperties(), and H3D::Appearance::usingMultiPassTransparency().

◆ smoothShading

H3DUniquePtr< SFBool > H3D::RenderProperties::smoothShading

The smoothShading field specifies if smooth shading of colors should be used.

If true then colors are interpolated between vertices of a face. If false then each face has a uniform color chosen from one of its vertices. For more information see OpenGL reference for the command glShadeModel.

Access type: inputOutput
Default value: true

Referenced by render(), and RenderProperties().


The documentation for this class was generated from the following files: