Я добавляю робота с несколькими DoG в свое приложение OpenGL (позже я хочу реализовать для этого робота обратную кинематику), и мне нужно перемещать объекты, которые «связаны» вместе.
Пока что ядобавлено 3 объекта STL в сцену, и это выглядит как this
Есть основание, Joint1 и Joint2.
База неподвижна, Joint1 и Joint2 теперь вращаются вокруг Zось основана на вводе с клавиатуры, но они оба просто вращаются вокруг своей исходной точки, что хорошо для соединения 1, но для соединения 2 мне нужно, чтобы они были подключены и соответственно переведены.
Здесь - этовывод после поворота.
Для позиционирования и поворота объекта я использую обычную матрицу MVP и glm.
joint1M = glm::translate(joint1M, glm::vec3(-50.0f, -10.4f, 0.0f));
joint1M = glm::rotate(joint1M, glm::radians(rotation), glm::vec3(0.0f, 1.0f, 0.0f));
joint2M = glm::translate(joint2M, glm::vec3(-50.0f, 2.85f, 0.0f));
joint2M = glm::rotate(joint2M, glm::radians(rotation), glm::vec3(0.0f, 1.0f, 0.0f));
Есть ли способ создать что-то вроде отношений Unity дочерний и родительскийв OpenGL?Или я должен каким-то образом изменить положение сустава 2 на основе вращения сустава 1?