fix scale of rendered collision geometry

This commit is contained in:
Andrew Meadows 2017-10-23 17:56:26 -07:00
parent 29efe53f74
commit 27f4d182d9

View file

@ -235,7 +235,6 @@ void Model::updateRenderItems() {
self->updateClusterMatrices(); self->updateClusterMatrices();
Transform modelTransform = self->getTransform(); Transform modelTransform = self->getTransform();
Transform physicsTransform = modelTransform;
modelTransform.setScale(glm::vec3(1.0f)); modelTransform.setScale(glm::vec3(1.0f));
uint32_t deleteGeometryCounter = self->_deleteGeometryCounter; uint32_t deleteGeometryCounter = self->_deleteGeometryCounter;
@ -259,13 +258,12 @@ void Model::updateRenderItems() {
}); });
} }
// collision mesh does not share the same unit scale as the FBX file's mesh: only apply offset
Transform collisionMeshOffset; Transform collisionMeshOffset;
collisionMeshOffset.setIdentity(); collisionMeshOffset.setIdentity();
foreach(auto itemID, self->_collisionRenderItemsMap.keys()) { foreach(auto itemID, self->_collisionRenderItemsMap.keys()) {
transaction.updateItem<MeshPartPayload>(itemID, [physicsTransform, collisionMeshOffset](MeshPartPayload& data) { transaction.updateItem<MeshPartPayload>(itemID, [modelTransform, collisionMeshOffset](MeshPartPayload& data) {
// update the model transform for this render item. // update the model transform for this render item.
data.updateTransform(physicsTransform, collisionMeshOffset); data.updateTransform(modelTransform, collisionMeshOffset);
}); });
} }