Explore nuestros productos

Notas de la versión 24.2 de Aspose.3D para Java

Mejoras y Cambios

KeySummaryCategory
THREEDJAVA-329Agregar InputStream/OutputStream nativos para las operaciones de IO de SceneImprovement
THREEDNET-1499OBJ a GLTF - gran número de vérticesImprovement
THREEDNET-1509Actualizar el soporte de .net 7.0 a .net 8.0Improvement
THREEDNET-1460Los nodos de esqueleto exportados de Fbx no tienen transformación sino poseBug fixing
THREEDNET-1494Se agregó soporte de la extensión KHR_mesh_quantization en la importación de GLTFBug fixing
THREEDNET-1495Exportar animaciones de GLB a FBX puede causar fallo de SlerpBug fixing
THREEDNET-1496El tipo de atributo no compatible puede hacer que el importador de Maya se detengaBug fixing
THREEDNET-1497Una primitiva sin un valor de propiedad válido puede fallar al cargarse en USDBug fixing
THREEDNET-1498Problema de referencia externa de 3MF en el elemento de compilaciónBug fixing

Cambios en la API

Esta versión es principalmente una versión de corrección de errores, con algunos cambios en la API:

Se agregaron miembros a la clase com.aspose.threed.Mesh:

    /**
     *  Devuelve la malla triangulada
     *
     * @return La malla actual si la malla actual ya está triangulada, de lo contrario se calculará y se devolverá una nueva malla triangulada
     *
     */
    public Mesh triangulate()

Esta función le permite triangular una malla de una manera sencilla.

Código de ejemplo

        //La malla del plano tiene solo un polígono con 4 puntos de control
        Mesh mesh = (new Plane()).toMesh();
        //Después de la triangulación, el rectángulo de la nueva malla se convertirá en 2 triángulos.
        Mesh triangulated = mesh.triangulate();

Se agregaron miembros a la clase com.aspose.threed.TriMesh:

    /**
     *  Agrega un nuevo triángulo
     *
     * @param a El índice del primer vértice
     * @param b El índice del segundo vértice
     * @param c El índice del tercer vértice
     */
    public void addTriangle(int a, int b, int c);

    /**    
     * Escribe los datos de los vértices en el flujo especificado    
     *    
     * @param stream El flujo al que se escribirán los datos de los vértices    
     */    
    public void writeVerticesTo(OutputStream stream)    throws IOException;

    /**    
     * Escribe los datos del índice como entero de 16 bits en el flujo    
     *    
     * @param stream     
     * </pre>    
     *    
     */    
    public void write16bIndicesTo(OutputStream stream)    throws IOException;
        
    /**    
     * Escribe los datos del índice como entero de 32 bits en el flujo    
     *    
     * @param stream     
     */    
    public void write32bIndicesTo(OutputStream stream)    throws IOException;

Esta función le permite agregar manualmente un triángulo a TriMesh.

Código de ejemplo

  int[] indices = new int[] { 0,  1,  2 };
  byte[] vertices = new byte[]{
      0, 0, 0, 191,
      0, 0, 0, 0,
      0, 0, 0, 191,
      0, 0, 0, 191,
      0, 0, 0, 0,
      0, 0, 0, 63,
      0, 0, 0, 63,
      0, 0, 0, 0,
      0, 0, 0, 63
  };

  VertexDeclaration vd = new VertexDeclaration();
  vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.POSITION);
  //crea una TriMesh vacía con la declaración de vértice especificada
  var triMesh = new TriMesh("", vd);
  //carga vértices directamente desde bytes
  triMesh.loadVerticesFromBytes(vertices);
  triMesh.addTriangle(0, 1, 2);

Se agregaron miembros a la clase com.aspose.threed.Scene:

    /**    
     *  Abre la escena desde el flujo dado usando el formato de archivo especificado.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param format Formato de archivo.    
     * @param cancellationToken Token de cancelación para la tarea de carga    
     *    
     */    
    public static Scene fromStream(InputStream stream, FileFormat format, Cancellation cancellationToken)    
            throws IOException    
    /**    
     *  Abre la escena desde el flujo dado usando el formato de archivo especificado.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param format Formato de archivo.    
     *    
     */    
    public static Scene fromStream(InputStream stream, FileFormat format)    
            throws IOException    
    /**    
     *  Abre la escena desde el flujo dado usando la configuración de IO especificada.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param options Configuración más detallada para abrir el flujo.    
     * @param cancellationToken Token de cancelación para la tarea de carga    
     *    
     */    
    public static Scene fromStream(InputStream stream, SaveOptions options, Cancellation cancellationToken)    
            throws IOException    
    /**    
     *  Abre la escena desde el flujo dado usando la configuración de IO especificada.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param options Configuración más detallada para abrir el flujo.    
     *    
     */    
    public static Scene fromStream(InputStream stream, SaveOptions options)    
            throws IOException    
    /**    
     *   Abre la escena desde el flujo dado    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     *    
     */    
    public static Scene fromStream(InputStream stream)    
            throws IOException    
    /**    
     *   Abre la escena desde el flujo dado    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param cancellationToken Token de cancelación para la tarea de carga    
     *    
     */    
    public static Scene fromStream(InputStream stream, Cancellation cancellationToken)    
            throws IOException    
    /**    
     *  Guarda la escena en un flujo usando el formato de archivo especificado.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param format Formato.    
     *    
     */    
    public static void save(OutputStream stream, FileFormat format)    
            throws IOException    
    /**    
     *  Guarda la escena en un flujo usando el formato de archivo especificado.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param format Formato.    
     * @param cancellationToken Token de cancelación para la tarea de guardado    
     */    
    public static void save(OutputStream stream, FileFormat format, Cancellation cancellationToken)    
            throws IOException    
    /**    
     *  Guarda la escena en un flujo usando el formato de archivo especificado.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param options Configuración más detallada para guardar el flujo.    
     *    
     */    
    public static void save(OutputStream stream, SaveOptions options)    
            throws IOException    
    /**    
     *  Guarda la escena en un flujo usando el formato de archivo especificado.    
     *    
     * @param stream Flujo de entrada, el usuario es responsable de cerrar el flujo.    
     * @param options Configuración más detallada para guardar el flujo.    
     * @param cancellationToken Token de cancelación para la tarea de guardado    
     *    
     */    
    public static void save(OutputStream stream, SaveOptions options, Cancellation cancellationToken)    
            throws IOException    

Hubo solo una versión de Stream de save/open/fromStream antes, ahora admitimos InputStream/OutputStream de JDK.


 
 Español