1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-04 13:33:34 +00:00

Use computed global transforms instead of local;

This commit is contained in:
bjorn 2017-11-20 18:17:06 -08:00
parent 2f0aab03be
commit 17ffebd6ae

View file

@ -10,7 +10,7 @@ static void renderNode(Model* model, int nodeIndex) {
bool useMaterials = currentMaterial->isDefault; bool useMaterials = currentMaterial->isDefault;
lovrGraphicsPush(); lovrGraphicsPush();
lovrGraphicsMatrixTransform(MATRIX_MODEL, model->localNodeTransforms + 16 * nodeIndex); lovrGraphicsMatrixTransform(MATRIX_MODEL, model->globalNodeTransforms + 16 * nodeIndex);
float globalInverse[16]; float globalInverse[16];
mat4_set(globalInverse, model->globalNodeTransforms + nodeIndex * 16); mat4_set(globalInverse, model->globalNodeTransforms + nodeIndex * 16);
@ -48,11 +48,12 @@ static void renderNode(Model* model, int nodeIndex) {
lovrMeshDraw(model->mesh, NULL); lovrMeshDraw(model->mesh, NULL);
} }
lovrGraphicsPop();
for (int i = 0; i < node->children.length; i++) { for (int i = 0; i < node->children.length; i++) {
renderNode(model, node->children.data[i]); renderNode(model, node->children.data[i]);
} }
lovrGraphicsPop();
if (useMaterials) { if (useMaterials) {
lovrGraphicsSetMaterial(currentMaterial); lovrGraphicsSetMaterial(currentMaterial);
} }