From 9704a5d294f2574d1c161cde48dbd9336414fa16 Mon Sep 17 00:00:00 2001 From: Lubos Lenco Date: Sat, 5 Aug 2017 23:49:25 +0200 Subject: [PATCH] Soft body fix --- Sources/armory/trait/internal/SoftBody.hx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Sources/armory/trait/internal/SoftBody.hx b/Sources/armory/trait/internal/SoftBody.hx index 6f77588f..70c8d912 100644 --- a/Sources/armory/trait/internal/SoftBody.hx +++ b/Sources/armory/trait/internal/SoftBody.hx @@ -145,9 +145,12 @@ class SoftBody extends Trait { function update() { var geom = cast(object, MeshObject).data.geom; - // Deinterleaved + #if arm_deinterleaved var v = geom.vertexBuffers[0].lock(); var n = geom.vertexBuffers[1].lock(); + #else + var v = geom.vertexBuffer.lock(); + #end var l = 3;//geom.structLength; var numVerts = Std.int(v.length / l); @@ -166,15 +169,21 @@ class SoftBody extends Trait { var nodePos = node.m_x; var nodeNor = node.m_n; #end + #if arm_deinterleaved v.set(i * l, nodePos.x()); v.set(i * l + 1, nodePos.y()); v.set(i * l + 2, nodePos.z()); - // v.set(i * l + 3, nodeNor.x()); - // v.set(i * l + 4, nodeNor.y()); - // v.set(i * l + 5, nodeNor.z()); n.set(i * l, nodeNor.x()); n.set(i * l + 1, nodeNor.y()); n.set(i * l + 2, nodeNor.z()); + #else + v.set(i * l, nodePos.x()); + v.set(i * l + 1, nodePos.y()); + v.set(i * l + 2, nodePos.z()); + v.set(i * l + 3, nodeNor.x()); + v.set(i * l + 4, nodeNor.y()); + v.set(i * l + 5, nodeNor.z()); + #end } // for (i in 0...Std.int(geom.indices[0].length / 3)) { // var a = geom.indices[0][i * 3]; @@ -197,8 +206,12 @@ class SoftBody extends Trait { // v.set(c * l + 4, cb.y); // v.set(c * l + 5, cb.z); // } + #if arm_deinterleaved geom.vertexBuffers[0].unlock(); geom.vertexBuffers[1].unlock(); + #else + geom.vertexBuffer.unlock(); + #end } #end