Aspose.3D for .NET 21,2 Notas de la versión

Mejoras y cambios

ClaveResumenCategoría
THREEDNET-825Añada el soporte de importación USDZ.Nueva característica
THREEDNET-824Añadir soporte de textura en USDZTarea
THREEDNET-811Implementar una versión de evaluación relacionada con la excepción en el APIMejora
THREEDNET-813Se requieren detalles técnicos sobre el material y la textura API limitaciones-API no proporciona una forma de descubrir texturas en materialesMejora
THREEDNET-817Añadir soporte para textura byte[] en caso de glb, gltf, objMejora
THREEDAPP-80Mejorar la velocidad de carga de la página del renderizador webMejora
THREEDNET-814Los índices del triángulo no son correctosCorrección de errores
THREEDNET-809FBX Guardar excepción: Tipo de atributo no admitidoCorrección de errores
THREEDNET-810El tamaño de archivos es cada vez más grande mientras reutiliza la misma texturaCorrección de errores
THREEDNET-816Malla incorrecta durante la carga OBJCorrección de errores
THREEDNET-807No hay textura en el FBX exportadoCorrección de errores
THREEDNET-815Los materiales con modelo de sombreado = Desconocido no se pueden procesar.Corrección de errores
THREEDNET-823La malla múltiple unida al mismo nodo no se rerepresenta.Corrección de errores
THREEDNET-647Agregue la interfaz de usuario de control de escala en el renderizador web.Tarea
THREEDNET-646Agregue la interfaz de usuario de control de rotación en el renderizador web.Tarea

API cambios

Clase añadida Aspose.ThreeD. Sombreado. Ranura de texto

Esto expuso las ranuras de textura interna en los materiales, para acceder a todas las ranuras de textura disponibles de un material, use la declaración de cada uno:

var mat = new PbrMaterial();
foreach(var textureSlot in mat)
{
    Console.WriteLine(textureSlot.SlotName);
    Console.WriteLine(textureSlot.Texture);
}

Añadido clase Aspose.ThreeD. TrialExcepción

A partir de 21,2, cuando el uso sin licencia alcanzó la restricción de licencia, se realizará una TrialExcepción para notificar la restricción de licencia y cómo solicitar una licencia temporal.

Simplemente puede ignorar esto mediante el bloqueo surround try/catch en la operación Guardar/Abrir, o desactivar esta excepción:

TrialException.SuppressTrialException = true;

Apague este mensaje no levantará las restricciones (al igual que los nodos adicionales son ignorados por el exportador/importador).

Para obtener toda la función completa, solicite una licencia temporal o compre una licencia de función completa.

Añadido métodos a Aspose.ThreeD. Entidades. TriMesh

public Aspose.ThreeD.Utilities.Vector4 ReadVector4(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.FVector4 ReadFVector4(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.Vector3 ReadVector3(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.FVector3 ReadFVector3(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.Vector2 ReadVector2(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.FVector2 ReadFVector2(int idx, Aspose.ThreeD.Utilities.VertexField field);
public double ReadDouble(int idx, Aspose.ThreeD.Utilities.VertexField field);
public float ReadFloat(int idx, Aspose.ThreeD.Utilities.VertexField field);

Estos métodos le permiten leer el campo de vértice sin asignar memoria adicional, la forma tradicional de acceder al vértice desde TriMesh en realidad genera una gran cantidad de objetos temporales, estos pueden proporcionar acceso rápido y de memoria baja.

Escena s = nueva escena (@ "test.STL");
Var de malla = (Mesh)s RootNode! ChildNodes[0] Entity;

// Cree una nueva VertexDeclaration, por lo que el TriMesh que construimos más tarde utilizará este diseño de memoria.
Var vd = nueva Declaración Vertexal ();
Var pos = vd! AddField(VertexFieldDataType! FVector3... VertexFieldSemantic! Position);
Var normal = vd! AddField(VertexFieldDataType! FVector3... VertexFieldSemantic! Normal);
Var uv = vd! AddField(VertexFieldDataType! FVector2... VertexFieldSemantic! UV);
// Crear una instancia de TriMesh a partir de la instancia de Mesh con la declaración de vértice especificada manualmente
Var m = TriMesh! FromMesh(vd de malla);
(Int = 0;< m.VerticesCount; i++)
{
    //access each field
    var v_pos = m.ReadFVector3(i, pos);
    var v_normal = m.ReadFVector3(i, normal);
    var v_uv = m.ReadFVector3(i, uv);
    Console.WriteLine($"({v_pos}), ({v_uv}), ({v_normal})");
}

Añadido nuevo formato de archivo en Aspose.ThreeD.FileFormat

/// <summary>
/// Compressed Universal Scene Description
/// </summary>
public static readonly FileFormat USDZ;

Aspose.3D 21,2 puede cargar ahora el formato USDZ.

Se corrigieron las API inconsistentes:

Estas clases antiguas se mantendrán durante un tiempo y se introducirán nuevas clases para reemplazarlas:

Clase antiguaNueva clase
Aspose.ThreeD. Formatos. A3DWSaveOptionsAspose.ThreeD. Formatos. A3dwSaveOptions
Aspose.ThreeD. Formatos. AMFSaveOptionsAspose.ThreeD. Formatos. AmfSaveOptions
Aspose.ThreeD. Formatos. Discreet3DSLoadOptionsAspose.ThreeD. Formatos. Discreet3dsLoadOptions
Aspose.ThreeD. Formatos. Discreet3DSSaveOptionsAspose.ThreeD. Formatos. Discreet3dsSaveOptions
Aspose.ThreeD. Formatos. FBXLoadOptionsAspose.ThreeD. Formatos. FbxLoadOptions
Aspose.ThreeD. Formatos. FBXSaveOptionsAspose.ThreeD. Formatos. FbxSaveOptions
Aspose.ThreeD. Formatos. GLTFLoadOptionsAspose.ThreeD. Formatos. GltfLoadOptions
Aspose.ThreeD. Formatos. GLTFSaveOptionsAspose.ThreeD. Formatos. GltfSaveOptions
Aspose.ThreeD. Formatos. HTML5SaveOptionsAspose.ThreeD. Formatos. Html5SaveOptions
Aspose.ThreeD. Formatos. STLLoadOptionsAspose.ThreeD. Formatos. StlLoadOptions
Aspose.ThreeD. Formatos. STLSaveOptionsAspose.ThreeD. Formatos. StlSaveOptions
Aspose.ThreeD. Formatos. U3DLoadOptionsAspose.ThreeD. Formatos. U3dLoadOptions