OSG
3.4.0
|
#include <BumpMapping.h>
Public Member Functions | |
BumpMapping () | |
BumpMapping (const BumpMapping ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Effect (osgFX, BumpMapping,"Bump Mapping","This effect makes surfaces appear bumpy. Children nodes must use two textures, ""one for diffuse color and one for the normal map (which can be created ""from a height map with tools like nVIDIA's normal map generator). Furthermore, ""tangent-space basis vectors must be created and assigned to each Geometry; this ""can be done quickly by calling BumpMapping::prepareChildren(). Note that both ""diffuse and normal map textures must have corresponding UV maps defined in ""Geometry objects.\n""This effect defines a preferred technique which uses ARB vertex & fragment ""programs, and a fallback technique which doesn't use fragment programs. The ""latter is more limited though since it can't handle ambient and specular ""components.","Marco Jez") | |
int | getLightNumber () const |
void | setLightNumber (int n) |
int | getDiffuseTextureUnit () const |
void | setDiffuseTextureUnit (int n) |
int | getNormalMapTextureUnit () const |
void | setNormalMapTextureUnit (int n) |
osg::Texture2D * | getOverrideDiffuseTexture () |
const osg::Texture2D * | getOverrideDiffuseTexture () const |
void | setOverrideDiffuseTexture (osg::Texture2D *texture) |
osg::Texture2D * | getOverrideNormalMapTexture () |
const osg::Texture2D * | getOverrideNormalMapTexture () const |
void | setOverrideNormalMapTexture (osg::Texture2D *texture) |
void | prepareGeometry (osg::Geometry *geo) |
void | prepareNode (osg::Node *node) |
void | prepareChildren () |
void | setUpDemo () |
![]() | |
Effect () | |
Effect (const Effect ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
virtual bool | isSameKindAs (const osg::Object *obj) const |
virtual const char * | libraryName () const |
virtual const char * | className () const |
virtual const char * | effectName () const =0 |
virtual const char * | effectDescription () const =0 |
virtual const char * | effectAuthor () const =0 |
bool | getEnabled () const |
void | setEnabled (bool v) |
int | getNumTechniques () const |
Technique * | getTechnique (int i) |
const Technique * | getTechnique (int i) const |
int | getSelectedTechnique () const |
void | selectTechnique (int i=AUTO_DETECT) |
virtual void | traverse (osg::NodeVisitor &nv) |
void | inherited_traverse (osg::NodeVisitor &nv) |
![]() | |
Group () | |
Group (const Group &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
META_Node (osg, Group) | |
virtual Group * | asGroup () |
virtual const Group * | asGroup () const |
virtual bool | addChild (Node *child) |
virtual bool | insertChild (unsigned int index, Node *child) |
virtual bool | removeChild (Node *child) |
bool | removeChild (unsigned int pos, unsigned int numChildrenToRemove=1) |
virtual bool | removeChildren (unsigned int pos, unsigned int numChildrenToRemove) |
virtual bool | replaceChild (Node *origChild, Node *newChild) |
virtual unsigned int | getNumChildren () const |
virtual bool | setChild (unsigned int i, Node *node) |
Node * | getChild (unsigned int i) |
const Node * | getChild (unsigned int i) const |
bool | containsNode (const Node *node) const |
unsigned int | getChildIndex (const Node *node) const |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
virtual void | releaseGLObjects (osg::State *=0) const |
virtual BoundingSphere | computeBound () const |
![]() | |
Node () | |
Node (const Node &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual Object * | cloneType () const |
virtual Object * | clone (const CopyOp ©op) const |
virtual Node * | asNode () |
virtual const Node * | asNode () const |
virtual Drawable * | asDrawable () |
virtual const Drawable * | asDrawable () const |
virtual Geometry * | asGeometry () |
virtual const Geometry * | asGeometry () const |
virtual Transform * | asTransform () |
virtual const Transform * | asTransform () const |
virtual Camera * | asCamera () |
virtual const Camera * | asCamera () const |
virtual Switch * | asSwitch () |
virtual const Switch * | asSwitch () const |
virtual Geode * | asGeode () |
virtual const Geode * | asGeode () const |
virtual osgTerrain::Terrain * | asTerrain () |
virtual const osgTerrain::Terrain * | asTerrain () const |
virtual void | accept (NodeVisitor &nv) |
virtual void | ascend (NodeVisitor &nv) |
const ParentList & | getParents () const |
ParentList | getParents () |
Group * | getParent (unsigned int i) |
const Group * | getParent (unsigned int i) const |
unsigned int | getNumParents () const |
NodePathList | getParentalNodePaths (osg::Node *haltTraversalAtNode=0) const |
MatrixList | getWorldMatrices (const osg::Node *haltTraversalAtNode=0) const |
void | setUpdateCallback (Callback *nc) |
Callback * | getUpdateCallback () |
const Callback * | getUpdateCallback () const |
void | addUpdateCallback (Callback *nc) |
void | removeUpdateCallback (Callback *nc) |
unsigned int | getNumChildrenRequiringUpdateTraversal () const |
void | setEventCallback (Callback *nc) |
Callback * | getEventCallback () |
const Callback * | getEventCallback () const |
void | addEventCallback (Callback *nc) |
void | removeEventCallback (Callback *nc) |
unsigned int | getNumChildrenRequiringEventTraversal () const |
void | setCullCallback (Callback *nc) |
Callback * | getCullCallback () |
const Callback * | getCullCallback () const |
void | addCullCallback (Callback *nc) |
void | removeCullCallback (Callback *nc) |
void | setCullingActive (bool active) |
bool | getCullingActive () const |
unsigned int | getNumChildrenWithCullingDisabled () const |
bool | isCullingActive () const |
unsigned int | getNumChildrenWithOccluderNodes () const |
bool | containsOccluderNodes () const |
void | setNodeMask (NodeMask nm) |
NodeMask | getNodeMask () const |
void | setStateSet (osg::StateSet *stateset) |
osg::StateSet * | getOrCreateStateSet () |
osg::StateSet * | getStateSet () |
const osg::StateSet * | getStateSet () const |
void | setDescriptions (const DescriptionList &descriptions) |
DescriptionList & | getDescriptions () |
const DescriptionList & | getDescriptions () const |
const std::string & | getDescription (unsigned int i) const |
std::string & | getDescription (unsigned int i) |
unsigned int | getNumDescriptions () const |
void | addDescription (const std::string &desc) |
void | setInitialBound (const osg::BoundingSphere &bsphere) |
const BoundingSphere & | getInitialBound () const |
void | dirtyBound () |
const BoundingSphere & | getBound () const |
void | setComputeBoundingSphereCallback (ComputeBoundingSphereCallback *callback) |
ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () |
const ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () const |
![]() | |
Object () | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
std::string | getCompoundClassName () const |
virtual NodeVisitor * | asNodeVisitor () |
virtual const NodeVisitor * | asNodeVisitor () const |
virtual StateAttribute * | asStateAttribute () |
virtual const StateAttribute * | asStateAttribute () const |
virtual Uniform * | asUniform () |
virtual const Uniform * | asUniform () const |
virtual void | setName (const std::string &name) |
void | setName (const char *name) |
const std::string & | getName () const |
void | setDataVariance (DataVariance dv) |
DataVariance | getDataVariance () const |
virtual void | computeDataVariance () |
void | setUserDataContainer (osg::UserDataContainer *udc) |
osg::UserDataContainer * | getUserDataContainer () |
const osg::UserDataContainer * | getUserDataContainer () const |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
virtual void | setUserData (Referenced *obj) |
virtual Referenced * | getUserData () |
virtual const Referenced * | getUserData () const |
template<typename T > | |
bool | getUserValue (const std::string &name, T &value) const |
template<typename T > | |
void | setUserValue (const std::string &name, const T &value) |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
int | unref () const |
int | unref_nodelete () const |
int | referenceCount () const |
ObserverSet * | getObserverSet () const |
ObserverSet * | getOrCreateObserverSet () const |
void | addObserver (Observer *observer) const |
void | removeObserver (Observer *observer) const |
Protected Member Functions | |
virtual | ~BumpMapping () |
BumpMapping & | operator= (const BumpMapping &) |
bool | define_techniques () |
![]() | |
virtual | ~Effect () |
Effect & | operator= (const Effect &) |
void | dirtyTechniques () |
void | addTechnique (Technique *tech) |
![]() | |
virtual | ~Group () |
virtual void | childRemoved (unsigned int, unsigned int) |
virtual void | childInserted (unsigned int) |
![]() | |
virtual | ~Node () |
void | addParent (osg::Group *parent) |
void | removeParent (osg::Group *parent) |
void | setNumChildrenRequiringUpdateTraversal (unsigned int num) |
void | setNumChildrenRequiringEventTraversal (unsigned int num) |
void | setNumChildrenWithCullingDisabled (unsigned int num) |
void | setNumChildrenWithOccluderNodes (unsigned int num) |
![]() | |
virtual | ~Object () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
This effect makes surfaces appear bumpy. Children nodes must use two textures, one for diffuse color and one for the normal map (which can be created from a height map with tools like nVIDIA's normal map generator). Furthermore, tangent-space basis vectors must be created and assigned to each Geometry; this can be done quickly by calling BumpMapping::prepareChildren(). Note that both diffuse and normal map textures must have corresponding UV maps defined in Geometry objects. This effect defines a preferred technique which uses ARB vertex & fragment programs, and a fallback technique which doesn't use fragment programs. The latter is more limited though since it can't handle ambient and specular components.
Definition at line 40 of file BumpMapping.h.
osgFX::BumpMapping::BumpMapping | ( | ) |
osgFX::BumpMapping::BumpMapping | ( | const BumpMapping & | copy, |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY |
||
) |
|
inlineprotectedvirtual |
Definition at line 116 of file BumpMapping.h.
|
protectedvirtual |
abstract method to be implemented in derived classes; its purpose if to create the techniques that can be used for obtaining the desired effect. You will usually call addTechnique() inside this method.
Implements osgFX::Effect.
|
inline |
get the texture unit that contains diffuse color texture. Default is 1
Definition at line 142 of file BumpMapping.h.
|
inline |
get the OpenGL light number
Definition at line 131 of file BumpMapping.h.
|
inline |
get the texture unit that contains normal map texture. Default is 0
Definition at line 153 of file BumpMapping.h.
|
inline |
get the diffuse color texture that overrides children's texture
Definition at line 164 of file BumpMapping.h.
|
inline |
get the const diffuse color texture that overrides children's texture
Definition at line 169 of file BumpMapping.h.
|
inline |
get the normal map texture that overrides children's texture
Definition at line 180 of file BumpMapping.h.
|
inline |
get the const normal map texture that overrides children's texture
Definition at line 185 of file BumpMapping.h.
osgFX::BumpMapping::META_Effect | ( | osgFX | , |
BumpMapping | , | ||
"Bump Mapping" | , | ||
"This effect makes surfaces appear bumpy. Children nodes must use two | textures, | ||
""one for diffuse color and one for the normal map(which can be created""from a height map with tools like nVIDIA's normal map generator). | Furthermore, | ||
""tangent-space basis vectors must be created and assigned to each Geometry;this""can be done quickly by calling BumpMapping::prepareChildren().Note that both""diffuse and normal map textures must have corresponding UV maps defined in""Geometry objects.\n""This effect defines a preferred technique which uses ARB vertex &fragment"" | programs, | ||
and a fallback technique which doesn't use fragment programs.The""latter is more limited though since it can't handle ambient and specular""components." | , | ||
"Marco Jez" | |||
) |
|
inlineprotected |
Definition at line 117 of file BumpMapping.h.
void osgFX::BumpMapping::prepareChildren | ( | ) |
prepare children for bump lighting. Actually calls prepareNode() for each child
void osgFX::BumpMapping::prepareGeometry | ( | osg::Geometry * | geo | ) |
prepare a Geometry for bump lighting. Tangent-space basis vectors are generated and attached to the geometry as vertex attribute arrays.
void osgFX::BumpMapping::prepareNode | ( | osg::Node * | node | ) |
prepare a Node for bump lighting, calling prepareGeometry() for each Geometry
|
inline |
set the texture unit that contains diffuse color texture. Default is 1
Definition at line 147 of file BumpMapping.h.
|
inline |
set the OpenGL light number that will be used in lighting computations
Definition at line 136 of file BumpMapping.h.
|
inline |
set the texture unit that contains normal map texture. Default is 0
Definition at line 158 of file BumpMapping.h.
|
inline |
set the diffuse color texture that overrides children's texture
Definition at line 174 of file BumpMapping.h.
|
inline |
set the normal map texture that overrides children's texture
Definition at line 190 of file BumpMapping.h.
|
virtual |
set up a demo environment with predefined diffuse and normal maps, as well as texture coordinates
Reimplemented from osgFX::Effect.