Características y Funcionalidades

Características y Funcionalidades

Características y Funcionalidades

Esta página cubre cada área de características principales de Aspose 3D-Foss 26.0 y más Exemplos de Java.


Cargar y ahorrar escenas

scene.open() cargar un archivo; scene.save() Exportaciones en:

import com.aspose.threed.Scene;

Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");

Alternativas de fábrica estática:

Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");

Opciones específicas de formato

Paso LoadOptions o SaveOptions Subclases para control de granos finos:

import com.aspose.threed.*;

Scene scene = new Scene();
ObjLoadOptions opts = new ObjLoadOptions();
opts.setFlipCoordinateSystem(true);
scene.open("model.obj", opts);

GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setFlipCoordinateSystem(true);
scene.save("model.glb", saveOpts);

Nota de: FBX sólo se soporta para la importación; Exportación de FB X no se implementa en la versión FOSS. Binar Fbx Los archivos están apoyados para la importación — ASCII FBX lanza ImportException.


Construir un gráfico de escena

Crea nodos y adjuntas de entidades:

Scene scene = new Scene();
Node root = scene.getRootNode();

Mesh mesh = new Mesh("myMesh");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.createPolygon(0, 1, 2);

Node meshNode = root.createChildNode("triangle", mesh);

Mesh operaciones

Creación a Mesh Programmático con puntos de control y poligones:

Mesh mesh = new Mesh("custom");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.getControlPoints().add(new Vector4(0, 10, 0));
mesh.createPolygon(0, 1, 2, 3);

Transformados

Cada uno Node llevando a Transform:

Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);

Leer el espacio a través de node.getGlobalTransform().getMatrix().


Materiales

Asignar materiales a los nodos:

import com.aspose.threed.*;

PbrMaterial mat = new PbrMaterial("shiny");
mat.setAlbedo(new Vector4(0.8, 0.2, 0.2, 1.0));
mat.setMetallicFactor(0.5);
mat.setRoughnessFactor(0.3);

scene.getRootNode().createChildNode("red_mesh", mesh, mat);

Tipos de materiales: Material y la base, PbrMaterial (PBR de la dureza metálica).


Consejos y mejores prácticas

  • Uso Scene.fromFile() para cargas de una línea cuando no se necesitan opciones personalizadas
  • Construcción de mesas programada con createPolygon() Para la geometría personalizada
  • Uso .glb Extension para la producción binaria compacta glTF
  • Verificar node.getEntity() != null Antes de casting
  • El STL exporta No La exportación binaria STL escribe sólo las primeras 3 vertices de cada cara de poligono - los rostros cuad o n-gon son silenciosamente truncados. la exortación ASCII ST L escriben todos los índices vertex, que produce bloques de rostro malformado para los ojos no triángulos. siempre pasa mesas pretrianguladas (el rostre todo triangulo) a la Exportacion STl para evitar pérdida de datos o salida invalida.

Problemas comunes

ProblemasCausasFixado
Excepción de cargaFicheos no compatibles o corruptosVerificar el archivo se abre en un espectador 3D
Materiales perdidos después de la carga OBJ.mtl Archivo no encontradolugar .mtl Al lado de .obj;• Asegurar que los materiales sean activados.
El escalón de la escala tras las importacionesSistemas de diferentes unidadesAplique a Transform Escalera después de carga

FAQ

¿Cómo puedo detectar el formato de un archivo?

FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());

¿Puedo cargar de un flujo?

Sí sí. scene.open() Acepta una InputStream.

¿Qué formatos apoyan tanto las importaciones como las exportaciones?

OBJ, STL y glTF/GLB soportan ambas direcciones. FBX es solo importado; la exportación no se implementa en la versión FOSS.


Sumación de referencia API

Clase / MétodoDescripción
SceneContenedor de escena 3D de alto nivel
scene.open()Cargar un archivo 3D por camino o flujo
scene.save()Exportación de escenarios a archivos o flujo
Scene.fromFile()La fábrica estática para cargar y devolver a Scene
NodeNodo de la hierarquía
node.createChildNode()Crea y adhiere un nodo infantil
MeshPoligono con puntos de control y listas faciales
mesh.createPolygon()Definición de una cara poligonal
Mesh.toMesh()Convertir o clonar la geometría de las mesas
TransformTraducción local, rotación y escala
FileFormatDetector y registro de formatos
 Español