В 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);
У меня также есть функция обновления, где я изменяю перевод / вращение соединенияи повторно применить каркас к арматуре, но он ничего не делает, поэтому я не знаю, было ли соединение / арматура правильно применены к сетке.