28 #ifndef __BaseInstanceBatchVTF_H__ 29 #define __BaseInstanceBatchVTF_H__ 113 void retrieveBoneIdx(
VertexData *baseVertexData, HWBoneIdxVec &outBoneIdx );
119 void retrieveBoneIdxWithWeights(
VertexData *baseVertexData, HWBoneIdxVec &outBoneIdx, HWBoneWgtVec &outBoneWgt);
125 void createVertexTexture(
const SubMesh* baseSubMesh );
129 const HWBoneIdxVec &hwBoneIdx,
const HWBoneWgtVec &hwBoneWgt) = 0;
131 size_t convert3x4MatricesToDualQuaternions(
float* matrices,
size_t numOfMatrices,
float* outDualQuaternions);
134 void updateVertexTexture(
void);
137 virtual bool matricesTogetherPerRow()
const = 0;
140 virtual void updateSharedLookupIndexes();
155 void getWorldTransforms(
Matrix4* xform )
const;
156 unsigned short getNumWorldTransforms(
void)
const;
173 void setBoneMatrixLookup(
bool enable,
size_t maxLookupTableInstances) { assert(mInstancedEntities.empty());
174 mUseBoneMatrixLookup = enable; mMaxLookupTableInstances = maxLookupTableInstances; }
182 mUseBoneDualQuaternions = enable; mRowLength = (mUseBoneDualQuaternions ? 2 : 3); }
187 mForceOneWeight = enable; }
192 mUseOneWeight = enable; }
207 void setupVertices(
const SubMesh* baseSubMesh );
208 void setupIndices(
const SubMesh* baseSubMesh );
222 size_t calculateMaxNumInstances(
const SubMesh *baseSubMesh,
uint16 flags )
const;
virtual size_t getMaxLookupTableInstances() const
float * mTempTransformsArray3x4
Summary class collecting together vertex source information.
virtual bool useBoneWorldMatrices() const
bool forceOneWeight() const
size_t mMatricesPerInstance
Class to manage the scene object rendering queue.
vector< float >::type HWBoneWgtVec
void setUseOneWeight(bool enable)
void setForceOneWeight(bool enable)
Defines a part of a complete mesh.
size_t mMaxLookupTableInstances
Class encapsulating a standard 4x4 homogeneous matrix.
bool useBoneDualQuaternions() const
bool mUseBoneMatrixLookup
TexturePtr mMatrixTexture
size_t mWidthFloatsPadding
TextureType
Enum identifying the texture type.
bool useOneWeight() const
This is the main starting point for the new instancing system.
void setBoneDualQuaternions(bool enable)
InstanceBatch forms part of the new Instancing system This is an abstract class that must be derived ...
bool useBoneMatrixLookup() const
Tells whether to use bone matrix lookup.
bool mUseBoneDualQuaternions
vector< uint8 >::type HWBoneIdxVec
Instancing implementation using vertex texture through Vertex Texture Fetch (VTF) This implementation...
'New' rendering operation using vertex buffers.
void setBoneMatrixLookup(bool enable, size_t maxLookupTableInstances)
Sets the state of the usage of bone matrix lookup.
vector< unsigned short >::type IndexMap
vector< Matrix4 >::type Matrix4Vec
virtual bool matricesTogetherPerRow() const
Affects VTF texture's width dimension.