Публичные изменения API в Aspose.3D 16.11.0
Содержание Резюме
- Добавляет метод AddEntity в класс Aspose.ThreeD.Node
- Импорт и экспорт файлов glTF
- Записывайте зависимости в реальной файловой системе
- Добавляет свойство FileSystem в класс Aspose.ThreeD.Formats.IOConfig
Добавляет метод AddEntity в класс Aspose.ThreeD.Node
Срезанный способ добавления объекта к узлу.
Добавить Entity в узел
// initialize a Scene class object
Scene scene = new Scene();
// create a node
Node sphere = scene.RootNode.CreateChildNode("sphere");
// the old way to add an entity in a node
sphere.Entities.Add(new Sphere());
//the new way to add an entity in a node
sphere.AddEntity(new Sphere());
Импорт и экспорт файлов glTF
Используя последнюю версию (16.11.0) или выше, разработчики могут импортировать и экспортировать файлы glTF в/из других поддерживаемых файлов 3D.
Добавляет Aspose.ThreeD. Форматы. Класс GLTFLoadOptions
Мы добавили класс GLTFLoadOptions. Он помогает импортировать glTF файлов в Aspose.3D API.
Переверните координату текстуры V/T
Scene scene = new Scene();
GLTFLoadOptions loadOpt = new GLTFLoadOptions();
//The default value is true, usually we don't need to change it.
//Aspose.3D will automatically flip the V/T texture coordinate during load and save.
//to make sure it's compatible with Aspose.3D
loadOpt.FlipTexCoordV = true;
scene.Open("Duck.gltf", loadOpt);
Добавляет Aspose.ThreeD. Форматы. Класс GLTFSaveOptions
Мы добавили класс GLTFSaveOptions. Он определяет настройки при сохранении файла glTF.
Встраивание зависимостей внутри выходного файла glTF
// the code example creates a glTF file that has a sphere, and embed all assets into the target file
// usually a glTF file comes with some dependencies, a bin file for model's vertex/indices, two .glsl files for vertex/fragment shaders
// use opt.EmbedAssets to tells the aspose.3D to export scene and embed the dependencies inside the target file.
Scene scene = new Scene();
scene.RootNode.CreateChildNode("sphere", new Sphere());
GLTFSaveOptions opt = new GLTFSaveOptions(FileContentType.ASCII);
opt.EmbedAssets = true;
scene.Save("d:\\test.gltf", opt);
Используйте KHR_materials_common Extensions, чтобы определить материалы
// the code example creates a glTF file that has a sphere, and use KHR_materials_common extensions to define the materials
// thus no GLSL files are generated.
Scene scene = new Scene();
scene.RootNode.CreateChildNode("sphere", new Sphere());
GLTFSaveOptions opt = new GLTFSaveOptions(FileContentType.ASCII);
opt.UseCommonMaterials = true;
scene.Save("d:\\test.gltf", opt);
Настроить имя файла буферного файла
// the code example creates a glTF file that has a sphere, and the buffer file that defined the model to customize the filename
Scene scene = new Scene();
scene.RootNode.CreateChildNode("sphere", new Sphere());
GLTFSaveOptions opt = new GLTFSaveOptions(FileContentType.ASCII);
opt.BufferFile = "mybuf.bin";
scene.Save("d:\\test.gltf", opt);
Создает двоичный файл glTF с помощью расширения KHR_binary_glTF
// the code example creates a binary glTF file using KHR_binary_glTF extension
Scene scene = new Scene();
// create a child node
scene.RootNode.CreateChildNode("sphere", new Sphere());
// save 3D file
scene.Save("d:\\test.glb", FileFormat.GLTF_Binary);
Создает двоичный файл glTF с помощью расширения KHR_binary_glTF вместе с параметрам сохранения
// the code example creates a binary glTF file using KHR_binary_glTF extension but allow you to configure the save options
Scene scene = new Scene();
// create a child node
scene.RootNode.CreateChildNode("sphere", new Sphere());
// use saving options
GLTFSaveOptions opt = new GLTFSaveOptions(FileContentType.Binary);
opt.UseCommonMaterials = true;
// save 3D file
scene.Save("d:\\test.glb", opt);
Добавляет запись формата glTF в класс Aspose.ThreeD.FileFormat
Мы добавили записи формата GLTF и GLTF_Binary для загрузки и сохранения.
Добавление свойства Extension в класс Aspose.ThreeD.FileFormatType
Мы добавили свойство Extension в классе FileFormatType, чтобы получить имя расширения формата файла.
Записывайте зависимости в реальной файловой системе
Используя последнюю версию (16.11.0) или выше, разработчики могут сохранить все зависимости сцены 3D в реальной файловой системе. Разработчики могут определить путь к локальной директории, сохранить в объекте MemoryFileSystem или просто отказаться от зависимостей. Свойство FileSystem добавляется во все классы параметров сохранения.
Добавляет Aspose.ThreeD. Утилиты. DummyFileSystem Класс
Откажите сохранение файлов материала
// the code example uses the DummyFileSystem, so the material files are not created.
Scene scene = new Scene();
// create a child node
scene.RootNode.CreateChildNode("sphere", new Sphere()).Material = new PhongMaterial();
// set saving options
ObjSaveOptions opt = new ObjSaveOptions();
opt.FileSystem = new DummyFileSystem();
// save 3D scene
scene.Save("d:\\test.obj", opt);
Добавляет класс Aspose.ThreeD.Utilities.LocalFileSystem
Сохранить зависимости в локальном каталоге
// the code example uses the LocalFileSystem class to save dependencies to the local directory.
Scene scene = new Scene();
// create a child node
scene.RootNode.CreateChildNode("sphere", new Sphere()).Material = new PhongMaterial();
// set saving options
ObjSaveOptions opt = new ObjSaveOptions();
opt.FileSystem = new LocalFileSystem("E:\\");
// save 3D scene
scene.Save("d:\\test.obj", opt);
Добавляет Aspose.ThreeD. Утилиты. Класс MemoryFileSystem
Сохранение зависимостей в объекте MemoryFileSystem
// the code example uses the MemoryFileSystem to intercepts the dependencies writing.
Scene scene = new Scene();
// create a child node
scene.RootNode.CreateChildNode("sphere", new Sphere()).Material = new PhongMaterial();
// set saving options
ObjSaveOptions opt = new ObjSaveOptions();
MemoryFileSystem mfs = new MemoryFileSystem();
opt.FileSystem = mfs;
// save 3D scene
scene.Save("d:\\test.obj", opt);
//get the test.mtl file content
byte[] mtl = mfs.GetFileContent("test.mtl");
File.WriteAllBytes("material.mtl", mtl);
Добавляет свойство FileSystem в класс Aspose.ThreeD.Formats.IOConfig
Для записи зависимостей мы добавили свойство FileSystem в класс IOConfig.
Добавляет свойство FileSystem
Aspose.ThreeD.Utilities.FileSystem FileSystem{ get;set;}