28#ifndef __InstanceBatchShader_H__
29#define __InstanceBatchShader_H__
This is the same technique the old "InstancedGeometry" implementation used (with improvements).
InstanceBatch forms part of the new Instancing system This is an abstract class that must be derived ...
This is the main starting point for the new instancing system.
Class encapsulating a standard 4x4 homogeneous matrix.
vector< unsignedshort >::type IndexMap
'New' rendering operation using vertex buffers.
Defines a part of a complete mesh.
Summary class collecting together vertex source information.
void setupIndices(const SubMesh *baseSubMesh)
InstanceBatchShader(InstanceManager *creator, MeshPtr &meshReference, const MaterialPtr &material, size_t instancesPerBatch, const Mesh::IndexMap *indexToBoneMap, const String &batchName)
size_t calculateMaxNumInstances(const SubMesh *baseSubMesh, uint16 flags) const
unsigned short getNumWorldTransforms(void) const
Returns the number of world transform matrices this renderable requires.
unsigned short mNumWorldMatrices
virtual ~InstanceBatchShader()
void setupHardwareSkinned(const SubMesh *baseSubMesh, VertexData *thisVertexData, VertexData *baseVertexData)
When the mesh is (hardware) skinned, a different code path is called so that we reuse the index buffe...
void buildFrom(const SubMesh *baseSubMesh, const RenderOperation &renderOperation)
void getWorldTransforms(Matrix4 *xform) const
Gets the world transform matrix / matrices for this renderable object.
void setupVertices(const SubMesh *baseSubMesh)