Aspose.3D for .NET 17,7 Notas de la versión

Otras mejoras y cambios

ClaveResumenCategoría
THREEDNET-265Agregue soporte para exportar la escena 3D al formato PLY.Nueva característica
THREEDNET-271Simplificar la creación de la matriz de transformación.Nueva característica
THREEDNET-270Permitir generar una malla a partir de una imagen en escala de grises como un mapa de altura.Nueva característica
THREEDNET-272El archivo FBX generado no se puede editar con 3ds max.Error
THREEDNET-274Los UV están dañados al exportar una escena en formato FBX.Error

Público API y cambios incompatibles al revés

Consulte la lista de cualquier cambio realizado al público API, como miembros agregados, renombrados, eliminados o obsoletados, así como cualquier cambio no compatible con versiones anteriores realizado a Aspose.3D for .NET. Si tiene inquietudes sobre cualquier cambio enumerado, por favor recújelo en elAspose.3D foro de apoyo.

Agrega miembros a Aspose.ThreeD.Utilities. Clase Matrix4

C#

 /// <summary>

/// Creates a translation matrix 

/// </summary>

/// <param name="t"></param>

/// <returns></returns>

public static Matrix4 Translate(Vector3 t);

/// <summary>

/// Creates a translation matrix 

/// </summary>

/// <param name="tx"></param>

/// <param name="ty"></param>

/// <param name="tz"></param>

/// <returns></returns>

public static Matrix4 Translate(double tx, double ty, double tz);

/// <summary>

/// Create a scale matrix

/// </summary>

/// <param name="s"></param>

/// <returns></returns>

public static Matrix4 Scale(Vector3 s);

/// <summary>

/// Create a scale matrix

/// </summary>

/// <param name="s"></param>

/// <returns></returns>

public static Matrix4 Scale(double s);

/// <summary>

/// Create a scale matrix

/// </summary>

/// <param name="sx"></param>

/// <param name="sy"></param>

/// <param name="sz"></param>

/// <returns></returns>

public static Matrix4 Scale(double sx, double sy, double sz);

/// <summary>

/// Create a rotation matrix from euler angle

/// </summary>

/// <param name="eul">Rotation in radian</param>

/// <returns></returns>

public static Matrix4 RotateFromEuler(Vector3 eul);

/// <summary>

/// Create a rotation matrix from euler angle

/// </summary>

/// <param name="rx">Rotation in x axis in radian</param>

/// <param name="ry">Rotation in y axis in radian</param>

/// <param name="rz">Rotation in z axis in radian</param>

/// <returns></returns>

public static Matrix4 RotateFromEuler(double rx, double ry, double rz) 

/// <summary>

/// Create a rotation matrix by rotation angle and axis

/// </summary>

/// <param name="angle">Rotate angle in radian</param>

/// <param name="axis">Rotation axis</param>

/// <returns></returns>

public static Matrix4 Rotate(double angle, Vector3 axis);

/// <summary>

/// Create a rotation matrix from a quaternion

/// </summary>

/// <param name="rotate"></param>

/// <returns></returns>

public static Matrix4 Rotate(Quaternion rotate);



//Create a transform that translates (1, 0, 0) then rotates alone the y axis pi radian.

var m  = Matrix4.RotateFromEuler(0, Math.PI, 0) * Matrix4.Translate(1, 0, 0);

Agrega nuevas clases Aspose.ThreeD.Utilities. CompoteOrder y Aspose.ThreeD.Utilities.TransformBuilder

El constructor de transformadas simplifica la creación de la matriz de transformación mediante una cadena de operaciones.

C#

 //use prepend order so the calculation is performed from left to right:

var m = (new TransformBuilder(ComposeOrder.Prepend))

    //Change the (x, y, z) into (x + 1, y, z)

    .Translate(1, 0, 0)

    //Rotate alone with the Y axis with 180deg will change the (x, y, z) into (-x, y, -z)

    .RotateEulerDegree(0, 180, 0)

    //Scale by 2 will change the (x, y, z) into (2x, 2y, 2z)

    .Scale(2)

    //change the (x, y, z) into (z, y, x)

    .Rearrange(Axis.ZAxis, Axis.YAxis, Axis.XAxis)

    .Matrix;



//Apply this matrix on a (0, 0, 0) vector, then we get the right result (0, 0, -2)

var t = m * Vector3.Origin;

Miembros actualizados a Aspose.ThreeD. Formatos

Este cambio introduce una nueva clase Aspose.ThreeD. Formatos. PlyFormat, que permite codificar una sola malla en lugar de toda la escena:

C#

 public static readonly Aspose.ThreeD.FileFormat PLY;

//Changed to

public static readonly Aspose.ThreeD.Formats.PlyFormat PLY;



// sample code

// Create a cylinder object and save it to ply file

FileFormat.PLY.EncodeMesh(new Cylinder(), "cylinder.ply");

Agrega una nueva clase Aspose.ThreeD. Formatos. PlySaveOptions

El formato de nivel no tiene un estándar oficial, diferentes aplicaciones pueden tener diferentes definiciones de su formato de vértice, esta clase le permite definir detalles del formato de nivel. Por ejemplo, el nombre de componente predeterminado para los componentes de coordenadas de textura es ‘u’ y ‘v’, pero algunas aplicaciones usan ’s’ y ’t’, entonces puede cambiar el nombre usando esta clase:

C#

 //Save as binary PLY format, the default value is ASCII

PlySaveOptions opt = new PlySaveOptions(FileContentType.Binary);

//change the components to 's' and 't'

opt.TextureCoordinateComponents.Item1 = "s";

opt.TextureCoordinateComponents.Item2 = "t";

//save the mesh

FileFormat.PLY.EncodeMesh(new Cylinder(), "cylinder.ply", opt);

Ejemplos de uso

Compruebe la lista de temas de ayuda agregados o actualizados en los documentos wiki Aspose.3D:

  1. Convertir malla de un único objeto 3D en un archivo PLY
  2. Simplificar la creación de la matriz de transformación por las operaciones de la cadena