Public API Changements dans Aspose.3D 2.1.0

Contents
[ ]

Résumé du contenu

Ajoute l’exportation des fichiers Collada

En utilisant cette version récente (2.1.0), les développeurs peuvent exporter des fichiers Collada 3D. Dans la version précédente (2.0.0), nous avons déjà ajouté sa fonctionnalité d’importation, car les développeurs peuvent également convertir un fichier Collada vers d’autres formats de fichier 3D pris en charge.

Ajoute des options de chargement et de sauvegarde pour les formats de fichier 3D

Nous avons ajouté des options de charge et de sauvegarde pour chaque format de fichier. Ils sont refactorisés à partir des sous-classes IOConfig originales.

Ajoute Aspose.ThreeD.Formats.ColladaSaveOptions classe

Il définit les paramètres de sauvegarde d’un fichier Collada 3D.

C#

 ColladaSaveOptions opts = new ColladaSaveOptions();

// generates indented XML document

opts.Indented = true;

// the style of node transformation

opts.TransformStyle = ColladaTransformStyle.Matrix;

// configure the look up paths to allow importer to find external dependencies.

opts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

Ajoute Aspose.ThreeD.Formats.Discreet3DSLoadOptions Classe

Il définit les paramètres de chargement d’un fichier 3DS discret.

C#

 Discreet3DSLoadOptions loadOpts = new Discreet3DSLoadOptions();

// sets weather to use the transformation defined in the first frame of animation track.

loadOpts.ApplyAnimationTransform = true;

// flip the coordinate system

loadOpts.FlipCoordinateSystem = true;

// prefer to use gamma-corrected color if a 3ds file provides both original color and gamma-corrected color.

loadOpts.GammaCorrectedColor = true;

// configure the look up paths to allow importer to find external dependencies.

loadOpts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

Ajoute la classe Aspose.ThreeD.Formats. Discreet3DSsaveOptions

Il définit les paramètres de sauvegarde d’un fichier discret 3DS.

C#

 // initialize an object

Discreet3DSSaveOptions saveOpts = new Discreet3DSSaveOptions();

// the start base for generating new name for duplicated names.

saveOpts.DuplicatedNameCounterBase = 2;

// the format of the duplicated counter.

saveOpts.DuplicatedNameCounterFormat = "NameFormat";

// the separator between object's name and the duplicated counter.

saveOpts.DuplicatedNameSeparator = "Separator";

// allows to export cameras

saveOpts.ExportCamera = true;

// allows to export light

saveOpts.ExportLight = true;

// flip the coordinate system

saveOpts.FlipCoordinateSystem = true;

// prefer to use gamma-corrected color if a 3ds file provides both original color and gamma-corrected color.

saveOpts.GammaCorrectedColor = true;

// use high-precise color which each color channel will use 32bit float.

saveOpts.HighPreciseColor = true;

// configure the look up paths to allow importer to find external dependencies.

saveOpts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

// set the master scale

saveOpts.MasterScale = 1;

Ajoute Aspose.ThreeD.Formats.FBXSaveOptions Class

Il définit les paramètres sur l’enregistrement d’un fichier FBX.

C#

 // initialize an object

FBXSaveOptions saveOpts = new FBXSaveOptions(FileFormat.FBX7500ASCII);

// generates the legacy material properties.

saveOpts.ExportLegacyMaterialProperties = true;

// fold repeated curve data using FBX's animation reference count

saveOpts.FoldRepeatedCurveData = true;

// always generates material mapping information for geometries if the attached node contains materials.

saveOpts.GenerateVertexElementMaterial = true;

// configure the look up paths to allow importer to find external dependencies.

saveOpts.LookupPaths = new List< string > (new string[] { @"c:\temp\" });

// generates a video object for texture.

saveOpts.VideoForTexture = true;

Ajoute la classe Aspose.ThreeD.Formats.ObjLoadOptions

Il définit les paramètres sur le chargement d’un fichier Obj.

C#

 // initialize an object

ObjLoadOptions loadObjOpts = new ObjLoadOptions();

// import materials from external material library file

loadObjOpts.EnableMaterials = true;

// flip the coordinate system.

loadObjOpts.FlipCoordinateSystem = true;

// configure the look up paths to allow importer to find external dependencies.

loadObjOpts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

Ajoute la classe Aspose.ThreeD.Formats.ObjSaveOptions

Il définit les paramètres sur la sauvegarde d’un fichier Obj.

C#

 // initialize an object

ObjSaveOptions saveObjOpts = new ObjSaveOptions();

// import materials from external material library file

saveObjOpts.EnableMaterials = true;

// flip the coordinate system.

saveObjOpts.FlipCoordinateSystem = true;

// configure the look up paths to allow importer to find external dependencies.

saveObjOpts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

// serialize W component in model's vertex position

saveObjOpts.SerializeW = true;

// generate comments for each section

saveObjOpts.Verbose = true;

Ajoute Aspose.ThreeD.Formats.STLLoadOptions Classe

Il définit les paramètres de chargement d’un fichier STL.

C#

 // initialize an object

STLLoadOptions loadSTLOpts = new STLLoadOptions();

// flip the coordinate system.

loadSTLOpts.FlipCoordinateSystem = true;

// configure the look up paths to allow importer to find external dependencies.

loadSTLOpts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

Ajoute Aspose.ThreeD.Formats.STLSaveOptions Class

Il définit les paramètres sur l’enregistrement d’un fichier STL.

C#

 // initialize an object

STLSaveOptions saveSTLOpts = new STLSaveOptions();

// flip the coordinate system.

saveSTLOpts.FlipCoordinateSystem = true;

// configure the look up paths to allow importer to find external dependencies.

saveSTLOpts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

Ajoute la classe Aspose.ThreeD.Formats.U3DLoadOptions

Il définit les paramètres de chargement d’un fichier U3D.

C#

 // initialize an object

U3DLoadOptions loadU3DOpts = new U3DLoadOptions();

// flip the coordinate system.

loadU3DOpts.FlipCoordinateSystem = true;

// configure the look up paths to allow importer to find external dependencies.

loadU3DOpts.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

Ajoute Aspose.ThreeD.Formats. U3DSAeOptions Class

Il définit les paramètres de sauvegarde d’un fichier U3D.

C#

 // initialize an object

U3DSaveOptions saveU3DOptions = new U3DSaveOptions();

// export normal data.

saveU3DOptions.ExportNormals = true;

// export the texture coordinates.

saveU3DOptions.ExportTextureCoordinates = true;

// export the vertex diffuse color.

saveU3DOptions.ExportVertexDiffuse = true;

// export vertex specular color

saveU3DOptions.ExportVertexSpecular = true;

// flip the coordinate system.

saveU3DOptions.FlipCoordinateSystem = true;

// configure the look up paths to allow importer to find external dependencies.

saveU3DOptions.LookupPaths = new List<string>(new string[] { @"c:\temp\" });

// compress the mesh data

saveU3DOptions.MeshCompression = true;

Ajoute des méthodes à Aspose.ThreeD.Scene Class

Nous avons surchargé les méthodes Open et Save dans la classe Scene. Les développeurs peuvent transmettre un objet de flux ou un nom de fichier direct pour importer/exporter un fichier 3D en utilisant les différentes options de chargement/sauvegarde.

C#

 public void Open(System.IO.Stream stream, Aspose.ThreeD.Formats.LoadOptions options);

public void Open(string fileName, Aspose.ThreeD.Formats.LoadOptions options);

public void Save(System.IO.Stream stream, Aspose.ThreeD.Formats.SaveOptions options);

public void Save(string fileName, Aspose.ThreeD.Formats.SaveOptions options);

Suppression de la propriété FillDummyIndexArray de la classe Aspose.ThreeD.Formats.FBXConfig

Cette propriété n’était pas utilisée.

C#

 System.Nullable<Boolean> FillDummyIndexArray{ get;set;}

Détecter le type d’un fichier 3D

La méthode Detect de la classe Aspose.ThreeD.FileFormat peut reconnaître le type de tout fichier 3D pris en charge.

C#

 FileFormat inputFormat = FileFormat.Detect(@"C:\ThreeD\test06\colors.fbx");

Console.WriteLine("File Format: " + inputFormat.ToString());

Ajoute les méthodes Detect, CreateLoadOptions et CreateSaveOptions dans la classe Aspose.ThreeD.FileFormat

Après la reconnaissance d’un type de fichier 3D, les développeurs peuvent créer des objets LoadOptions et SaveOptions pour les tâches de manipulation ultérieures.

C#

 // allows to detect file format from file stream or filename

static Aspose.ThreeD.FileFormat Detect(System.IO.Stream stream, string fileName)

// allows to detect file format from filename

static Aspose.ThreeD.FileFormat Detect(string fileName)

// create default load options for this file format

Aspose.ThreeD.Formats.LoadOptions CreateLoadOptions()

// create default save options for this file format

Aspose.ThreeD.Formats.SaveOptions CreateSaveOptions()

Ajoute la propriété exclue aux classes Aspose.ThreeD.Entity et Aspose.ThreeD.Node

Il permet de supprimer une entité lors de l’exportation.

C#

 bool Excluded{ get;set;}

Ajoute Aspose.ThreeD.Render.RenderState Class et Aspose.ThreeD.Render.BlendFactor/CompareFunction/CullFaceMode/FrontFace/PolygonMode/StencilAction/StencilState Enums

Les états de rendu fournissent des paramètres au GPU pour rastériser les triangles en pixels.

Ajoute des API Shader

Les API Shader définissent comment transformer les triangles de l’espace mondial en espace d’écran et calculer la couleur finale du pixel du côté GPU.

Ajoute une classe abstraite Aspose.ThreeD.Render.ShaderSource et une sous-classe Aspose.ThreeD.Render. GSLSource

Le GLSLSource indique au moteur de rendu, le code source est pour le langage d’ombrage OpenGL, il peut être compilé en Aspose.ThreeD.Render.ShaderProgram.

Ajoute Aspose.ThreeD.Render.ShaderException Class

Les exceptions liées à Shader, principalement utilisées dans l’étape de compilation et de liaison du langage shader.

Ajoute la classe Aspose.ThreeD.Render.ShaderProgram

C’est le programme de shader compilé.

Ajouter Aspose.ThreeD.Render.ShaderVariable Class

Il définit les variables utilisées dans shader.

Ajoute une classe Enum Aspose.ThreeD.Render.VariableSemantic

Il est utilisé pour identifier la sémantique de la variable shader, Aspose. Le rendu 3D préparera automatiquement les valeurs des variables de shader en fonction de la sémantique.

Ajoute des API tampons

Les tampons fournissent la définition et les données des triangles.

Ajoute une interface Aspose.ThreeD.Render.IBuffer

C’est l’interface de base pour IIndexBuffer et IVertexBuffer.

Ajoute des interfaces Aspose.ThreeD.Render.IIndexBuffer/IVertexBuffer

Ils présentent des tampons matériels pour stocker les indices de géométrie.

Ajoute un Enum Aspose.ThreeD.Render.IndexDataType

Le type de données des indices de géométrie.

Ajoute des API de Render

Ajoute une interface Aspose.ThreeD.Render.IRenderable

Un objet qui prend en charge le rendu doit implémenter cette interface.

Ajout d’un Enum Aspose.ThreeD.Render.DrawOperation

Le type primitif à dessiner.

Ajoute un Enum Aspose.ThreeD.Render.RenderQueueGroupId

Aspose.3D API utilise la file d’attente de rendu pour gérer le flux de travail de rendu, ceci est utilisé pour soumettre l’opération de rendu à la file d’attente de rendu spécifiée.

Ajoute Aspose.ThreeD.Render.RenderResource Class

Base class for bridging the Aspose.3D’s model API to hardware resources, this is used by Aspose.3D internally, but exposed to unleash the full power of Aspose.3D rendering.

Ajoute la classe Aspose.ThreeD.Render.RenderableResource

Une sous-classe de RenderResource, mais concentrez-vous sur le rendu.

Ajoute la classe Aspose.ThreeD.Entities.ManualEntity

L’utilisateur doit utiliser cette classe pour implémenter sa propre entité qui prend en charge le rendu, cette classe encapsule les détails des opérations de rendu et de la gestion des ressources.

Ajoute plusieurs méthodes de triangulation dans la classe Aspose.ThreeD.Entities.PolygonModifier

Plus de surcharges pour simplifier l’utilisation de la fonction d’origine.

C#

 public static int[][] Triangulate(IList<[Aspose.ThreeD.Utilities.Vector4> controlPoints, IList<int[]> polygons);

public static int[][] Triangulate(IList<[Aspose.ThreeD.Utilities.Vector4> controlPoints, Int32[] polygon);

public static int[][] Triangulate(IList<Aspose.ThreeD.Utilities.Vector4> controlPoints);

Ajoute les méthodes CreateVertexBuffer, CreateIndexBuffer, CreateTextureUnit, CreateRenderState et CreateShaderProgram dans la classe Aspose.ThreeD.Render.RenderFactory

C#

 public Aspose.ThreeD.Render.IVertexBuffer CreateVertexBuffer(Aspose.ThreeD.Utilities.VertexDeclaration declaration)

public Aspose.ThreeD.Render.IIndexBuffer CreateIndexBuffer()

public Aspose.ThreeD.Render.ITextureUnit CreateTextureUnit()

public Aspose.ThreeD.Render.RenderState CreateRenderState()

public Aspose.ThreeD.Render.ShaderProgram CreateShaderProgram(Aspose.ThreeD.Render.ShaderSource shaderSource, IList<Aspose.ThreeD.Utilities.VertexField> inputFields)

public Aspose.ThreeD.Render.ShaderProgram CreateShaderProgram(Aspose.ThreeD.Render.ShaderSource shaderSource, Aspose.ThreeD.Utilities.VertexDeclaration vertexDeclaration)

Ajoute les méthodes BindRenderState, DrawIndexed, Draw et SubmitRenderTask dans la classe Aspose.ThreeD.Render.Renderer

C#

 public void BindRenderState(Aspose.ThreeD.Render.RenderState renderState)

public void DrawIndexed(Aspose.ThreeD.Render.DrawOperation drawOperation, Aspose.ThreeD.Render.IVertexBuffer vertexBuffer, Aspose.ThreeD.Render.IIndexBuffer indexBuffer, Int32 count)

public void Draw(Aspose.ThreeD.Render.DrawOperation drawOperation, Aspose.ThreeD.Render.IVertexBuffer vertexBuffer, Int32 first, Int32 count)

public void Draw(Aspose.ThreeD.Render.DrawOperation drawOperation, Aspose.ThreeD.Render.IVertexBuffer vertexBuffer)

public void DrawIndexed(Aspose.ThreeD.Render.DrawOperation drawOperation, Aspose.ThreeD.Render.IVertexBuffer vertexBuffer, Aspose.ThreeD.Render.IIndexBuffer indexBuffer)

public void SubmitRenderTask(Aspose.ThreeD.Render.RenderQueueGroupId groupId, Int32 priority, Aspose.ThreeD.Render.IRenderable renderableTask)

Ajoute les propriétés RenderStage et Shader dans la classe Aspose.ThreeD.Render.Renderer

C#

 public RenderStage RenderStage { get; }

public Aspose.ThreeD.Render.ShaderProgram Shader{ get;set;}