Browse Source

Add all glTF data to single buffer

johnmaf 9 năm trước cách đây
mục cha
commit
cd038209dd
1 tập tin đã thay đổi với 7 bổ sung7 xóa
  1. 7 7
      code/glTFExporter.cpp

+ 7 - 7
code/glTFExporter.cpp

@@ -267,6 +267,13 @@ void glTFExporter::ExportMaterials()
 
 void glTFExporter::ExportMeshes()
 {
+    std::string bufferId = mAsset->FindUniqueID("", "buffer");
+
+    Ref<Buffer> b = mAsset->GetBodyBuffer();
+    if (!b) {
+        b = mAsset->buffers.Create(bufferId);
+    }
+
     for (unsigned int i = 0; i < mScene->mNumMeshes; ++i) {
         const aiMesh* aim = mScene->mMeshes[i];
 
@@ -277,13 +284,6 @@ void glTFExporter::ExportMeshes()
 
         p.material = mAsset->materials.Get(aim->mMaterialIndex);
 
-        std::string bufferId = mAsset->FindUniqueID(meshId, "buffer");
-
-        Ref<Buffer> b = mAsset->GetBodyBuffer();
-        if (!b) {
-            b = mAsset->buffers.Create(bufferId);
-        }
-
         Ref<Accessor> v = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mVertices, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT);
         if (v) p.attributes.position.push_back(v);