|
| HardwareSkinningFactory () |
|
| ~HardwareSkinningFactory () |
|
SubRenderState * | createInstance (ScriptCompiler *compiler, PropertyAbstractNode *prop, Pass *pass, SGScriptTranslator *translator) override |
|
const MaterialPtr & | getCustomShadowCasterMaterial (const SkinningType skinningType, ushort index) const |
| Returns the name of a custom shadow caster material for a given number of weights. More...
|
|
const MaterialPtr & | getCustomShadowReceiverMaterial (const SkinningType skinningType, ushort index) const |
| Returns the name of a custom shadow receiver material for a given number of weights. More...
|
|
ushort | getMaxCalculableBoneCount () const |
| The maximum number of bones for which hardware skinning is performed. More...
|
|
const String & | getType () const override |
|
void | prepareEntityForSkinning (const Entity *pEntity, SkinningType skinningType=ST_LINEAR, bool correctAntidpodalityHandling=false, bool shearScale=false) |
| Prepares an entity's material for use in the hardware skinning (HS). More...
|
|
virtual void | setCustomShadowCasterMaterials (const SkinningType skinningType, const MaterialPtr &caster1Weight, const MaterialPtr &caster2Weight, const MaterialPtr &caster3Weight, const MaterialPtr &caster4Weight) |
| Sets the list of custom shadow caster materials. More...
|
|
virtual void | setCustomShadowReceiverMaterials (const SkinningType skinningType, const MaterialPtr &receiver1Weight, const MaterialPtr &receiver2Weight, const MaterialPtr &receiver3Weight, const MaterialPtr &receiver4Weight) |
| Sets the list of custom shadow receiver materials. More...
|
|
void | setMaxCalculableBoneCount (ushort count) |
| Sets the maximum number of bones for which hardware skinning is performed. More...
|
|
void | writeInstance (MaterialSerializer *ser, SubRenderState *subRenderState, Pass *srcPass, Pass *dstPass) override |
|
| SubRenderStateFactory () |
|
virtual | ~SubRenderStateFactory () |
|
virtual SubRenderState * | createInstance () |
| Create an instance of the SubRenderState sub class it suppose to create. More...
|
|
virtual SubRenderState * | createInstance (ScriptCompiler *compiler, PropertyAbstractNode *prop, TextureUnitState *texState, SGScriptTranslator *translator) |
| Create an instance of the SubRenderState based on script properties. More...
|
|
virtual SubRenderState * | createOrRetrieveInstance (SGScriptTranslator *translator) |
| Retrieve the previous instance the SRS in the script translator or create a new instance if not found. More...
|
|
virtual void | destroyAllInstances () |
| Destroy all the instances that created by this factory. More...
|
|
virtual void | destroyInstance (SubRenderState *subRenderState) |
| Destroy the given instance. More...
|
|
virtual void | writeInstance (MaterialSerializer *ser, SubRenderState *subRenderState, const TextureUnitState *srcTextureUnit, const TextureUnitState *dstTextureUnit) |
| Write the given sub-render state instance using the material serializer. More...
|
|
| Singleton (void) |
|
| ~Singleton (void) |
|
A factory that enables creation of HardwareSkinning instances.
void Ogre::RTShader::HardwareSkinningFactory::prepareEntityForSkinning |
( |
const Entity * |
pEntity, |
|
|
SkinningType |
skinningType = ST_LINEAR , |
|
|
bool |
correctAntidpodalityHandling = false , |
|
|
bool |
shearScale = false |
|
) |
| |
Prepares an entity's material for use in the hardware skinning (HS).
This function prepares an entity's material for use by the HS sub-render state. This function scans the entity and extracts the information of the amount of bones and weights in the entity. This function replaces the need specify in the material script the amount of bones and weights needed to make the HS work.
Note that this class does not save the the bone and weight count information internally. Rather this information is stored in the entity's materials as a user binded object.
- pEntity A pointer to an entity who's materials need preparing.
ushort Ogre::RTShader::HardwareSkinningFactory::getMaxCalculableBoneCount |
( |
| ) |
const |
|
inline |
The maximum number of bones for which hardware skinning is performed.
This number should be limited to avoid problems of using to many parameters in a shader. For example, in pixel shader 3 this should be around 70-90 dependent on other sub-render states in the shader.
The default value for this property is 70 which correspond to pixel shader model 3 limitations