Visualization Library 2.0.0
A lightweight C++ OpenGL middleware for 2D/3D graphics
|
[Download] [Tutorials] [All Classes] [Grouped Classes] |
Defines the sequence of Shader objects used to render an Actor. More...
#include <Effect.hpp>
Public Member Functions | |
Effect () | |
Constructor. More... | |
ref< Effect > | shallowCopy (EShaderCopyMode shader_copy) const |
Effect & | shallowCopyFrom (const Effect &other, EShaderCopyMode shader_copy) |
ref< Effect > | deepCopy () const |
Effect & | deepCopyFrom (const Effect &other) |
void | setRenderRank (int rank) |
Modifies the rendering rank of an Actor. More... | |
int | renderRank () const |
Returns the rendering rank of an Effect. More... | |
const ref< ShaderPasses > & | lod (int lod_level) const |
Returns the ShaderPasses representing the specified LOD level. More... | |
ref< ShaderPasses > & | lod (int lod_level) |
Returns the ShaderPasses representing the specified LOD level. More... | |
Shader * | shader (int lodi=0, int pass=0) |
Utility function, same as 'lod(lodi)->at(pass) ;'. More... | |
const Shader * | shader (int lodi=0, int pass=0) const |
Utility function, same as 'lod(lodi)->at(pass) ;'. More... | |
void | setLOD (int lodi, Shader *shader1, Shader *shader2=NULL, Shader *shader3=NULL, Shader *shader4=NULL) |
Utility function, same as 'lod(lodi) = new ShaderPasses(shader1,shader2,shader3,shader4);'. More... | |
void | setLODEvaluator (LODEvaluator *lod_evaluator) |
Installs the LODEvaluator used to compute the current LOD at rendering time. More... | |
LODEvaluator * | lodEvaluator () |
Returns the installed LODEvaluator (if any) or NULL. More... | |
const LODEvaluator * | lodEvaluator () const |
Returns the installed LODEvaluator (if any) or NULL. More... | |
void | setEnableMask (unsigned int mask) |
The enable mask of an Actor's Effect defines whether the actor should be rendered or not depending on the Rendering::enableMask(). More... | |
unsigned int | enableMask () const |
The enable mask of an Actor's Effect defines whether the actor should be rendered or not depending on the Rendering::enableMask(). More... | |
int | evaluateLOD (Actor *actor, Camera *camera) |
If a LODEvaluator is installed computes the effect LOD to be used otherwise returns 0. More... | |
void | setActiveLod (int lod) |
Sets the lod to be used for rendering. More... | |
int | activeLod () const |
Returns the lod to be used for rendering. More... | |
Public Member Functions inherited from vl::Object | |
Object () | |
Constructor. More... | |
Object (const Object &other) | |
Copy constructor: copies the name, ref count mutex and user data. More... | |
Object & | operator= (const Object &other) |
Copy operator: copies the object's name, ref count mutex and user data. More... | |
const std::string & | objectName () const |
The name of the object, by default set to the object's class name. More... | |
void | setObjectName (const char *name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setObjectName (const std::string &name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setRefCountMutex (IMutex *mutex) |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
IMutex * | refCountMutex () |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
const IMutex * | refCountMutex () const |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
int | referenceCount () const |
Returns the number of references of an object. More... | |
void | incReference () const |
Increments the reference count of an object. More... | |
void | decReference () |
Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More... | |
void | setAutomaticDelete (bool autodel_on) |
If set to true the Object is deleted when its reference count reaches 0. More... | |
bool | automaticDelete () const |
If set to true the Object is deleted when its reference count reaches 0. More... | |
template<class T > | |
T * | as () |
Casts an Object to the specified class. More... | |
template<class T > | |
const T * | as () const |
Casts an Object to the specified class. More... | |
Protected Attributes | |
ref< ShaderPasses > | mLODShaders [VL_MAX_EFFECT_LOD] |
ref< LODEvaluator > | mLODEvaluator |
int | mActiveLod |
int | mRenderRank |
unsigned int | mEnableMask |
Protected Attributes inherited from vl::Object | |
std::string | mObjectName |
IMutex * | mRefCountMutex |
int | mReferenceCount |
bool | mAutomaticDelete |
Additional Inherited Members | |
Protected Member Functions inherited from vl::Object | |
virtual | ~Object () |
Defines the sequence of Shader objects used to render an Actor.
Typically an Effect will have only one LOD (level of detail) with 1 pass (i.e. 1 Shader) but you can specify multiple LODs each of which defines its own set of Shader[s].
When a LOD has more than one Shader the Actor is rendered several times, once for each Shader. This technique is called multipass rendering.
The LOD to be used during the rendering is defined at rendering time if a LODEvaluator has been installed using the method setLODEvaluator(), otherwise the LOD #0 is selected.
Definition at line 91 of file Effect.hpp.
|
inline |
Constructor.
Definition at line 101 of file Effect.hpp.
References vl::ShaderPasses::ShaderPasses().
|
inline |
Returns the lod to be used for rendering.
Definition at line 217 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::exportEffect().
Definition at line 139 of file Effect.hpp.
Definition at line 146 of file Effect.hpp.
References vl::SCM_ShareShaders.
|
inline |
The enable mask of an Actor's Effect defines whether the actor should be rendered or not depending on the Rendering::enableMask().
Definition at line 203 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::exportEffect(), and vl::Rendering::fillRenderQueue().
If a LODEvaluator is installed computes the effect LOD to be used otherwise returns 0.
Definition at line 44 of file Effect.cpp.
References mActiveLod, mLODEvaluator, and VL_CHECK.
Referenced by vl::Rendering::fillRenderQueue().
|
inline |
Returns the ShaderPasses representing the specified LOD level.
lod_level
< VL_MAX_EFFECT_LOD. Definition at line 171 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::exportEffect(), vl::Rendering::fillRenderQueue(), and vlX::VLXClassWrapper_Effect::importEffect().
|
inline |
Returns the ShaderPasses representing the specified LOD level.
lod_level
< VL_MAX_EFFECT_LOD. Definition at line 175 of file Effect.hpp.
|
inline |
Returns the installed LODEvaluator (if any) or NULL.
Definition at line 194 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::exportEffect().
|
inline |
Returns the installed LODEvaluator (if any) or NULL.
Definition at line 197 of file Effect.hpp.
|
inline |
Returns the rendering rank of an Effect.
Definition at line 167 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::exportEffect(), and vl::Rendering::fillRenderQueue().
|
inline |
Sets the lod to be used for rendering.
It must be: 0 <= lod < VL_MAX_EFFECT_LOD.
Definition at line 209 of file Effect.hpp.
References VL_CHECK.
Referenced by vlX::VLXClassWrapper_Effect::importEffect().
|
inline |
The enable mask of an Actor's Effect defines whether the actor should be rendered or not depending on the Rendering::enableMask().
Definition at line 200 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::importEffect().
|
inline |
Utility function, same as 'lod(lodi)
= new ShaderPasses(shader1,shader2,shader3,shader4);'.
Definition at line 184 of file Effect.hpp.
References vl::ShaderPasses::ShaderPasses(), and VL_CHECK.
|
inline |
Installs the LODEvaluator used to compute the current LOD at rendering time.
Definition at line 191 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::importEffect().
|
inline |
Modifies the rendering rank of an Actor.
The rendering rank affects the order in which an Actor is rendered, the greater the rank the later the Actor is rendered. The default render rank is zero.
To know more about rendering order please see Rendering Order.
Definition at line 164 of file Effect.hpp.
Referenced by vlX::VLXClassWrapper_Effect::importEffect().
|
inline |
Utility function, same as 'lod(lodi)->at(pass)
;'.
Definition at line 178 of file Effect.hpp.
Referenced by vl::Molecule::ballAndStickStyle(), vl::Molecule::generateRings(), vl::Terrain::init(), vl::DaeLoader::load(), vl::load3DS(), vl::loadAC3D(), vl::ObjLoader::loadOBJ(), vl::PlyLoader::loadPly(), vl::VectorGraphics::popScissor(), vl::SceneManagerPortals::renderPortal(), vl::DaeLoader::setup_vl_Effect(), vl::VolumePlot::setupLabels(), vl::DaeLoader::setupLights(), vl::Molecule::sticksStyle(), and vl::Molecule::wireframeStyle().
|
inline |
Utility function, same as 'lod(lodi)->at(pass)
;'.
Definition at line 181 of file Effect.hpp.
|
inline |
Definition at line 110 of file Effect.hpp.
|
inline |
Definition at line 117 of file Effect.hpp.
References mActiveLod, mEnableMask, mLODEvaluator, mLODShaders, mRenderRank, and vl::SCM_OwnShaders.
|
protected |
Definition at line 222 of file Effect.hpp.
Referenced by evaluateLOD(), and shallowCopyFrom().
|
protected |
Definition at line 224 of file Effect.hpp.
Referenced by shallowCopyFrom().
|
protected |
Definition at line 221 of file Effect.hpp.
Referenced by evaluateLOD(), and shallowCopyFrom().
|
protected |
Definition at line 220 of file Effect.hpp.
Referenced by shallowCopyFrom().
|
protected |
Definition at line 223 of file Effect.hpp.
Referenced by shallowCopyFrom().
Visualization Library 2.0.0 Reference Documentation
Updated on Wed Dec 23 2020 12:44:08.
© Copyright Michele Bosi. All rights reserved.