Работа с glTF и GLB

Работа с glTF и GLB

Aspose.3D для .NET поддерживает чтение и запись glTF 2.0 (.gltf с отдельными ресурсами) и GLB (однофайловый бинарный glTF). Используйте GltfLoadOptions для настройки поведения загрузки и GltfSaveOptions для управления выводом экспорта.


Загрузка файла glTF

Загрузите файл .gltf или .glb напрямую с помощью Scene.Open. Предоставьте GltfLoadOptions для более точного управления:

using Aspose.ThreeD;
using Aspose.ThreeD.Formats;

// Basic load
var scene = Scene.FromFile("model.gltf");

// Load with options
var opts = new GltfLoadOptions();
var sceneWithOpts = new Scene();
sceneWithOpts.Open("model.gltf", opts);

glTF файлы ссылаются на внешние .bin буферы и текстуры по относительному пути. Держите все связанные ресурсы в той же директории, что и файл .gltf, при загрузке.


Сохранение в формате glTF или GLB

Сохраните любую сцену как glTF или в компактном бинарном формате GLB:

using Aspose.ThreeD;
using Aspose.ThreeD.Formats;

var scene = new Scene();
scene.RootNode.CreateChildNode("box", new Aspose.ThreeD.Entities.Box());

// Save as glTF (separate JSON + .bin buffer)
scene.Save("output.gltf", FileFormat.GLTF2);

// Save as GLB (single binary file)
scene.Save("output.glb", FileFormat.GLTF2_Binary);

// Save with custom options — embed the binary buffer inside the JSON
var saveOpts = new GltfSaveOptions(FileFormat.GLTF2);
saveOpts.EmbedAssets = true;
scene.Save("output_embedded.gltf", saveOpts);

Управление форматом встроенного изображения

Когда текстуры встроены, контролируйте, как данные изображения хранятся с помощью GltfEmbeddedImageFormat:

var saveOpts = new GltfSaveOptions(FileFormat.GLTF2_Binary);
saveOpts.ImageFormat = GltfEmbeddedImageFormat.Jpeg;
scene.Save("output.glb", saveOpts);
GltfEmbeddedImageFormat значениеОписание:
JpegПерекодировать встроенные текстуры в JPEG (с потерями, меньше по размеру)
PngПерекодировать встроенные текстуры в PNG (без потерь)
NoChangeСохранить оригинальное кодирование (по умолчанию)

API Quick Reference

MemberОписание:
new GltfLoadOptions()Настроить glTF import
new GltfSaveOptions(format)Настроить glTF/GLB export
saveOpts.EmbedAssetsВстроить бинарный буфер внутри .gltf JSON
saveOpts.ImageFormatВстроенное кодирование текстур (GltfEmbeddedImageFormat)
FileFormat.GLTF2Целевой формат: отдельные .gltf + .bin
FileFormat.GLTF2_BinaryЦелевой формат: единственный .glb

См. также:

 Русский