Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Ogre::Pass Class Reference

Class defining a single pass of a Technique (of a Material), ie a single rendering call. More...

#include <OgrePass.h>

List of all members.

Public Types

typedef std::set< Pass * > PassSet
typedef VectorIterator< TextureUnitStatesTextureUnitStateIterator
typedef ConstVectorIterator<
TextureUnitStates
ConstTextureUnitStateIterator

Public Member Functions

 Pass (Technique *parent, unsigned short index)
 Default constructor.

 Pass (Technique *parent, unsigned short index, const Pass &oth)
 Copy constructor.

Passoperator= (const Pass &oth)
 Operator = overload.

 ~Pass ()
bool isProgrammable (void) const
 Returns true if this pass is programmable ie includes either a vertex or fragment program.

bool hasVertexProgram (void) const
 Returns true if this pass uses a programmable vertex pipeline.

bool hasFragmentProgram (void) const
 Returns true if this pass uses a programmable fragment pipeline.

bool hasShadowCasterVertexProgram (void) const
 Returns true if this pass uses a shadow caster vertex program.

bool hasShadowReceiverVertexProgram (void) const
 Returns true if this pass uses a shadow receiver vertex program.

bool hasShadowReceiverFragmentProgram (void) const
 Returns true if this pass uses a shadow receiver fragment program.

unsigned short getIndex (void) const
 Gets the index of this Pass in the parent Technique.

void setName (const String &name)
const StringgetName (void) const
 get the name of the pass

void setAmbient (Real red, Real green, Real blue)
 Sets the ambient colour reflectance properties of this pass.

void setAmbient (const ColourValue &ambient)
 Sets the ambient colour reflectance properties of this pass.

void setDiffuse (Real red, Real green, Real blue, Real alpha)
 Sets the diffuse colour reflectance properties of this pass.

void setDiffuse (const ColourValue &diffuse)
 Sets the diffuse colour reflectance properties of this pass.

void setSpecular (Real red, Real green, Real blue, Real alpha)
 Sets the specular colour reflectance properties of this pass.

void setSpecular (const ColourValue &specular)
 Sets the specular colour reflectance properties of this pass.

void setShininess (Real val)
 Sets the shininess of the pass, affecting the size of specular highlights.

void setSelfIllumination (Real red, Real green, Real blue)
 Sets the amount of self-illumination an object has.

void setSelfIllumination (const ColourValue &selfIllum)
 Sets the amount of self-illumination an object has.

void setVertexColourTracking (TrackVertexColourType tracking)
 Sets which material properties follow the vertex colour.

Real getPointSize (void) const
 Gets the point size of the pass.

void setPointSize (Real ps)
 Sets the point size of this pass.

void setPointSpritesEnabled (bool enabled)
 Sets whether or not rendering points using OT_POINT_LIST will render point sprites (textured quads) or plain points (dots).

bool getPointSpritesEnabled (void) const
 Returns whether point sprites are enabled when rendering a point list.

void setPointAttenuation (bool enabled, Real constant=0.0f, Real linear=1.0f, Real quadratic=0.0f)
 Sets how points are attenuated with distance.

bool isPointAttenuationEnabled (void) const
 Returns whether points are attenuated with distance.

Real getPointAttenuationConstant (void) const
 Returns the constant coefficient of point attenuation.

Real getPointAttenuationLinear (void) const
 Returns the linear coefficient of point attenuation.

Real getPointAttenuationQuadratic (void) const
 Returns the quadratic coefficient of point attenuation.

void setPointMinSize (Real min)
 Set the minimum point size, when point attenuation is in use.

Real getPointMinSize (void) const
 Get the minimum point size, when point attenuation is in use.

void setPointMaxSize (Real max)
 Set the maximum point size, when point attenuation is in use.

Real getPointMaxSize (void) const
 Get the maximum point size, when point attenuation is in use.

const ColourValuegetAmbient (void) const
 Gets the ambient colour reflectance of the pass.

const ColourValuegetDiffuse (void) const
 Gets the diffuse colour reflectance of the pass.

const ColourValuegetSpecular (void) const
 Gets the specular colour reflectance of the pass.

const ColourValuegetSelfIllumination (void) const
 Gets the self illumination colour of the pass.

Real getShininess (void) const
 Gets the 'shininess' property of the pass (affects specular highlights).

TrackVertexColourType getVertexColourTracking (void) const
 Gets which material properties follow the vertex colour.

TextureUnitStatecreateTextureUnitState (void)
 Inserts a new TextureUnitState object into the Pass.

TextureUnitStatecreateTextureUnitState (const String &textureName, unsigned short texCoordSet=0)
 Inserts a new TextureUnitState object into the Pass.

void addTextureUnitState (TextureUnitState *state)
 Adds the passed in TextureUnitState, to the existing Pass.

TextureUnitStategetTextureUnitState (unsigned short index)
 Retrieves a pointer to a texture unit state so it may be modified.

TextureUnitStategetTextureUnitState (const String &name)
 Retrieves the Texture Unit State matching name.

const TextureUnitStategetTextureUnitState (unsigned short index) const
 Retrieves a const pointer to a texture unit state.

const TextureUnitStategetTextureUnitState (const String &name) const
 Retrieves the Texture Unit State matching name.

unsigned short getTextureUnitStateIndex (const TextureUnitState *state)
 Retrieve the index of the Texture Unit State in the pass.

TextureUnitStateIterator getTextureUnitStateIterator (void)
 Get an iterator over the TextureUnitStates contained in this Pass.

ConstTextureUnitStateIterator getTextureUnitStateIterator (void) const
 Get an iterator over the TextureUnitStates contained in this Pass.

void removeTextureUnitState (unsigned short index)
 Removes the indexed texture unit state from this pass.

void removeAllTextureUnitStates (void)
 Removes all texture unit settings.

size_t getNumTextureUnitStates (void) const
 Returns the number of texture unit settings.

void setSceneBlending (const SceneBlendType sbt)
 Sets the kind of blending this pass has with the existing contents of the scene.

void setSceneBlending (const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor)
 Allows very fine control of blending this Pass with the existing contents of the scene.

SceneBlendFactor getSourceBlendFactor () const
 Retrieves the source blending factor for the material (as set using Materiall::setSceneBlending).

SceneBlendFactor getDestBlendFactor () const
 Retrieves the destination blending factor for the material (as set using Materiall::setSceneBlending).

bool isTransparent (void) const
 Returns true if this pass has some element of transparency.

void setDepthCheckEnabled (bool enabled)
 Sets whether or not this pass renders with depth-buffer checking on or not.

bool getDepthCheckEnabled (void) const
 Returns whether or not this pass renders with depth-buffer checking on or not.

void setDepthWriteEnabled (bool enabled)
 Sets whether or not this pass renders with depth-buffer writing on or not.

bool getDepthWriteEnabled (void) const
 Returns whether or not this pass renders with depth-buffer writing on or not.

void setDepthFunction (CompareFunction func)
 Sets the function used to compare depth values when depth checking is on.

CompareFunction getDepthFunction (void) const
 Returns the function used to compare depth values when depth checking is on.

void setColourWriteEnabled (bool enabled)
 Sets whether or not colour buffer writing is enabled for this Pass.

bool getColourWriteEnabled (void) const
 Determines if colour buffer writing is enabled for this pass.

void setCullingMode (CullingMode mode)
 Sets the culling mode for this pass based on the 'vertex winding'.

CullingMode getCullingMode (void) const
 Returns the culling mode for geometry rendered with this pass.

void setManualCullingMode (ManualCullingMode mode)
 Sets the manual culling mode, performed by CPU rather than hardware.

ManualCullingMode getManualCullingMode (void) const
 Retrieves the manual culling mode for this pass.

void setLightingEnabled (bool enabled)
 Sets whether or not dynamic lighting is enabled.

bool getLightingEnabled (void) const
 Returns whether or not dynamic lighting is enabled.

void setMaxSimultaneousLights (unsigned short maxLights)
 Sets the maximum number of lights to be used by this pass.

unsigned short getMaxSimultaneousLights (void) const
 Gets the maximum number of lights to be used by this pass.

void setShadingMode (ShadeOptions mode)
 Sets the type of light shading required.

ShadeOptions getShadingMode (void) const
 Returns the type of light shading to be used.

void setPolygonMode (PolygonMode mode)
 Sets the type of polygon rendering required.

PolygonMode getPolygonMode (void) const
 Returns the type of light shading to be used.

void setFog (bool overrideScene, FogMode mode=FOG_NONE, const ColourValue &colour=ColourValue::White, Real expDensity=0.001, Real linearStart=0.0, Real linearEnd=1.0)
 Sets the fogging mode applied to this pass.

bool getFogOverride (void) const
 Returns true if this pass is to override the scene fog settings.

FogMode getFogMode (void) const
 Returns the fog mode for this pass.

const ColourValuegetFogColour (void) const
 Returns the fog colour for the scene.

Real getFogStart (void) const
 Returns the fog start distance for this pass.

Real getFogEnd (void) const
 Returns the fog end distance for this pass.

Real getFogDensity (void) const
 Returns the fog density for this pass.

void setDepthBias (ushort bias)
 Sets the depth bias to be used for this material.

ushort getDepthBias (void) const
 Retrieves the depth bias value as set by setDepthValue.

void setAlphaRejectSettings (CompareFunction func, unsigned char value)
 Sets the way the pass will have use alpha to totally reject pixels from the pipeline.

void setAlphaRejectFunction (CompareFunction func)
 Sets the alpha reject function.

void setAlphaRejectValue (unsigned char val)
 Gets the alpha reject value.

CompareFunction getAlphaRejectFunction (void) const
 Gets the alpha reject function.

unsigned char getAlphaRejectValue (void) const
 Gets the alpha reject value.

void setIteratePerLight (bool enabled, bool onlyForOneLightType=true, Light::LightTypes lightType=Light::LT_POINT)
 Sets whether or not this pass should iterate per light which can affect the object being rendered.

bool getIteratePerLight (void) const
 Does this pass run once for every light in range?

bool getRunOnlyForOneLightType (void) const
 Does this pass run only for a single light type (if getIteratePerLight is true).

Light::LightTypes getOnlyLightType () const
 Gets the single light type this pass runs for if getIteratePerLight and getRunOnlyForOneLightType are both true.

TechniquegetParent (void)
 Gets the parent Technique.

const StringgetResourceGroup (void) const
 Gets the resource group of the ultimate parent Material.

void setVertexProgram (const String &name, bool resetParams=true)
 Sets the details of the vertex program to use.

void setVertexProgramParameters (GpuProgramParametersSharedPtr params)
 Sets the vertex program parameters.

const StringgetVertexProgramName (void) const
 Gets the name of the vertex program used by this pass.

GpuProgramParametersSharedPtr getVertexProgramParameters (void) const
 Gets the vertex program parameters used by this pass.

const GpuProgramPtrgetVertexProgram (void) const
 Gets the vertex program used by this pass, only available after _load().

void setShadowCasterVertexProgram (const String &name)
 Sets the details of the vertex program to use when rendering as a shadow caster.

void setShadowCasterVertexProgramParameters (GpuProgramParametersSharedPtr params)
 Sets the vertex program parameters for rendering as a shadow caster.

const StringgetShadowCasterVertexProgramName (void) const
 Gets the name of the vertex program used by this pass when rendering shadow casters.

GpuProgramParametersSharedPtr getShadowCasterVertexProgramParameters (void) const
 Gets the vertex program parameters used by this pass when rendering shadow casters.

const GpuProgramPtrgetShadowCasterVertexProgram (void) const
 Gets the vertex program used by this pass when rendering shadow casters, only available after _load().

void setShadowReceiverVertexProgram (const String &name)
 Sets the details of the vertex program to use when rendering as a shadow receiver.

void setShadowReceiverVertexProgramParameters (GpuProgramParametersSharedPtr params)
 Sets the vertex program parameters for rendering as a shadow receiver.

void setShadowReceiverFragmentProgram (const String &name)
 This method allows you to specify a fragment program for use when rendering a texture shadow receiver.

void setShadowReceiverFragmentProgramParameters (GpuProgramParametersSharedPtr params)
 Sets the fragment program parameters for rendering as a shadow receiver.

const StringgetShadowReceiverVertexProgramName (void) const
 Gets the name of the vertex program used by this pass when rendering shadow receivers.

GpuProgramParametersSharedPtr getShadowReceiverVertexProgramParameters (void) const
 Gets the vertex program parameters used by this pass when rendering shadow receivers.

const GpuProgramPtrgetShadowReceiverVertexProgram (void) const
 Gets the vertex program used by this pass when rendering shadow receivers, only available after _load().

const StringgetShadowReceiverFragmentProgramName (void) const
 Gets the name of the fragment program used by this pass when rendering shadow receivers.

GpuProgramParametersSharedPtr getShadowReceiverFragmentProgramParameters (void) const
 Gets the fragment program parameters used by this pass when rendering shadow receivers.

const GpuProgramPtrgetShadowReceiverFragmentProgram (void) const
 Gets the fragment program used by this pass when rendering shadow receivers, only available after _load().

void setFragmentProgram (const String &name, bool resetParams=true)
 Sets the details of the fragment program to use.

void setFragmentProgramParameters (GpuProgramParametersSharedPtr params)
 Sets the vertex program parameters.

const StringgetFragmentProgramName (void) const
 Gets the name of the fragment program used by this pass.

GpuProgramParametersSharedPtr getFragmentProgramParameters (void) const
 Gets the vertex program parameters used by this pass.

const GpuProgramPtrgetFragmentProgram (void) const
 Gets the vertex program used by this pass, only available after _load().

Pass_split (unsigned short numUnits)
 Splits this Pass to one which can be handled in the number of texture units specified.

void _notifyIndex (unsigned short index)
 Internal method to adjust pass index.

void _load (void)
 Internal method for loading this pass.

void _unload (void)
 Internal method for unloading this pass.

bool isLoaded (void) const
uint32 getHash (void) const
 Gets the 'hash' of this pass, ie a precomputed number to use for sorting.

void _dirtyHash (void)
 Mark the hash as dirty.

void _recalculateHash (void)
 Internal method for recalculating the hash.

void _notifyNeedsRecompile (void)
 Tells the pass that it needs recompilation.

void _updateAutoParamsNoLights (const AutoParamDataSource &source) const
 Update any automatic parameters (except lights) on this pass.

void _updateAutoParamsLightsOnly (const AutoParamDataSource &source) const
 Update any automatic light parameters on this pass.

void setTextureFiltering (TextureFilterOptions filterType)
 Set texture filtering for every texture unit.

void setTextureAnisotropy (unsigned int maxAniso)
 Sets the anisotropy level to be used for all textures.

void queueForDeletion (void)
 Queue this pass for deletion when appropriate.

bool isAmbientOnly (void) const
 Returns whether this pass is ambient only.

void setPassIterationCount (const size_t count)
 set the number of iterations that this pass should perform when doing fast multi pass operation.

size_t getPassIterationCount (void) const
 Gets the multi pass count value.

bool applyTextureAliases (const AliasTextureNamePairList &aliasList, const bool apply=true) const
 Applies texture names to Texture Unit State with matching texture name aliases.


Static Public Member Functions

const PassSetgetDirtyHashList (void)
 Static method to retrieve all the Passes which need their hash values recalculated.

const PassSetgetPassGraveyard (void)
 Static method to retrieve all the Passes which are pending deletion.

void clearDirtyHashList (void)
 Static method to reset the list of passes which need their hash values recalculated.

void processPendingPassUpdates (void)
 Process all dirty and pending deletion passes.


Protected Types

typedef std::vector< TextureUnitState * > TextureUnitStates
 Storage of texture unit states.


Protected Attributes

TechniquemParent
unsigned short mIndex
String mName
uint32 mHash
ColourValue mAmbient
ColourValue mDiffuse
ColourValue mSpecular
ColourValue mEmissive
Real mShininess
TrackVertexColourType mTracking
SceneBlendFactor mSourceBlendFactor
SceneBlendFactor mDestBlendFactor
bool mDepthCheck
bool mDepthWrite
CompareFunction mDepthFunc
ushort mDepthBias
bool mColourWrite
CompareFunction mAlphaRejectFunc
unsigned char mAlphaRejectVal
CullingMode mCullMode
ManualCullingMode mManualCullMode
bool mLightingEnabled
 Lighting enabled?

unsigned short mMaxSimultaneousLights
 Max simultaneous lights.

bool mIteratePerLight
 Run this pass once per light?

bool mRunOnlyForOneLightType
Light::LightTypes mOnlyLightType
ShadeOptions mShadeOptions
 Shading options.

PolygonMode mPolygonMode
 Polygon mode.

bool mFogOverride
FogMode mFogMode
ColourValue mFogColour
Real mFogStart
Real mFogEnd
Real mFogDensity
TextureUnitStates mTextureUnitStates
GpuProgramUsagemVertexProgramUsage
GpuProgramUsagemShadowCasterVertexProgramUsage
GpuProgramUsagemShadowReceiverVertexProgramUsage
GpuProgramUsagemFragmentProgramUsage
GpuProgramUsagemShadowReceiverFragmentProgramUsage
bool mQueuedForDeletion
size_t mPassIterationCount
Real mPointSize
Real mPointMinSize
Real mPointMaxSize
bool mPointSpritesEnabled
bool mPointAttenuationEnabled
Real mPointAttenuationCoeffs [3]

Static Protected Attributes

PassSet msDirtyHashList
 List of Passes whose hashes need recalculating.

PassSet msPassGraveyard
 The place where passes go to die.


Detailed Description

Class defining a single pass of a Technique (of a Material), ie a single rendering call.

Remarks:
Rendering can be repeated with many passes for more complex effects. Each pass is either a fixed-function pass (meaning it does not use a vertex or fragment program) or a programmable pass (meaning it does use either a vertex and fragment program, or both).
Programmable passes are complex to define, because they require custom programs and you have to set all constant inputs to the programs (like the position of lights, any base material colours you wish to use etc), but they do give you much total flexibility over the algorithms used to render your pass, and you can create some effects which are impossible with a fixed-function pass. On the other hand, you can define a fixed-function pass in very little time, and you can use a range of fixed-function effects like environment mapping very easily, plus your pass will be more likely to be compatible with older hardware. There are pros and cons to both, just remember that if you use a programmable pass to create some great effects, allow more time for definition and testing.

Definition at line 55 of file OgrePass.h.


Member Typedef Documentation

typedef ConstVectorIterator<TextureUnitStates> Ogre::Pass::ConstTextureUnitStateIterator
 

Definition at line 454 of file OgrePass.h.

typedef std::set<Pass*> Ogre::Pass::PassSet
 

Definition at line 151 of file OgrePass.h.

Referenced by getDirtyHashList(), and getPassGraveyard().

typedef VectorIterator<TextureUnitStates> Ogre::Pass::TextureUnitStateIterator
 

Definition at line 450 of file OgrePass.h.

typedef std::vector<TextureUnitState*> Ogre::Pass::TextureUnitStates [protected]
 

Storage of texture unit states.

Definition at line 125 of file OgrePass.h.


Constructor & Destructor Documentation

Ogre::Pass::Pass Technique parent,
unsigned short  index
 

Default constructor.

Ogre::Pass::Pass Technique parent,
unsigned short  index,
const Pass oth
 

Copy constructor.

Ogre::Pass::~Pass  ) 
 


Member Function Documentation

void Ogre::Pass::_dirtyHash void   ) 
 

Mark the hash as dirty.

void Ogre::Pass::_load void   ) 
 

Internal method for loading this pass.

void Ogre::Pass::_notifyIndex unsigned short  index  ) 
 

Internal method to adjust pass index.

void Ogre::Pass::_notifyNeedsRecompile void   ) 
 

Tells the pass that it needs recompilation.

void Ogre::Pass::_recalculateHash void   ) 
 

Internal method for recalculating the hash.

Remarks:
Do not call this unless you are sure the old hash is not still being used by anything. If in doubt, call _dirtyHash if you want to force recalculation of the has next time.

Pass* Ogre::Pass::_split unsigned short  numUnits  ) 
 

Splits this Pass to one which can be handled in the number of texture units specified.

Remarks:
Only works on non-programmable passes, programmable passes cannot be split, it's up to the author to ensure that there is a fallback Technique for less capable cards.
Parameters:
numUnits The target number of texture units
Returns:
A new Pass which contains the remaining units, and a scene_blend setting appropriate to approximate the multitexture. This Pass will be attached to the parent Technique of this Pass.

void Ogre::Pass::_unload void   ) 
 

Internal method for unloading this pass.

void Ogre::Pass::_updateAutoParamsLightsOnly const AutoParamDataSource source  )  const
 

Update any automatic light parameters on this pass.

void Ogre::Pass::_updateAutoParamsNoLights const AutoParamDataSource source  )  const
 

Update any automatic parameters (except lights) on this pass.

void Ogre::Pass::addTextureUnitState TextureUnitState state  ) 
 

Adds the passed in TextureUnitState, to the existing Pass.

Parameters:
state The Texture Unit State to be attached to this pass. It must not be attached to another pass.
Note:
Throws an exception if the TextureUnitState is attached to another Pass.

bool Ogre::Pass::applyTextureAliases const AliasTextureNamePairList aliasList,
const bool  apply = true
const
 

Applies texture names to Texture Unit State with matching texture name aliases.

All Texture Unit States within the pass are checked. If matching texture aliases are found then true is returned.

Parameters:
aliasList is a map container of texture alias, texture name pairs
apply set true to apply the texture aliases else just test to see if texture alias matches are found.
Returns:
True if matching texture aliases were found in the pass.

void Ogre::Pass::clearDirtyHashList void   )  [static]
 

Static method to reset the list of passes which need their hash values recalculated.

Remarks:
For performance, the dirty list is not updated progressively as the hashes are recalculated, instead we expect the processor of the dirty hash list to clear the list when they are done.

Definition at line 1108 of file OgrePass.h.

TextureUnitState* Ogre::Pass::createTextureUnitState const String textureName,
unsigned short  texCoordSet = 0
 

Inserts a new TextureUnitState object into the Pass.

Remarks:
This unit is is added on top of all previous units.
Parameters:
name The basic name of the texture e.g. brickwall.jpg, stonefloor.png
texCoordSet The index of the texture coordinate set to use.
Note:
Applies to both fixed-function and programmable passes.

TextureUnitState* Ogre::Pass::createTextureUnitState void   ) 
 

Inserts a new TextureUnitState object into the Pass.

Remarks:
This unit is is added on top of all previous units.

CompareFunction Ogre::Pass::getAlphaRejectFunction void   )  const
 

Gets the alpha reject function.

See setAlphaRejectSettings for more information.

Definition at line 783 of file OgrePass.h.

References Ogre::CompareFunction.

unsigned char Ogre::Pass::getAlphaRejectValue void   )  const
 

Gets the alpha reject value.

See setAlphaRejectSettings for more information.

Definition at line 787 of file OgrePass.h.

const ColourValue& Ogre::Pass::getAmbient void   )  const
 

Gets the ambient colour reflectance of the pass.

bool Ogre::Pass::getColourWriteEnabled void   )  const
 

Determines if colour buffer writing is enabled for this pass.

CullingMode Ogre::Pass::getCullingMode void   )  const
 

Returns the culling mode for geometry rendered with this pass.

See setCullingMode for more information.

ushort Ogre::Pass::getDepthBias void   )  const
 

Retrieves the depth bias value as set by setDepthValue.

bool Ogre::Pass::getDepthCheckEnabled void   )  const
 

Returns whether or not this pass renders with depth-buffer checking on or not.

See also:
setDepthCheckEnabled

CompareFunction Ogre::Pass::getDepthFunction void   )  const
 

Returns the function used to compare depth values when depth checking is on.

See also:
setDepthFunction

bool Ogre::Pass::getDepthWriteEnabled void   )  const
 

Returns whether or not this pass renders with depth-buffer writing on or not.

See also:
setDepthWriteEnabled

SceneBlendFactor Ogre::Pass::getDestBlendFactor  )  const
 

Retrieves the destination blending factor for the material (as set using Materiall::setSceneBlending).

const ColourValue& Ogre::Pass::getDiffuse void   )  const
 

Gets the diffuse colour reflectance of the pass.

const PassSet& Ogre::Pass::getDirtyHashList void   )  [static]
 

Static method to retrieve all the Passes which need their hash values recalculated.

Definition at line 1095 of file OgrePass.h.

References PassSet.

const ColourValue& Ogre::Pass::getFogColour void   )  const
 

Returns the fog colour for the scene.

Real Ogre::Pass::getFogDensity void   )  const
 

Returns the fog density for this pass.

Note:
Only valid if getFogOverride is true.

Real Ogre::Pass::getFogEnd void   )  const
 

Returns the fog end distance for this pass.

Note:
Only valid if getFogOverride is true.

FogMode Ogre::Pass::getFogMode void   )  const
 

Returns the fog mode for this pass.

Note:
Only valid if getFogOverride is true.

bool Ogre::Pass::getFogOverride void   )  const
 

Returns true if this pass is to override the scene fog settings.

Real Ogre::Pass::getFogStart void   )  const
 

Returns the fog start distance for this pass.

Note:
Only valid if getFogOverride is true.

const GpuProgramPtr& Ogre::Pass::getFragmentProgram void   )  const
 

Gets the vertex program used by this pass, only available after _load().

const String& Ogre::Pass::getFragmentProgramName void   )  const
 

Gets the name of the fragment program used by this pass.

GpuProgramParametersSharedPtr Ogre::Pass::getFragmentProgramParameters void   )  const
 

Gets the vertex program parameters used by this pass.

uint32 Ogre::Pass::getHash void   )  const
 

Gets the 'hash' of this pass, ie a precomputed number to use for sorting.

Remarks:
This hash is used to sort passes, and for this reason the pass is hashed using firstly its index (so that all passes are rendered in order), then by the textures which it's TextureUnitState instances are using.

Referenced by Ogre::QueuedRenderableCollection::RadixSortFunctorPass::operator()(), Ogre::QueuedRenderableCollection::DepthSortDescendingLess::operator()(), and Ogre::QueuedRenderableCollection::PassGroupLess::operator()().

unsigned short Ogre::Pass::getIndex void   )  const
 

Gets the index of this Pass in the parent Technique.

Definition at line 181 of file OgrePass.h.

bool Ogre::Pass::getIteratePerLight void   )  const
 

Does this pass run once for every light in range?

Definition at line 829 of file OgrePass.h.

bool Ogre::Pass::getLightingEnabled void   )  const
 

Returns whether or not dynamic lighting is enabled.

ManualCullingMode Ogre::Pass::getManualCullingMode void   )  const
 

Retrieves the manual culling mode for this pass.

See also:
setManualCullingMode

unsigned short Ogre::Pass::getMaxSimultaneousLights void   )  const
 

Gets the maximum number of lights to be used by this pass.

const String& Ogre::Pass::getName void   )  const
 

get the name of the pass

Definition at line 189 of file OgrePass.h.

References Ogre::String.

size_t Ogre::Pass::getNumTextureUnitStates void   )  const
 

Returns the number of texture unit settings.

Definition at line 470 of file OgrePass.h.

Light::LightTypes Ogre::Pass::getOnlyLightType  )  const
 

Gets the single light type this pass runs for if getIteratePerLight and getRunOnlyForOneLightType are both true.

Definition at line 834 of file OgrePass.h.

Technique* Ogre::Pass::getParent void   ) 
 

Gets the parent Technique.

Definition at line 837 of file OgrePass.h.

const PassSet& Ogre::Pass::getPassGraveyard void   )  [static]
 

Static method to retrieve all the Passes which are pending deletion.

Definition at line 1099 of file OgrePass.h.

References PassSet.

size_t Ogre::Pass::getPassIterationCount void   )  const
 

Gets the multi pass count value.

Definition at line 1137 of file OgrePass.h.

Real Ogre::Pass::getPointAttenuationConstant void   )  const
 

Returns the constant coefficient of point attenuation.

Real Ogre::Pass::getPointAttenuationLinear void   )  const
 

Returns the linear coefficient of point attenuation.

Real Ogre::Pass::getPointAttenuationQuadratic void   )  const
 

Returns the quadratic coefficient of point attenuation.

Real Ogre::Pass::getPointMaxSize void   )  const
 

Get the maximum point size, when point attenuation is in use.

Remarks:
0 indicates the max size supported by the card.

Real Ogre::Pass::getPointMinSize void   )  const
 

Get the minimum point size, when point attenuation is in use.

Real Ogre::Pass::getPointSize void   )  const
 

Gets the point size of the pass.

Remarks:
This property determines what point size is used to render a point list.

bool Ogre::Pass::getPointSpritesEnabled void   )  const
 

Returns whether point sprites are enabled when rendering a point list.

PolygonMode Ogre::Pass::getPolygonMode void   )  const
 

Returns the type of light shading to be used.

const String& Ogre::Pass::getResourceGroup void   )  const
 

Gets the resource group of the ultimate parent Material.

bool Ogre::Pass::getRunOnlyForOneLightType void   )  const
 

Does this pass run only for a single light type (if getIteratePerLight is true).

Definition at line 831 of file OgrePass.h.

const ColourValue& Ogre::Pass::getSelfIllumination void   )  const
 

Gets the self illumination colour of the pass.

ShadeOptions Ogre::Pass::getShadingMode void   )  const
 

Returns the type of light shading to be used.

const GpuProgramPtr& Ogre::Pass::getShadowCasterVertexProgram void   )  const
 

Gets the vertex program used by this pass when rendering shadow casters, only available after _load().

const String& Ogre::Pass::getShadowCasterVertexProgramName void   )  const
 

Gets the name of the vertex program used by this pass when rendering shadow casters.

GpuProgramParametersSharedPtr Ogre::Pass::getShadowCasterVertexProgramParameters void   )  const
 

Gets the vertex program parameters used by this pass when rendering shadow casters.

const GpuProgramPtr& Ogre::Pass::getShadowReceiverFragmentProgram void   )  const
 

Gets the fragment program used by this pass when rendering shadow receivers, only available after _load().

const String& Ogre::Pass::getShadowReceiverFragmentProgramName void   )  const
 

Gets the name of the fragment program used by this pass when rendering shadow receivers.

GpuProgramParametersSharedPtr Ogre::Pass::getShadowReceiverFragmentProgramParameters void   )  const
 

Gets the fragment program parameters used by this pass when rendering shadow receivers.

const GpuProgramPtr& Ogre::Pass::getShadowReceiverVertexProgram void   )  const
 

Gets the vertex program used by this pass when rendering shadow receivers, only available after _load().

const String& Ogre::Pass::getShadowReceiverVertexProgramName void   )  const
 

Gets the name of the vertex program used by this pass when rendering shadow receivers.

GpuProgramParametersSharedPtr Ogre::Pass::getShadowReceiverVertexProgramParameters void   )  const
 

Gets the vertex program parameters used by this pass when rendering shadow receivers.

Real Ogre::Pass::getShininess void   )  const
 

Gets the 'shininess' property of the pass (affects specular highlights).

SceneBlendFactor Ogre::Pass::getSourceBlendFactor  )  const
 

Retrieves the source blending factor for the material (as set using Materiall::setSceneBlending).

const ColourValue& Ogre::Pass::getSpecular void   )  const
 

Gets the specular colour reflectance of the pass.

const TextureUnitState* Ogre::Pass::getTextureUnitState const String name  )  const
 

Retrieves the Texture Unit State matching name.

Returns 0 if name match is not found.

const TextureUnitState* Ogre::Pass::getTextureUnitState unsigned short  index  )  const
 

Retrieves a const pointer to a texture unit state.

TextureUnitState* Ogre::Pass::getTextureUnitState const String name  ) 
 

Retrieves the Texture Unit State matching name.

Returns 0 if name match is not found.

TextureUnitState* Ogre::Pass::getTextureUnitState unsigned short  index  ) 
 

Retrieves a pointer to a texture unit state so it may be modified.

unsigned short Ogre::Pass::getTextureUnitStateIndex const TextureUnitState state  ) 
 

Retrieve the index of the Texture Unit State in the pass.

Parameters:
state The Texture Unit State this is attached to this pass.
Note:
Throws an exception if the state is not attached to the pass.

ConstTextureUnitStateIterator Ogre::Pass::getTextureUnitStateIterator void   )  const
 

Get an iterator over the TextureUnitStates contained in this Pass.

TextureUnitStateIterator Ogre::Pass::getTextureUnitStateIterator void   ) 
 

Get an iterator over the TextureUnitStates contained in this Pass.

TrackVertexColourType Ogre::Pass::getVertexColourTracking void   )  const
 

Gets which material properties follow the vertex colour.

const GpuProgramPtr& Ogre::Pass::getVertexProgram void   )  const
 

Gets the vertex program used by this pass, only available after _load().

const String& Ogre::Pass::getVertexProgramName void   )  const
 

Gets the name of the vertex program used by this pass.

GpuProgramParametersSharedPtr Ogre::Pass::getVertexProgramParameters void   )  const
 

Gets the vertex program parameters used by this pass.

bool Ogre::Pass::hasFragmentProgram void   )  const
 

Returns true if this pass uses a programmable fragment pipeline.

Definition at line 171 of file OgrePass.h.

bool Ogre::Pass::hasShadowCasterVertexProgram void   )  const
 

Returns true if this pass uses a shadow caster vertex program.

Definition at line 173 of file OgrePass.h.

bool Ogre::Pass::hasShadowReceiverFragmentProgram void   )  const
 

Returns true if this pass uses a shadow receiver fragment program.

Definition at line 177 of file OgrePass.h.

bool Ogre::Pass::hasShadowReceiverVertexProgram void   )  const
 

Returns true if this pass uses a shadow receiver vertex program.

Definition at line 175 of file OgrePass.h.

bool Ogre::Pass::hasVertexProgram void   )  const
 

Returns true if this pass uses a programmable vertex pipeline.

Definition at line 169 of file OgrePass.h.

bool Ogre::Pass::isAmbientOnly void   )  const
 

Returns whether this pass is ambient only.

bool Ogre::Pass::isLoaded void   )  const
 

bool Ogre::Pass::isPointAttenuationEnabled void   )  const
 

Returns whether points are attenuated with distance.

bool Ogre::Pass::isProgrammable void   )  const
 

Returns true if this pass is programmable ie includes either a vertex or fragment program.

Definition at line 167 of file OgrePass.h.

bool Ogre::Pass::isTransparent void   )  const
 

Returns true if this pass has some element of transparency.

Pass& Ogre::Pass::operator= const Pass oth  ) 
 

Operator = overload.

void Ogre::Pass::processPendingPassUpdates void   )  [static]
 

Process all dirty and pending deletion passes.

void Ogre::Pass::queueForDeletion void   ) 
 

Queue this pass for deletion when appropriate.

void Ogre::Pass::removeAllTextureUnitStates void   ) 
 

Removes all texture unit settings.

void Ogre::Pass::removeTextureUnitState unsigned short  index  ) 
 

Removes the indexed texture unit state from this pass.

Remarks:
Note that removing a texture which is not the topmost will have a larger performance impact.

void Ogre::Pass::setAlphaRejectFunction CompareFunction  func  ) 
 

Sets the alpha reject function.

See setAlphaRejectSettings for more information.

void Ogre::Pass::setAlphaRejectSettings CompareFunction  func,
unsigned char  value
 

Sets the way the pass will have use alpha to totally reject pixels from the pipeline.

Remarks:
The default is CMPF_ALWAYS_PASS i.e. alpha is not used to reject pixels.
Parameters:
func The comparison which must pass for the pixel to be written.
value 1 byte value against which alpha values will be tested(0-255)
Note:
This option applies in both the fixed function and the programmable pipeline.

void Ogre::Pass::setAlphaRejectValue unsigned char  val  ) 
 

Gets the alpha reject value.

See setAlphaRejectSettings for more information.

void Ogre::Pass::setAmbient const ColourValue ambient  ) 
 

Sets the ambient colour reflectance properties of this pass.

Remarks:
The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much ambient light (directionless global light) is reflected. The default is full white, meaning objects are completely globally illuminated. Reduce this if you want to see diffuse or specular light effects, or change the blend of colours to make the object have a base colour other than white.
Note:
This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setAmbient Real  red,
Real  green,
Real  blue
 

Sets the ambient colour reflectance properties of this pass.

Remarks:
The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much ambient light (directionless global light) is reflected. The default is full white, meaning objects are completely globally illuminated. Reduce this if you want to see diffuse or specular light effects, or change the blend of colours to make the object have a base colour other than white.
Note:
This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setColourWriteEnabled bool  enabled  ) 
 

Sets whether or not colour buffer writing is enabled for this Pass.

Remarks:
For some effects, you might wish to turn off the colour write operation when rendering geometry; this means that only the depth buffer will be updated (provided you have depth buffer writing enabled, which you probably will do, although you may wish to only update the stencil buffer for example - stencil buffer state is managed at the RenderSystem level only, not the Material since you are likely to want to manage it at a higher level).

void Ogre::Pass::setCullingMode CullingMode  mode  ) 
 

Sets the culling mode for this pass based on the 'vertex winding'.

Remarks:
A typical way for the rendering engine to cull triangles is based on the 'vertex winding' of triangles. Vertex winding refers to the direction in which the vertices are passed or indexed to in the rendering operation as viewed from the camera, and will wither be clockwise or anticlockwise (that's 'counterclockwise' for you Americans out there ;) The default is CULL_CLOCKWISE i.e. that only triangles whose vertices are passed/indexed in anticlockwise order are rendered - this is a common approach and is used in 3D studio models for example. You can alter this culling mode if you wish but it is not advised unless you know what you are doing.
You may wish to use the CULL_NONE option for mesh data that you cull yourself where the vertex winding is uncertain.

void Ogre::Pass::setDepthBias ushort  bias  ) 
 

Sets the depth bias to be used for this material.

Remarks:
When polygons are coplanar, you can get problems with 'depth fighting' where the pixels from the two polys compete for the same screen pixel. This is particularly a problem for decals (polys attached to another surface to represent details such as bulletholes etc.).
A way to combat this problem is to use a depth bias to adjust the depth buffer value used for the decal such that it is slightly higher than the true value, ensuring that the decal appears on top.
Parameters:
bias The bias value, should be between 0 and 16.

void Ogre::Pass::setDepthCheckEnabled bool  enabled  ) 
 

Sets whether or not this pass renders with depth-buffer checking on or not.

Remarks:
If depth-buffer checking is on, whenever a pixel is about to be written to the frame buffer the depth buffer is checked to see if the pixel is in front of all other pixels written at that point. If not, the pixel is not written.
If depth checking is off, pixels are written no matter what has been rendered before. Also see setDepthFunction for more advanced depth check configuration.
See also:
setDepthFunction

void Ogre::Pass::setDepthFunction CompareFunction  func  ) 
 

Sets the function used to compare depth values when depth checking is on.

Remarks:
If depth checking is enabled (see setDepthCheckEnabled) a comparison occurs between the depth value of the pixel to be written and the current contents of the buffer. This comparison is normally CMPF_LESS_EQUAL, i.e. the pixel is written if it is closer (or at the same distance) than the current contents. If you wish you can change this comparison using this method.

void Ogre::Pass::setDepthWriteEnabled bool  enabled  ) 
 

Sets whether or not this pass renders with depth-buffer writing on or not.

Remarks:
If depth-buffer writing is on, whenever a pixel is written to the frame buffer the depth buffer is updated with the depth value of that new pixel, thus affecting future rendering operations if future pixels are behind this one.
If depth writing is off, pixels are written without updating the depth buffer Depth writing should normally be on but can be turned off when rendering static backgrounds or when rendering a collection of transparent objects at the end of a scene so that they overlap each other correctly.

void Ogre::Pass::setDiffuse const ColourValue diffuse  ) 
 

Sets the diffuse colour reflectance properties of this pass.

Remarks:
The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much diffuse light (light from instances of the Light class in the scene) is reflected. The default is full white, meaning objects reflect the maximum white light they can from Light objects.
Note:
This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setDiffuse Real  red,
Real  green,
Real  blue,
Real  alpha
 

Sets the diffuse colour reflectance properties of this pass.

Remarks:
The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much diffuse light (light from instances of the Light class in the scene) is reflected. The default is full white, meaning objects reflect the maximum white light they can from Light objects.
Note:
This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setFog bool  overrideScene,
FogMode  mode = FOG_NONE,
const ColourValue colour = ColourValue::White,
Real  expDensity = 0.001,
Real  linearStart = 0.0,
Real  linearEnd = 1.0
 

Sets the fogging mode applied to this pass.

Remarks:
Fogging is an effect that is applied as polys are rendered. Sometimes, you want fog to be applied to an entire scene. Other times, you want it to be applied to a few polygons only. This pass-level specification of fog parameters lets you easily manage both.
The SceneManager class also has a setFog method which applies scene-level fog. This method lets you change the fog behaviour for this pass compared to the standard scene-level fog.
Parameters:
overrideScene If true, you authorise this pass to override the scene's fog params with it's own settings. If you specify false, so other parameters are necessary, and this is the default behaviour for passs.
mode Only applicable if overrideScene is true. You can disable fog which is turned on for the rest of the scene by specifying FOG_NONE. Otherwise, set a pass-specific fog mode as defined in the enum FogMode.
colour The colour of the fog. Either set this to the same as your viewport background colour, or to blend in with a skydome or skybox.
expDensity The density of the fog in FOG_EXP or FOG_EXP2 mode, as a value between 0 and 1. The default is 0.001.
linearStart Distance in world units at which linear fog starts to encroach. Only applicable if mode is FOG_LINEAR.
linearEnd Distance in world units at which linear fog becomes completely opaque. Only applicable if mode is FOG_LINEAR.

void Ogre::Pass::setFragmentProgram const String name,
bool  resetParams = true
 

Sets the details of the fragment program to use.

Remarks:
Only applicable to programmable passes, this sets the details of the fragment program to use in this pass. The program will not be loaded until the parent Material is loaded.
Parameters:
name The name of the program - this must have been created using GpuProgramManager by the time that this Pass is loaded. If this parameter is blank, any fragment program in this pass is disabled.
resetParams If true, this will create a fresh set of parameters from the new program being linked, so if you had previously set parameters you will have to set them again. If you set this to false, you must be absolutely sure that the parameters match perfectly, and in the case of named parameters refers to the indexes underlying them, not just the names.

void Ogre::Pass::setFragmentProgramParameters GpuProgramParametersSharedPtr  params  ) 
 

Sets the vertex program parameters.

Remarks:
Only applicable to programmable passes.

void Ogre::Pass::setIteratePerLight bool  enabled,
bool  onlyForOneLightType = true,
Light::LightTypes  lightType = Light::LT_POINT
 

Sets whether or not this pass should iterate per light which can affect the object being rendered.

Remarks:
The default behaviour for a pass (when this option is 'false'), is for a pass to be rendered only once (or the number of times set in setPassIterationCount), with all the lights which could affect this object set at the same time (up to the maximum lights allowed in the render system, which is typically 8).
Setting this option to 'true' changes this behaviour, such that instead of trying to issue render this pass once per object, it is run per light which can affect this object, the number of times set in setPassIterationCount (default is once). In this case, only light index 0 is ever used, and is a different light every time the pass is issued, up to the total number of lights which is affecting this object. This has 2 advantages:
  • There is no limit on the number of lights which can be supported
  • It's easier to write vertex / fragment programs for this because a single program can be used for any number of lights
However, this technique is a lot more expensive, and typically you will want an additional ambient pass, because if no lights are affecting the object it will not be rendered at all, which will look odd even if ambient light is zero (imagine if there are lit objects behind it - the objects silhouette would not show up). Therefore, use this option with care, and you would be well advised to provide a less expensive fallback technique for use in the distance.
Note:
The number of times this pass runs is still limited by the maximum number of lights allowed as set in setMaxSimultaneousLights, so you will never get more passes than this.
Parameters:
enabled Whether this feature is enabled
onlyForOneLightType If true, the pass will only be run for a single type of light, other light types will be ignored.
lightType The single light type which will be considered for this pass

void Ogre::Pass::setLightingEnabled bool  enabled  ) 
 

Sets whether or not dynamic lighting is enabled.

Parameters:
enabled If true, dynamic lighting is performed on geometry with normals supplied, geometry without normals will not be displayed.
If false, no lighting is applied and all geometry will be full brightness.

void Ogre::Pass::setManualCullingMode ManualCullingMode  mode  ) 
 

Sets the manual culling mode, performed by CPU rather than hardware.

In some situations you want to use manual culling of triangles rather than sending the triangles to the hardware and letting it cull them. This setting only takes effect on SceneManager's that use it (since it is best used on large groups of planar world geometry rather than on movable geometry since this would be expensive), but if used can cull geometry before it is sent to the hardware.

Note:
The default for this setting is MANUAL_CULL_BACK.
Parameters:
mode The mode to use - see enum ManualCullingMode for details

void Ogre::Pass::setMaxSimultaneousLights unsigned short  maxLights  ) 
 

Sets the maximum number of lights to be used by this pass.

Remarks:
During rendering, if lighting is enabled (or if the pass uses an automatic program parameter based on a light) the engine will request the nearest lights to the object being rendered in order to work out which ones to use. This parameter sets the limit on the number of lights which should apply to objects rendered with this pass.

void Ogre::Pass::setName const String name  ) 
 

void Ogre::Pass::setPassIterationCount const size_t  count  ) 
 

set the number of iterations that this pass should perform when doing fast multi pass operation.

Remarks:
Only applicable for programmable passes.
Parameters:
count number of iterations to perform fast multi pass operations. A value greater than 0 will cause the pass to be executed count number of times without changing the render state. This is very usefull for passes that use programmable shaders that have to iterate more than once but don't need a render state change. Using multi pass can dramatically speed up rendering for materials that do things like fur, blur. A value of 0 turns off multi pass operation and the pass does the normal pass operation.

Definition at line 1133 of file OgrePass.h.

void Ogre::Pass::setPointAttenuation bool  enabled,
Real  constant = 0.0f,
Real  linear = 1.0f,
Real  quadratic = 0.0f
 

Sets how points are attenuated with distance.

Remarks:
When performing point rendering or point sprite rendering, point size can be attenuated with distance. The equation for doing this is attenuation = 1 / (constant + linear * dist + quadratic * d^2).
For example, to disable distance attenuation (constant screensize) you would set constant to 1, and linear and quadratic to 0. A standard perspective attenuation would be 0, 1, 0 respectively.
Note:
The resulting size is clamped to the minimum and maximum point size.
Parameters:
enabled Whether point attenuation is enabled
constant,linear,quadratic Parameters to the attentuation function defined above

void Ogre::Pass::setPointMaxSize Real  max  ) 
 

Set the maximum point size, when point attenuation is in use.

Remarks:
Setting this to 0 indicates the max size supported by the card.

void Ogre::Pass::setPointMinSize Real  min  ) 
 

Set the minimum point size, when point attenuation is in use.

void Ogre::Pass::setPointSize Real  ps  ) 
 

Sets the point size of this pass.

Remarks:
This setting allows you to change the size of points when rendering a point list, or a list of point sprites. The interpretation of this command depends on the Pass::setPointSizeAttenuation option - if it is off (the default), the point size is in screen pixels, if it is on, it expressed as normalised screen coordinates (1.0 is the height of the screen) when the point is at the origin.
Note:
Some drivers have an upper limit on the size of points they support
  • this can even vary between APIs on the same card! Don't rely on point sizes that cause the point sprites to get very large on screen, since they may get clamped on some cards. Upper sizes can range from 64 to 256 pixels.

void Ogre::Pass::setPointSpritesEnabled bool  enabled  ) 
 

Sets whether or not rendering points using OT_POINT_LIST will render point sprites (textured quads) or plain points (dots).

Parameters:
enabled True enables point sprites, false returns to normal point rendering.

void Ogre::Pass::setPolygonMode PolygonMode  mode  ) 
 

Sets the type of polygon rendering required.

Note:
The default shading method is Solid

void Ogre::Pass::setSceneBlending const SceneBlendFactor  sourceFactor,
const SceneBlendFactor  destFactor
 

Allows very fine control of blending this Pass with the existing contents of the scene.

Remarks:
Wheras the texture blending operations seen in the TextureUnitState class are concerned with blending between texture layers, this blending is about combining the output of the material as a whole with the existing contents of the rendering target. This blending therefore allows object transparency and other special effects.
This version of the method allows complete control over the blending operation, by specifying the source and destination blending factors. The result of the blending operation is: final = (texture * sourceFactor) + (pixel * destFactor)
Each of the factors is specified as one of a number of options, as specified in the SceneBlendFactor enumerated type.
Parameters:
sourceFactor The source factor in the above calculation, i.e. multiplied by the texture colour components.
destFactor The destination factor in the above calculation, i.e. multiplied by the pixel colour components.
Note:
This method is applicable for both the fixed-function and programmable pipelines.

void Ogre::Pass::setSceneBlending const SceneBlendType  sbt  ) 
 

Sets the kind of blending this pass has with the existing contents of the scene.

Remarks:
Wheras the texture blending operations seen in the TextureUnitState class are concerned with blending between texture layers, this blending is about combining the output of the Pass as a whole with the existing contents of the rendering target. This blending therefore allows object transparency and other special effects. If all passes in a technique have a scene blend, then the whole technique is considered to be transparent.
This method allows you to select one of a number of predefined blending types. If you require more control than this, use the alternative version of this method which allows you to specify source and destination blend factors.
Note:
This method is applicable for both the fixed-function and programmable pipelines.
Parameters:
sbt One of the predefined SceneBlendType blending types

void Ogre::Pass::setSelfIllumination const ColourValue selfIllum  ) 
 

Sets the amount of self-illumination an object has.

Remarks:
If an object is self-illuminating, it does not need external sources to light it, ambient or otherwise. It's like the object has it's own personal ambient light. This property is rarely useful since you can already specify per-pass ambient light, but is here for completeness.
Note:
This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setSelfIllumination Real  red,
Real  green,
Real  blue
 

Sets the amount of self-illumination an object has.

Remarks:
If an object is self-illuminating, it does not need external sources to light it, ambient or otherwise. It's like the object has it's own personal ambient light. This property is rarely useful since you can already specify per-pass ambient light, but is here for completeness.
Note:
This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setShadingMode ShadeOptions  mode  ) 
 

Sets the type of light shading required.

Note:
The default shading method is Gouraud shading.

void Ogre::Pass::setShadowCasterVertexProgram const String name  ) 
 

Sets the details of the vertex program to use when rendering as a shadow caster.

Remarks:
Texture-based shadows require that the caster is rendered to a texture in a solid colour (the shadow colour in the case of modulative texture shadows). Whilst Ogre can arrange this for the fixed function pipeline, passes which use vertex programs might need the vertex programs still to run in order to preserve any deformation etc that it does. However, lighting calculations must be a lot simpler, with only the ambient colour being used (which the engine will ensure is bound to the shadow colour).
Therefore, it is up to implemetors of vertex programs to provide an alternative vertex program which can be used to render the object to a shadow texture. Do all the same vertex transforms, but set the colour of the vertex to the ambient colour, as bound using the standard auto parameter binding mechanism.
Note:
Some vertex programs will work without doing this, because Ogre ensures that all lights except for ambient are set black. However, the chances are that your vertex program is doing a lot of unnecessary work in this case, since the other lights are having no effect, and it is good practice to supply an alternative.

This is only applicable to programmable passes.

The default behaviour is for Ogre to switch to fixed-function rendering if an explict vertex program alternative is not set.

void Ogre::Pass::setShadowCasterVertexProgramParameters GpuProgramParametersSharedPtr  params  ) 
 

Sets the vertex program parameters for rendering as a shadow caster.

Remarks:
Only applicable to programmable passes, and this particular call is designed for low-level programs; use the named parameter methods for setting high-level program parameters.

void Ogre::Pass::setShadowReceiverFragmentProgram const String name  ) 
 

This method allows you to specify a fragment program for use when rendering a texture shadow receiver.

Remarks:
Texture shadows are applied by rendering the receiver. Modulative texture shadows are performed as a post-render darkening pass, and as such fragment programs are generally not required per-object. Additive texture shadows, however, are applied by accumulating light masked out using a texture shadow (black & white by default, unless you customise this using SceneManager::setCustomShadowCasterMaterial). OGRE can do this for you for most materials, but if you use a custom lighting program (e.g. per pixel lighting) then you'll need to provide a custom version for receiving shadows. You don't need to provide this for shadow casters if you don't use self-shadowing since they will never be shadow receivers too.
The shadow texture is always bound to texture unit 0 when rendering texture shadow passes. Therefore your custom shadow receiver program may well just need to shift it's texture unit usage up by one unit, and take the shadow texture into account in its calculations.

void Ogre::Pass::setShadowReceiverFragmentProgramParameters GpuProgramParametersSharedPtr  params  ) 
 

Sets the fragment program parameters for rendering as a shadow receiver.

Remarks:
Only applicable to programmable passes, and this particular call is designed for low-level programs; use the named parameter methods for setting high-level program parameters.

void Ogre::Pass::setShadowReceiverVertexProgram const String name  ) 
 

Sets the details of the vertex program to use when rendering as a shadow receiver.

Remarks:
Texture-based shadows require that the shadow receiver is rendered using a projective texture. Whilst Ogre can arrange this for the fixed function pipeline, passes which use vertex programs might need the vertex programs still to run in order to preserve any deformation etc that it does. So in this case, we need a vertex program which does the appropriate vertex transformation, but generates projective texture coordinates.
Therefore, it is up to implemetors of vertex programs to provide an alternative vertex program which can be used to render the object as a shadow receiver. Do all the same vertex transforms, but generate 2 sets of texture coordinates using the auto parameter ACT_TEXTURE_VIEWPROJ_MATRIX, which Ogre will bind to the parameter name / index you supply as the second parameter to this method. 2 texture sets are needed because Ogre needs to use 2 texture units for some shadow effects.
Note:
This is only applicable to programmable passes.
The default behaviour is for Ogre to switch to fixed-function rendering if an explict vertex program alternative is not set.

void Ogre::Pass::setShadowReceiverVertexProgramParameters GpuProgramParametersSharedPtr  params  ) 
 

Sets the vertex program parameters for rendering as a shadow receiver.

Remarks:
Only applicable to programmable passes, and this particular call is designed for low-level programs; use the named parameter methods for setting high-level program parameters.

void Ogre::Pass::setShininess Real  val  ) 
 

Sets the shininess of the pass, affecting the size of specular highlights.

Note:
This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setSpecular const ColourValue specular  ) 
 

Sets the specular colour reflectance properties of this pass.

Remarks:
The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much specular light (highlights from instances of the Light class in the scene) is reflected. The default is to reflect no specular light.
Note:
The size of the specular highlights is determined by the separate 'shininess' property.

This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setSpecular Real  red,
Real  green,
Real  blue,
Real  alpha
 

Sets the specular colour reflectance properties of this pass.

Remarks:
The base colour of a pass is determined by how much red, green and blue light is reflects (provided texture layer #0 has a blend mode other than LBO_REPLACE). This property determines how much specular light (highlights from instances of the Light class in the scene) is reflected. The default is to reflect no specular light.
Note:
The size of the specular highlights is determined by the separate 'shininess' property.

This setting has no effect if dynamic lighting is disabled (see Pass::setLightingEnabled), or if this is a programmable pass.

void Ogre::Pass::setTextureAnisotropy unsigned int  maxAniso  ) 
 

Sets the anisotropy level to be used for all textures.

Note:
This property has been moved to the TextureUnitState class, which is accessible via the Technique and Pass. For simplicity, this method allows you to set these properties for every current TeextureUnitState, If you need more precision, retrieve the Technique, Pass and TextureUnitState instances and set the property there.
See also:
TextureUnitState::setTextureAnisotropy

void Ogre::Pass::setTextureFiltering TextureFilterOptions  filterType  ) 
 

Set texture filtering for every texture unit.

Note:
This property actually exists on the TextureUnitState class For simplicity, this method allows you to set these properties for every current TeextureUnitState, If you need more precision, retrieve the TextureUnitState instance and set the property there.
See also:
TextureUnitState::setTextureFiltering

void Ogre::Pass::setVertexColourTracking TrackVertexColourType  tracking  ) 
 

Sets which material properties follow the vertex colour.

void Ogre::Pass::setVertexProgram const String name,
bool  resetParams = true
 

Sets the details of the vertex program to use.

Remarks:
Only applicable to programmable passes, this sets the details of the vertex program to use in this pass. The program will not be loaded until the parent Material is loaded.
Parameters:
name The name of the program - this must have been created using GpuProgramManager by the time that this Pass is loaded. If this parameter is blank, any vertex program in this pass is disabled.
resetParams If true, this will create a fresh set of parameters from the new program being linked, so if you had previously set parameters you will have to set them again. If you set this to false, you must be absolutely sure that the parameters match perfectly, and in the case of named parameters refers to the indexes underlying them, not just the names.

void Ogre::Pass::setVertexProgramParameters GpuProgramParametersSharedPtr  params  ) 
 

Sets the vertex program parameters.

Remarks:
Only applicable to programmable passes, and this particular call is designed for low-level programs; use the named parameter methods for setting high-level program parameters.


Member Data Documentation

CompareFunction Ogre::Pass::mAlphaRejectFunc [protected]
 

Definition at line 89 of file OgrePass.h.

unsigned char Ogre::Pass::mAlphaRejectVal [protected]
 

Definition at line 90 of file OgrePass.h.

ColourValue Ogre::Pass::mAmbient [protected]
 

Definition at line 64 of file OgrePass.h.

bool Ogre::Pass::mColourWrite [protected]
 

Definition at line 86 of file OgrePass.h.

CullingMode Ogre::Pass::mCullMode [protected]
 

Definition at line 95 of file OgrePass.h.

ushort Ogre::Pass::mDepthBias [protected]
 

Definition at line 83 of file OgrePass.h.

bool Ogre::Pass::mDepthCheck [protected]
 

Definition at line 80 of file OgrePass.h.

CompareFunction Ogre::Pass::mDepthFunc [protected]
 

Definition at line 82 of file OgrePass.h.

bool Ogre::Pass::mDepthWrite [protected]
 

Definition at line 81 of file OgrePass.h.

SceneBlendFactor Ogre::Pass::mDestBlendFactor [protected]
 

Definition at line 75 of file OgrePass.h.

ColourValue Ogre::Pass::mDiffuse [protected]
 

Definition at line 65 of file OgrePass.h.

ColourValue Ogre::Pass::mEmissive [protected]
 

Definition at line 67 of file OgrePass.h.

ColourValue Ogre::Pass::mFogColour [protected]
 

Definition at line 118 of file OgrePass.h.

Real Ogre::Pass::mFogDensity [protected]
 

Definition at line 121 of file OgrePass.h.

Real Ogre::Pass::mFogEnd [protected]
 

Definition at line 120 of file OgrePass.h.

FogMode Ogre::Pass::mFogMode [protected]
 

Definition at line 117 of file OgrePass.h.

bool Ogre::Pass::mFogOverride [protected]
 

Definition at line 116 of file OgrePass.h.

Real Ogre::Pass::mFogStart [protected]
 

Definition at line 119 of file OgrePass.h.

GpuProgramUsage* Ogre::Pass::mFragmentProgramUsage [protected]
 

Definition at line 135 of file OgrePass.h.

uint32 Ogre::Pass::mHash [protected]
 

Definition at line 61 of file OgrePass.h.

unsigned short Ogre::Pass::mIndex [protected]
 

Definition at line 59 of file OgrePass.h.

bool Ogre::Pass::mIteratePerLight [protected]
 

Run this pass once per light?

Definition at line 104 of file OgrePass.h.

bool Ogre::Pass::mLightingEnabled [protected]
 

Lighting enabled?

Definition at line 100 of file OgrePass.h.

ManualCullingMode Ogre::Pass::mManualCullMode [protected]
 

Definition at line 96 of file OgrePass.h.

unsigned short Ogre::Pass::mMaxSimultaneousLights [protected]
 

Max simultaneous lights.

Definition at line 102 of file OgrePass.h.

String Ogre::Pass::mName [protected]
 

Definition at line 60 of file OgrePass.h.

Light::LightTypes Ogre::Pass::mOnlyLightType [protected]
 

Definition at line 107 of file OgrePass.h.

Technique* Ogre::Pass::mParent [protected]
 

Definition at line 58 of file OgrePass.h.

size_t Ogre::Pass::mPassIterationCount [protected]
 

Definition at line 141 of file OgrePass.h.

Real Ogre::Pass::mPointAttenuationCoeffs[3] [protected]
 

Definition at line 149 of file OgrePass.h.

bool Ogre::Pass::mPointAttenuationEnabled [protected]
 

Definition at line 147 of file OgrePass.h.

Real Ogre::Pass::mPointMaxSize [protected]
 

Definition at line 145 of file OgrePass.h.

Real Ogre::Pass::mPointMinSize [protected]
 

Definition at line 144 of file OgrePass.h.

Real Ogre::Pass::mPointSize [protected]
 

Definition at line 143 of file OgrePass.h.

bool Ogre::Pass::mPointSpritesEnabled [protected]
 

Definition at line 146 of file OgrePass.h.

PolygonMode Ogre::Pass::mPolygonMode [protected]
 

Polygon mode.

Definition at line 112 of file OgrePass.h.

bool Ogre::Pass::mQueuedForDeletion [protected]
 

Definition at line 139 of file OgrePass.h.

bool Ogre::Pass::mRunOnlyForOneLightType [protected]
 

Definition at line 106 of file OgrePass.h.

PassSet Ogre::Pass::msDirtyHashList [static, protected]
 

List of Passes whose hashes need recalculating.

Definition at line 154 of file OgrePass.h.

ShadeOptions Ogre::Pass::mShadeOptions [protected]
 

Shading options.

Definition at line 110 of file OgrePass.h.

GpuProgramUsage* Ogre::Pass::mShadowCasterVertexProgramUsage [protected]
 

Definition at line 131 of file OgrePass.h.

GpuProgramUsage* Ogre::Pass::mShadowReceiverFragmentProgramUsage [protected]
 

Definition at line 137 of file OgrePass.h.

GpuProgramUsage* Ogre::Pass::mShadowReceiverVertexProgramUsage [protected]
 

Definition at line 133 of file OgrePass.h.

Real Ogre::Pass::mShininess [protected]
 

Definition at line 68 of file OgrePass.h.

SceneBlendFactor Ogre::Pass::mSourceBlendFactor [protected]
 

Definition at line 74 of file OgrePass.h.

PassSet Ogre::Pass::msPassGraveyard [static, protected]
 

The place where passes go to die.

Definition at line 156 of file OgrePass.h.

ColourValue Ogre::Pass::mSpecular [protected]
 

Definition at line 66 of file OgrePass.h.

TextureUnitStates Ogre::Pass::mTextureUnitStates [protected]
 

Definition at line 126 of file OgrePass.h.

TrackVertexColourType Ogre::Pass::mTracking [protected]
 

Definition at line 69 of file OgrePass.h.

GpuProgramUsage* Ogre::Pass::mVertexProgramUsage [protected]
 

Definition at line 129 of file OgrePass.h.


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

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:41:29 2006