From 17dcc398b9a5d1a6a287c01dff7fc7cf2b792372 Mon Sep 17 00:00:00 2001 From: Luke Lau Date: Sun, 16 Feb 2020 21:09:24 +0000 Subject: [PATCH] IK is working!!! --- ik.cpp | 82 ++++++++++++++++++++++++++++++++++++------------ main.cpp | 4 ++- models/ik.blend | Bin 715844 -> 717436 bytes models/ik.glb | Bin 42376 -> 43240 bytes 4 files changed, 65 insertions(+), 21 deletions(-) diff --git a/ik.cpp b/ik.cpp index fe4ecbb..c6fa603 100644 --- a/ik.cpp +++ b/ik.cpp @@ -3,7 +3,7 @@ using namespace glm; -constexpr float tolerance = 0.3; +constexpr float tolerance = 0.001; const std::vector fabrik(const glm::vec3 t, const std::vector jpsIn, // joint positions @@ -96,16 +96,18 @@ mat4 getRotationToPoint(vec3 u, vec3 v, float dist) { return res; } +float d = 0; -void inverseKinematic(Model::Node &root, Model::Node &end, vec3 target) { - /* float s2o2 = sqrt(2.f) / 2.f; */ - /* assert(getRotationToPoint({1, 0, 0}, {0, s2o2, s2o2}, 1) */ - /* == mat4({0, s2o2, s2o2, 0}, { -s2o2, 1.f/2.f, -1.f/2.f, 0}, */ - /* {-s2o2, -1.f/2.f, 1.f/2.f, 0}, { 0, 0, 0, 1})); */ - - std::vector chain = allNodesTo(root, end); +// Target is world position +void inverseKinematic(Model::Node &start, Model::Node &end, vec3 target) { + std::vector chain = allNodesTo(start, end); assert(!chain.empty()); + const Model::Node *rootPtr = start.parent; + while (rootPtr->parent != nullptr) + rootPtr = rootPtr->parent; + const Model::Node &root = *rootPtr; + std::vector positions(chain.size()); std::vector distances(chain.size() - 1); for (size_t i = 0; i < chain.size(); i++) { mat4 absTrans = getAbsTrans(root, chain[i]); @@ -114,10 +116,10 @@ void inverseKinematic(Model::Node &root, Model::Node &end, vec3 target) { distances[i - 1] = distance(positions[i], positions[i - 1]); } - /* glm::vec3 targetPos(sin(d * 10.f), cos(d * 10.f), 0); */ auto newPositions = fabrik(target, positions, distances); // Rotate all the nodes so that they are in the correct positions + // Don't need to move the root node - it's already in place for (size_t i = 1; i < chain.size(); i++) { auto node = chain[i]; mat4 absTrans = getAbsTrans(root, node); @@ -132,7 +134,7 @@ void inverseKinematic(Model::Node &root, Model::Node &end, vec3 target) { /* std::cerr << node.ai.mName.C_Str() << ":\n"; */ /* printVec3(extractPos(aiMatrixToMat4(node.ai.mTransformation))); */ /* printVec3(newRelPos); */ - assert(distance(extractPos(aiMatrixToMat4(node.ai.mTransformation)), newRelPos) < 0.0001); + /* assert(distance(extractPos(aiMatrixToMat4(node.ai.mTransformation)), newRelPos) < 0.0001); */ /* absTrans[3] = vec4(newPositions[i], absTrans[3][3]); // update position in transform */ @@ -140,20 +142,60 @@ void inverseKinematic(Model::Node &root, Model::Node &end, vec3 target) { /* node.ai.mTransformation = mat4ToaiMatrix(relTrans); */ } - // TODO: Now rotate all the nodes so that they face each other + // TODO: Now rotate all the nodes so that they point towards each other + // Don't need to rotate the last node - it has nothing to point towards + for (size_t i = 0; i < chain.size() - 1; i++) { + auto node = chain[i]; auto nextNode = chain[i + 1]; + mat4 oldTrans = aiMatrixToMat4(node.ai.mTransformation); + vec3 nodePos = extractPos(oldTrans); + vec3 nextNodePos = extractPos(aiMatrixToMat4(nextNode.ai.mTransformation)); + + + /* vec3 up = normalize(oldTrans[1]); */ + vec3 up = {0, 1, 0}; + vec3 dir = -normalize(nextNodePos); + /* mat4 rot = mat3(aiMatrixToMat4(nextNode.ai.mTransformation)); */ + /* mat4 rot = transpose(lookAt(vec3(0), dir, {0, 1, 0})); */ + + vec3 v = cross(up, dir); + mat3 sscpm = mat3(0, -v[2], v[1], + v[2], 0, -v[0], + -v[1], v[0], 0); + mat4 rot = mat3(1) + sscpm + sscpm * sscpm * (1.f / 1.f + dot(up, dir)); + /* mat4 rot = rotate(mat4(1), 0.01f, {0, 1, 0}); */ + /* mat4 rot = mat4(1); */ + + + mat4 trans = oldTrans * rot * inverse(oldTrans); + node.ai.mTransformation = mat4ToaiMatrix(trans * oldTrans); + for (auto child: node.getChildren()) { + child->ai.mTransformation = mat4ToaiMatrix(inverse(rot) * aiMatrixToMat4(child->ai.mTransformation)); + } + - /* for (int i = 0; i < 3; i++) { */ - /* glm::mat4 absTrans(1); */ - /* findNodeTrans(&sceneModel->getRoot()->ai, aiString(jointNames[i]), */ - /* &absTrans); */ - /* glm::mat4 newAbsTrans = absTrans; */ - /* newAbsTrans[3] = glm::vec4(newPositions[i], newAbsTrans[3][3]); */ + /* vec3 nextNodePos = extractPos(oldTrans * aiMatrixToMat4(nextNode.ai.mTransformation)); */ + /* vec3 d = normalize(nextNodePos - nodePos); */ - /* auto node = sceneModel->getRoot()->ai.FindNode(jointNames[i].c_str()); */ + /* mat4 m = mat3(d.z, 0, -d.x, 0, 1, 0, d.x, 0, d.z); */ - /* auto newTrans = worldSpaceToModelSpace(node->mParent, newAbsTrans); */ + /* vec3 up = oldTrans[1]; */ + /* mat4 look = lookAt(vec3(0), nextNodePos, up); */ + /* look = oldTrans * look * inverse(oldTrans); */ + /* node.ai.mTransformation = mat4ToaiMatrix(m * oldTrans); */ - /* node->mTransformation = mat4ToaiMatrix(newTrans); */ + /* for (auto child: node.getChildren()) { */ + /* child->ai.mTransformation = mat4ToaiMatrix(inverse(m) * aiMatrixToMat4(child->ai.mTransformation)); */ /* } */ + + /* vec3 pos = extractPos(oldTrans); */ + /* vec3 up = normalize(translate(oldTrans, -pos)); */ + /* vec3 up = oldTrans[1]; */ + /* mat4 rot = lookAt(vec3(0), extractPos(aiMatrixToMat4(nextNode.ai.mTransformation)), up); */ + /* node.ai.mTransformation = mat4ToaiMatrix(translate(rot * translate(oldTrans, -pos), pos)); */ + /* for (auto child: node.getChildren()) { */ + /* child->ai.mTransformation = mat4ToaiMatrix(inverse(rot) * aiMatrixToMat4(child->ai.mTransformation)); */ + /* } */ + } + } diff --git a/main.cpp b/main.cpp index a579adf..c65e8d2 100644 --- a/main.cpp +++ b/main.cpp @@ -168,7 +168,9 @@ void display() { glUniform3fv(glGetUniformLocation(pbrProg->progId, "lightPositions"), numLights, glm::value_ptr(lightPositions[0])); glUniform3fv(glGetUniformLocation(pbrProg->progId, "lightColors"), numLights, glm::value_ptr(lightColors[0])); - glm::vec3 targetPos(sin(d * 1.f), 0, cos(d * 1.f)); + glm::vec3 targetPos(sin(d) * 2 - 2, 2, 0); + Light targetLight = { glm::translate(glm::mat4(1), targetPos), {0.5, 1, 1} }; + drawLight(targetLight); inverseKinematic(*sceneModel->find("Bottom Bone"), *sceneModel->find("Toppest Bone"), targetPos); /* std::array jointPositions; std::array jointDistances; */ diff --git a/models/ik.blend b/models/ik.blend index 544239981adc6d3ae1efe08c9166543a048f2c83..37c97a90673873b5fd921913e6767cede94ec707 100644 GIT binary patch delta 66074 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 delta 66829 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®l&H8i%#H2U{pr<3b128bBR*s*_K#fj9H3z4( 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 aQR1^l{JXt#$N1;fJ?f9tJ=*B)`~M3O`eN?@ diff --git a/models/ik.glb b/models/ik.glb index 8203a059d030f1310d6245f79fc3738d8504d241..5c1deba4fb2ae8863c5c6639fa17ac0b6ab9f183 100644 GIT binary patch delta 4488 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 Q=SA}Sy|oQD2kK`07pdpts{jB1 -- 2.30.2