mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 08:05:45 +00:00
chore: export separate root node for gltf
This commit is contained in:
parent
1c105db5bc
commit
6a1962b65a
@ -37,8 +37,9 @@ namespace
|
|||||||
std::vector<uint8_t> bufferData;
|
std::vector<uint8_t> bufferData;
|
||||||
|
|
||||||
CreateJsonAsset(gltf.asset);
|
CreateJsonAsset(gltf.asset);
|
||||||
CreateMeshNode(gltf, xmodel);
|
|
||||||
CreateSkeletonNodes(gltf, xmodel);
|
CreateSkeletonNodes(gltf, xmodel);
|
||||||
|
CreateMeshNode(gltf, xmodel);
|
||||||
|
CreateRootNode(gltf, xmodel);
|
||||||
CreateMaterials(gltf, xmodel);
|
CreateMaterials(gltf, xmodel);
|
||||||
CreateSkin(gltf, xmodel);
|
CreateSkin(gltf, xmodel);
|
||||||
CreateBufferViews(gltf, xmodel);
|
CreateBufferViews(gltf, xmodel);
|
||||||
@ -85,6 +86,23 @@ namespace
|
|||||||
gltf.nodes->emplace_back(std::move(meshNode));
|
gltf.nodes->emplace_back(std::move(meshNode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CreateRootNode(JsonRoot& gltf, const XModelCommon& xmodel)
|
||||||
|
{
|
||||||
|
JsonNode rootNode;
|
||||||
|
|
||||||
|
if (!gltf.nodes.has_value())
|
||||||
|
gltf.nodes.emplace();
|
||||||
|
|
||||||
|
rootNode.children.emplace();
|
||||||
|
rootNode.children->push_back(m_mesh_node);
|
||||||
|
|
||||||
|
if (!xmodel.m_bones.empty())
|
||||||
|
rootNode.children->push_back(m_first_bone_node);
|
||||||
|
|
||||||
|
m_root_node = gltf.nodes->size();
|
||||||
|
gltf.nodes->emplace_back(std::move(rootNode));
|
||||||
|
}
|
||||||
|
|
||||||
void CreateMesh(JsonRoot& gltf, const XModelCommon& xmodel)
|
void CreateMesh(JsonRoot& gltf, const XModelCommon& xmodel)
|
||||||
{
|
{
|
||||||
if (!gltf.meshes.has_value())
|
if (!gltf.meshes.has_value())
|
||||||
@ -250,7 +268,7 @@ namespace
|
|||||||
JsonScene scene;
|
JsonScene scene;
|
||||||
|
|
||||||
// Only add skin if the model has bones
|
// Only add skin if the model has bones
|
||||||
scene.nodes.emplace_back(m_mesh_node);
|
scene.nodes.emplace_back(m_root_node);
|
||||||
|
|
||||||
if (!gltf.scenes.has_value())
|
if (!gltf.scenes.has_value())
|
||||||
gltf.scenes.emplace();
|
gltf.scenes.emplace();
|
||||||
@ -516,6 +534,7 @@ namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned m_mesh_node = 0u;
|
unsigned m_mesh_node = 0u;
|
||||||
|
unsigned m_root_node = 0u;
|
||||||
unsigned m_first_bone_node = 0u;
|
unsigned m_first_bone_node = 0u;
|
||||||
unsigned m_position_accessor = 0u;
|
unsigned m_position_accessor = 0u;
|
||||||
unsigned m_normal_accessor = 0u;
|
unsigned m_normal_accessor = 0u;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user