Explore nuestros productos

Notas de la versión de Aspose.3D para .NET 23.12

Mejoras y Cambios

KeySummaryCategory
THREEDNET-1458Permitir optimizar la malla para eliminar puntos de control duplicados.Nueva característica
THREEDNET-1468Permitir especificar el sistema de ejes al exportar el modelo a STL/OBJ/PLYNueva característica
THREEDNET-222Agregar soporte para operaciones booleanas complejas en mallasNueva característica
THREEDNET-1441Permitir que la operación booleana funcione en malla ordinalMejora
THREEDNET-1451Exportación de OBJ con texturas incorrectas.Corrección de errores
THREEDNET-1452No se puede asignar memoria del dispositivo GPU para texturas con un tamaño de 8192 * 8192Corrección de errores
THREEDNET-1453Exportación de GLTF con texturas incorrectas.Corrección de errores
THREEDNET-1454Exportación de FBX: se exportan grupos de modelos incorrectosCorrección de errores
THREEDNET-1461Los puntos de enlace en objetos diferentes devuelven el mismo valor cuando los nombres de las propiedades son los mismos.Corrección de errores
THREEDNET-1462Aspose.3D genera datos de animación incompatiblesCorrección de errores

Cambios en la API

Clase Aspose.ThreeD.AxisSystem agregada

Ciertos formatos de archivo, como OBJ, STL y PLY, le permiten definir el sistema de coordenadas, el vector “arriba” y el vector frontal durante el proceso de exportación. Puede utilizar esta clase para proporcionar y configurar esta información en consecuencia.

Clase Aspose.ThreeD.CoordinatedSystem renombrada a Aspose.ThreeD.CoordinateSystem

Miembros agregados a la clase Aspose.ThreeD.Animation.AnimationNode:

        /// <summary>
        /// Encuentra el punto de enlace por objetivo y nombre.
        /// </summary>
        /// <returns>El punto de enlace.</returns>
        /// <param name="target">Objetivo del punto de enlace a encontrar.</param>
        /// <param name="name">Nombre del punto de enlace a encontrar.</param>
        public BindPoint FindBindPoint(A3DObject target, string name)

Las sobrecargas actualizadas ahora le permiten especificar tanto el objetivo como el nombre, mientras que la implementación anterior solo realizaba una búsqueda basada en el nombre proporcionado.

Miembros agregados a la clase Aspose.ThreeD.AssetInfo:

        /// <summary>
        /// Obtiene o establece el vector frontal utilizado en este activo.
        /// </summary>
        public Axis? FrontVector
        {
            get { return frontVector; }
            set { frontVector = value; }
        }

        /// <summary>
        /// Obtiene o establece el sistema de coordenadas/vector "arriba"/vector frontal de la información del activo.
        /// </summary>
        public AxisSystem AxisSystem { get;set; }

Algunos formatos como FBX pueden definir un vector frontal personalizado dentro del archivo FBX.

Miembros agregados a la clase Aspose.ThreeD.Axis:

        /// <summary>
        /// El eje -X.
        /// </summary>
        NegativeXAxis,
        /// <summary>
        /// El eje -Y.
        /// </summary>
        NegativeYAxis,
        /// <summary>
        /// El eje -Z.
        /// </summary>
        NegativeZAxis,

Los valores adicionales del enum ahora ofrecen una especificación más precisa de la dirección para los ejes al construir un sistema de ejes.

Clase Aspose.ThreeD.Deformers.BoneLinkMode agregada

Miembros agregados a la clase Aspose.ThreeD.Deformers.Bone:

        /// <summary>
        /// El modo de enlace de un hueso se refiere a la forma en que un hueso está conectado o enlazado a su hueso padre dentro de una estructura jerárquica. 
        /// </summary>
        public BoneLinkMode LinkMode { get; set; }

La característica LinkMode ofrece modos de enlace compatibles con FBX para huesos dentro del contexto de la aplicación.

Código de ejemplo

        var boneToLimbNode1 = new Bone("")
        {
                Node = limbNode1,
                LinkMode = BoneLinkMode.TotalOne
        };

Miembros agregados a la clase Aspose.ThreeD.Entities.Mesh:

        /// <summary>
        /// Optimiza el uso de memoria de la malla eliminando los puntos de control duplicados
        /// </summary>
        /// <param name="vertexElements">Optimiza los datos duplicados del elemento de vértice</param>
        /// <returns>Nueva instancia de malla con uso compacto de memoria</returns>
        public Mesh Optimize(bool vertexElements)

Código de ejemplo

        var mesh = (new Box()).ToMesh();
        //1341 bytes, 24 vertices,  24 normals, 24 texture coordinates,
        (new Scene(mesh)).Save("unoptimized.obj");

        //Elimina los puntos de control duplicados y los datos del elemento de vértice reutilizando el mismo vector.
        var optimizedMesh = mesh.Optimize(true);
        //640 bytes, 8 vertices,  6 normals, 4 texture coordinates
        (new Scene(optimizedMesh)).Save("optimized.obj");

Miembros agregados a la clase Aspose.ThreeD.Formats.ObjSaveOptions:

        /// <summary>
        /// Obtiene o establece el sistema de ejes en el archivo stl exportado. 
        /// </summary>
        /// <remarks> Debe habilitarse FlipCoordinateSystem para utilizar esta función. </remarks>
        public AxisSystem AxisSystem { get; set; }

Código de ejemplo para convertir una escena en un archivo OBJ mientras utiliza un sistema de ejes personalizado.

Código de ejemplo

        var scene = Scene.FromFile("input.fbx");
        var opt = new ObjSaveOptions();
        opt.AxisSystem = new AxisSystem(CoordinateSystem.RightHanded, Axis.YAxis, Axis.XAxis);
        opt.FlipCoordinateSystem = true;
        scene.Save("test.obj", opt);

Miembros agregados a la clase Aspose.ThreeD.Formats.PlySaveOptions:

        /// <summary>
        /// Obtiene o establece el sistema de ejes en el archivo stl exportado. 
        /// </summary>
        /// <remarks> Debe habilitarse FlipCoordinateSystem para utilizar esta función. </remarks>
        public AxisSystem AxisSystem { get; set; }

Código de ejemplo para convertir una escena en un archivo PLY mientras utiliza un sistema de ejes personalizado.

Código de ejemplo

        var scene = Scene.FromFile("input.fbx");
        var opt = new PlySaveOptions();
        opt.AxisSystem = new AxisSystem(CoordinateSystem.RightHanded, Axis.YAxis, Axis.XAxis);
        opt.FlipCoordinateSystem = true;
        scene.Save("test.ply", opt);

Miembros agregados a la clase Aspose.ThreeD.Formats.StlSaveOptions:

        /// <summary>
        /// Obtiene o establece el sistema de ejes en el archivo stl exportado.
        /// </summary>
        /// <remarks> Debe habilitarse FlipCoordinateSystem para utilizar esta función. </remarks>
        public AxisSystem AxisSystem { get; set; }

Miembros agregados a la clase Aspose.ThreeD.Formats.GltfSaveOptions:

        /// <summary>
        /// Obtiene o establece el sistema de ejes en el archivo gltf exportado.
        /// </summary>
        /// <remarks> Debe habilitarse FlipCoordinateSystem para utilizar esta función. </remarks>
        public AxisSystem AxisSystem { get; set; }

Miembros agregados a la clase Aspose.ThreeD.Transforms.Transform:

        /// <summary>
        /// Obtiene o establece el escalado
        /// </summary>
        /// <example>
        public Vector3 Scaling { get; set ; }
        /// <summary>
        /// Obtiene o establece el desplazamiento de la escala
        /// </summary>
        public Vector3 ScalingOffset { get; set; }
        /// <summary>
        /// Obtiene o establece el pivote de la escala
        /// </summary>
        public Vector3 ScalingPivot { get; set; }
        /// <summary>
        /// Obtiene o establece el desplazamiento de la rotación
        /// </summary>
        public Vector3 RotationOffset { get; set; }
        /// <summary>
        /// Obtiene o establece el pivote de la rotación
        /// </summary>
        public Vector3 RotationPivot { get; set; }

Las propiedades ScalingOffset, ScalingPivot, RotationOffset y RotationPivot permiten una definición más precisa de la rotación y la escala, lo que garantiza la compatibilidad con los estándares de Maya/3ds Max.


 
 Español