A-frame конвертировать zip-пакет в glb для эскиза fab-модели

Я недавно кодировал в A-кадре, и я использовал модели gltf в своей сцене. Я использую модели tinkercad, потому что не могу понять, как добавить модели sketchfab.com в свой код. Когда я загружаю модель с sketchfab.com и нажимаю «Загрузить как gltf», у меня появляется zip-папка. Внутри zip-папки находятся 2 файла и папка. Scene.glf и scene.bin - это файлы, а текстуры - это папка. Я хочу взять эту zip-папку и превратить ее в единственный файл glb или gltf. Как бы я этого добился?


person Aidan Young    schedule 31.03.2021    source источник


Ответы (1)


Для чужого контекста Sketchfab возвращает что-то вроде ...

  • model/scene.gltf
  • model/scene.bin
  • model/textures/diffuse.png
  • model/textures/normal.png

... где файл scene.gltf содержит относительные ссылки на другие файлы. A-Frame может загружать все эти файлы только по ссылке .gltf, , как описано, если они размещены в вашем проекте в аналогичной структуре папок:

<a-gltf-model src="assets/model/scene.gltf"></a-gltf-model>

Также распространено объединение всей модели в автономный (двоичный) файл .glb, который является изменением без потерь и никаким образом не должен влиять на содержимое, если это сделано правильно реализованным инструментом. Два простых варианта: glTF-Pipeline или glTF-Transform. Пример:

npm install --global @gltf-transform/cli

gltf-transform cp model/scene.gltf output.glb

Также см. https://glb-packer.glitch.me/, но он может не работать с определенные файлы.

ВНИМАНИЕ: хотя технически возможно создать автономный файл .gltf, а не .glb, не делайте этого. Встраивание двоичных ресурсов в файл (JSON) .gltf увеличивает размер файла на 20–30% и снижает скорость загрузки. (Двоичный) формат .glb здесь более эффективен.

person Don McCurdy    schedule 31.03.2021