OGRE 2.1
Object-Oriented Graphics Rendering Engine
|
Implement a sub render state which performs hardware skinning. More...
#include <OgreShaderExHardwareSkinning.h>
Classes | |
struct | SkinningData |
Public Member Functions | |
HardwareSkinning () | |
Class default constructor. | |
void | _setCreator (const HardwareSkinningFactory *pCreator) |
Set the factory which created this sub render state. | |
virtual void | copyFrom (const SubRenderState &rhs) |
virtual bool | createCpuSubPrograms (ProgramSet *programSet) |
Create sub programs that represents this sub render state as part of a program set. | |
SubRenderStateAccessorPtr | getAccessor () |
Return the accessor object to this sub render state. | |
SubRenderStateAccessorPtr | getAccessor () const |
Return the accessor object to this sub render state. | |
ushort | getBoneCount () |
Returns the number of bones in the model assigned to the material. | |
virtual int | getExecutionOrder () const |
SkinningType | getSkinningType () |
Returns the current skinning type in use. | |
virtual const String & | getType () const |
ushort | getWeightCount () |
Returns the number of weights/bones affecting a vertex. | |
bool | hasCorrectAntipodalityHandling () |
Only applicable for dual quaternion skinning. | |
bool | hasScalingShearingSupport () |
Only applicable for dual quaternion skinning. | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete (void *ptr, void *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info | |
void * | operator new (size_t sz, void *ptr) |
placement operator new | |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info | |
virtual bool | preAddToRenderState (const RenderState *renderState, Pass *srcPass, Pass *dstPass) |
void | setHardwareSkinningParam (ushort boneCount, ushort weightCount, SkinningType skinningType=ST_LINEAR, bool correctAntipodalityHandling=false, bool scalingShearingSupport=false) |
Set the hardware skinning parameters. | |
virtual void | updateGpuProgramsParams (Renderable *rend, Pass *pass, const AutoParamDataSource *source, const LightList *pLightList) |
Update GPU programs parameters before a rendering operation occurs. | |
Static Public Attributes | |
static String | Type |
Implement a sub render state which performs hardware skinning.
Meaning, this sub render states adds calculations which multiply the points and normals by their assigned bone matricies.
Ogre::RTShader::HardwareSkinning::HardwareSkinning | ( | ) |
Class default constructor.
|
inline |
Set the factory which created this sub render state.
|
virtual |
Implements Ogre::RTShader::SubRenderState.
|
virtualinherited |
Create sub programs that represents this sub render state as part of a program set.
The given program set contains CPU programs that represents a vertex shader and pixel shader. One should use these program class API to create a representation of the sub state he wished to implement.
programSet | container class of CPU and GPU programs that this sub state will affect on. |
Reimplemented in Ogre::RTShader::FFPTransform.
|
inherited |
Return the accessor object to this sub render state.
|
inherited |
Return the accessor object to this sub render state.
ushort Ogre::RTShader::HardwareSkinning::getBoneCount | ( | ) |
Returns the number of bones in the model assigned to the material.
Implements Ogre::RTShader::SubRenderState.
SkinningType Ogre::RTShader::HardwareSkinning::getSkinningType | ( | ) |
Returns the current skinning type in use.
Implements Ogre::RTShader::SubRenderState.
ushort Ogre::RTShader::HardwareSkinning::getWeightCount | ( | ) |
Returns the number of weights/bones affecting a vertex.
bool Ogre::RTShader::HardwareSkinning::hasCorrectAntipodalityHandling | ( | ) |
Only applicable for dual quaternion skinning.
bool Ogre::RTShader::HardwareSkinning::hasScalingShearingSupport | ( | ) |
Only applicable for dual quaternion skinning.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
|
virtual |
Reimplemented from Ogre::RTShader::SubRenderState.
void Ogre::RTShader::HardwareSkinning::setHardwareSkinningParam | ( | ushort | boneCount, |
ushort | weightCount, | ||
SkinningType | skinningType = ST_LINEAR , |
||
bool | correctAntipodalityHandling = false , |
||
bool | scalingShearingSupport = false |
||
) |
Set the hardware skinning parameters.
boneCount | The maximum number of bones in the model this material is assigned to. Note that this parameter can be higher but not lower than the actual number of bones. |
weightCount | The maximum number of weights/bones affecting a vertex. |
skinningType | The type of skinning desired. |
correctAntipodalityHandling | If correct antipodality handling should be utilized (Only applicable for dual quaternion skinning). |
scalingShearingSupport | If scaling and shearing support should be enabled (Only applicable for dual quaternion skinning). |
|
inlinevirtualinherited |
Update GPU programs parameters before a rendering operation occurs.
This method is called in the context of SceneManager::renderSingle object via the RenderObjectListener interface and lets this sub render state instance opportunity to update custom GPU program parameters before the rendering action occurs.
rend | The renderable that is about to be rendered. |
pass | The pass that used for this rendering. |
source | The auto parameter source. |
pLightList | The light list used in the current rendering context. |
Reimplemented in Ogre::RTShader::IntegratedPSSM3, Ogre::RTShader::NormalMapLighting, Ogre::RTShader::PerPixelLighting, Ogre::RTShader::TextureAtlasSampler, Ogre::RTShader::TriplanarTexturing, Ogre::RTShader::FFPAlphaTest, Ogre::RTShader::FFPFog, Ogre::RTShader::FFPLighting, and Ogre::RTShader::FFPTexturing.
|
static |