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