28 #ifndef __BaseInstanceBatchVTF_H__
29 #define __BaseInstanceBatchVTF_H__
125 void createVertexTexture(
const SubMesh* baseSubMesh );
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;
Class encapsulating a standard 4x4 homogeneous matrix.
vector< unsigned short >::type IndexMap
bool useBoneDualQuaternions() const
bool mUseBoneMatrixLookup
TexturePtr mMatrixTexture
virtual size_t getMaxLookupTableInstances() const
vector< uint8 >::type HWBoneIdxVec
virtual bool useBoneWorldMatrices() const
void setUseOneWeight(bool enable)
virtual bool matricesTogetherPerRow() const
Affects VTF texture's width dimension.
bool forceOneWeight() const
size_t mMatricesPerInstance
bool mUseBoneDualQuaternions
Defines a part of a complete mesh.
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.
Summary class collecting together vertex source information.
'New' rendering operation using vertex buffers.
size_t mMaxLookupTableInstances
void setForceOneWeight(bool enable)
Instancing implementation using vertex texture through Vertex Texture Fetch (VTF) This implementation...
TextureType
Enum identifying the texture type.
Class to manage the scene object rendering queue.
This is the main starting point for the new instancing system.
void setBoneDualQuaternions(bool enable)
vector< float >::type HWBoneWgtVec
float * mTempTransformsArray3x4
bool useOneWeight() const
vector< Matrix4 >::type Matrix4Vec
size_t mWidthFloatsPadding
void setBoneMatrixLookup(bool enable, size_t maxLookupTableInstances)
Sets the state of the usage of bone matrix lookup.