5 #include <unordered_map>
22 using std::unordered_map;
56 const vector<Vector3>*
normals {
nullptr };
AnimationProcessingTarget
Object node mesh specifically for rendering.
const vector< Vector2 > * textureCoordinates
void setupOriginsBuffer(Renderer *renderer, int contextIdx, int32_t vboId)
Set up render node object origins data buffer.
void setupNormalsBuffer(Renderer *renderer, int contextIdx, int32_t vboId)
Set up normals buffer.
vector< int32_t > indices
void setupVertexIndicesBuffer(Renderer *renderer, int contextIdx, int32_t vboId)
Set up vertex indices buffer.
const vector< Vector3 > * vertices
vector< Vector3 > transformedTangents
Engine::AnimationProcessingTarget animationProcessingTarget
void computeSkinning(int contextIdx, ObjectBase *objectBase)
Computes skinning.
vector< Vector3 > transformedVertices
void setupLodBuffer(Renderer *renderer, int contextIdx, int32_t vboId, int lodLevel)
Set up render node object lod data buffer.
void setupTextureCoordinatesBuffer(Renderer *renderer, int contextIdx, int32_t vboId)
Set up texture coordinates buffer.
const vector< Vector3 > * tangents
const vector< Vector3 > * normals
vector< vector< vector< Matrix4x4 * > > > skinningJointTransformMatrices
int skinningMaxVertexWeights
void recreateBuffers()
Recreates node float buffers.
void setupTangentsBuffer(Renderer *renderer, int contextIdx, int32_t vboId)
Set up tangents buffer.
Matrix4x4 * nodeTransformMatrix
vector< vector< float > > skinningJointWeight
ObjectNodeMesh(ObjectNodeRenderer *objectNodeRenderer, Engine::AnimationProcessingTarget animationProcessingTarget, Node *node, const vector< unordered_map< string, Matrix4x4 * > * > &transformMatrices, const vector< unordered_map< string, Matrix4x4 * > * > &skinningMatrices, int instances)
Creates a object node mesh from node.
bool getRecreatedBuffers()
void setupVerticesBuffer(Renderer *renderer, int contextIdx, int32_t vboId)
Set up vertices buffer.
vector< vector< Matrix4x4 * > > jointsSkinningMatrices
void setupBitangentsBuffer(Renderer *renderer, int contextIdx, int32_t vboId)
Set up bitangents buffer.
ObjectNodeRenderer * objectNodeRenderer
const vector< Vector3 > * bitangents
vector< Vector3 > transformedBitangents
bool hasRecreatedBuffers()
vector< unordered_map< string, Matrix4x4 * > * > skinningMatrices
vector< Vector2 > transformedTextureCoordinates
vector< Vector3 > transformedNormals
Object node VBO renderer.
Object node specifically for rendering.
Transparent render faces pool.
Interface to compute shader skinning shader program.
Matrix4x4 class representing matrix4x4 mathematical structure and operations for 3d space.
Vector2 class representing vector2 mathematical structure and operations with x, y components.
Vector3 class representing vector3 mathematical structure and operations with x, y,...
#define FORBID_CLASS_COPY(CLASS)