This commit is contained in:
bjorn 2017-11-20 18:42:29 -08:00
parent 803cdaa8a5
commit 5edd616da8
2 changed files with 6 additions and 4 deletions

View File

@ -28,7 +28,7 @@ static void renderNode(Model* model, int nodeIndex) {
}
}
mat4 bonePose = model->pose + 16 * i;
mat4 bonePose = model->pose[i];
mat4_identity(bonePose);
mat4_set(bonePose, globalInverse);
mat4_multiply(bonePose, &model->globalNodeTransforms[16 * nodeIndex]);
@ -37,7 +37,7 @@ static void renderNode(Model* model, int nodeIndex) {
Shader* shader = lovrGraphicsGetActiveShader();
if (shader) {
lovrShaderSetMatrix(shader, "lovrPose", model->pose, MAX_BONES * 16);
lovrShaderSetMatrix(shader, "lovrPose", (float*) model->pose, MAX_BONES * 16);
}
for (int i = 0; i < node->primitives.length; i++) {
@ -110,7 +110,7 @@ Model* lovrModelCreate(ModelData* modelData) {
}
for (int i = 0; i < MAX_BONES; i++) {
mat4_identity(model->pose + (16 * i));
mat4_identity(model->pose[i]);
}
model->localNodeTransforms = malloc(16 * modelData->nodeCount * sizeof(float));
@ -137,6 +137,8 @@ void lovrModelDestroy(const Ref* ref) {
free(model->materials);
lovrModelDataDestroy(model->modelData);
lovrRelease(&model->mesh->ref);
free(model->localNodeTransforms);
free(model->globalNodeTransforms);
free(model);
}

View File

@ -17,7 +17,7 @@ typedef struct {
Mesh* mesh;
Material** materials;
Animator* animator;
float pose[MAX_BONES * 16];
float pose[MAX_BONES][16];
float* localNodeTransforms;
float* globalNodeTransforms;
float aabb[6];