Público API Cambios en Aspose.3D 16.11.0
Resumen de contenidos
- Agrega el método AddEntity en la clase Aspose.ThreeD.Node
- Importación y exportación de archivos glTF Agrega la clase Aspose.ThreeD.Formats. GlTFLoadOptions Agrega la clase Aspose.ThreeD.Formats. GSTFSaveOptions Agrega una entrada de formato glTF en la clase Aspose.ThreeD.FileFormat Agrega una propiedad Extension en la clase Aspose.ThreeD.FileFormatType
- Escribir dependencias en el sistema de archivos reales Agrega la clase Aspose.ThreeD.Utilities.DummyFileSystem Agrega la clase Aspose.ThreeD.Utilities.LocalFileSystem Agrega la clase Aspose.ThreeD.Utilities.MemoryFileSystem
- Agrega la propiedad FileSystem en la clase Aspose.ThreeD.Formats.IOConfig
Agrega el método AddEntity en la clase Aspose.ThreeD.Node
Una vía de acceso directo para agregar una entidad a un nodo.
Agregar una entidad a un nodo
// 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());
Importación y exportación de archivos glTF
Utilizando la versión reciente (16.11.0) o superior, los desarrolladores pueden importar y exportar archivos glTF a/desde otros archivos 3D compatibles.
Agrega la clase Aspose.ThreeD.Formats. GlTFLoadOptions
Hemos añadido la clase de GlTFLoadOptions. Ayuda a importar archivos glTF en Aspose.3D API.
Voltear la coordenadas de textura 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);
Agrega la clase Aspose.ThreeD.Formats. GSTFSaveOptions
Hemos añadido la clase de GlTFSaveOptions. Define la configuración para guardar un archivo glTF.
Incrustar dependencias dentro del archivo glTF de salida
// 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);
Utilice las extensiones KHR_materials_common para definir los materiales
// 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);
Personalizar el nombre de archivo de búfer
// 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);
Crea un archivo glTF binario usando la extensión 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);
Crea un archivo glTF binario usando la extensión KHR_binary_glTF junto con las opciones de guardado
// 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);
Agrega una entrada de formato glTF en la clase Aspose.ThreeD.FileFormat
Hemos añadido entradas en formato GLTF y GLTF_Binary para cargar y guardar.
Agrega una propiedad Extension en la clase Aspose.ThreeD.FileFormatType
Hemos agregado una propiedad Extension en la clase FileFormatType para obtener el nombre de la extensión del formato de archivo.
Escribir dependencias en el sistema de archivos reales
Con la versión reciente (16.11.0) o superior, los desarrolladores pueden guardar todas las dependencias de escena 3D en el sistema de archivos real. Los desarrolladores pueden definir la ruta de un directorio local, guardar en el objeto MemoryFileSystem o simplemente descartar dependencias. La propiedad FileSystem se agrega en las clases de opción all save.
Agrega la clase Aspose.ThreeD.Utilities.DummyFileSystem
Descarte guardar los archivos de material
// 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);
Agrega la clase Aspose.ThreeD.Utilities.LocalFileSystem
Guardar dependencias en el directorio local
// 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);
Agrega la clase Aspose.ThreeD.Utilities.MemoryFileSystem
Guardar dependencias en el objeto 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);
Agrega la propiedad FileSystem en la clase Aspose.ThreeD.Formats.IOConfig
Hemos agregado una propiedad FileSystem en la clase IOConfig para escribir dependencias.
Agrega una propiedad FileSystem
Aspose.ThreeD.Utilities.FileSystem FileSystem{ get;set;}