Как вручную добавить скелет в Qt3d? - PullRequest
0 голосов
/ 14 ноября 2018

В Qt я добавил сетку, используя QSceneLoader, но я хотел вручную настроить сетку в QT, используя классы из Qt3D: QJoint, QSkeleton, and QArmature.Я не видел много документации по созданию скелета, который применяется к мешу только через C ++.

Даже без C ++ я обнаружил, что вы можете дать значение арматуры в QML, но файл должен быть .gltf.Что я хочу сделать, так это использовать C ++ напрямую, чтобы создать каркас, чтобы сторона программирования имела полный контроль над костной иерархией.

QSkeleton дает возможность добавлять суставы и дочерние суставы, но как эти суставы затем применяются к сетке?Если есть какие-либо примеры по этому поводу, это также очень помогло бы.

Вот что я попробовал:

Qt3DCore::QSkeleton* skeleton = new Qt3DCore::QSkeleton();
Qt3DCore::QJoint* joint = new Qt3DCore::QJoint();
joint->setTranslation(entityTransform->translation());
skeleton->setRootJoint(joint);
Qt3DCore::QArmature* a = new Qt3DCore::QArmature();
a->setSkeleton(skeleton);
entity->addComponent(a);

У меня также есть функция обновления, где я изменяю перевод / вращение соединенияи повторно применить каркас к арматуре, но он ничего не делает, поэтому я не знаю, было ли соединение / арматура правильно применены к сетке.

...