Я использую Assimp.net для импорта анимированных файлов .dae в свой движок OpenTK и пытаюсь создать удобную иерархическую структуру костей.
В руководстве, которому я следую, корневая кость, или "сустав", содержит список его детских суставов, а это список их детей и так далее.
Assimp возвращает каждый импортированный Mesh
объект со списком Bone
объектов, отображая Name
, OffsetMatrix
и VertexWeights
кости, но ничего не говорит о его дочерних или родительских костях.
Scene
, который содержит Mesh
, действительно имеет список всех nodes
(некоторые из которых являются костями), и у них действительно есть значение parentName
, но построение иерархии с помощью рекурсивных сравнительных проверок быстро становится беспорядочным и далеко не функционирует.
Как я могу выделить корневую кость, потом ее потомков, потом их потомков и т. Д.?