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
.glbExtension para la producción binaria compacta glTF - Verificar
node.getEntity() != nullAntes 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
| Problemas | Causas | Fixado |
|---|---|---|
| Excepción de carga | Ficheos no compatibles o corruptos | Verificar el archivo se abre en un espectador 3D |
| Materiales perdidos después de la carga OBJ | .mtl Archivo no encontrado | lugar .mtl Al lado de .obj;• Asegurar que los materiales sean activados. |
| El escalón de la escala tras las importaciones | Sistemas de diferentes unidades | Aplique 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étodo | Descripción |
|---|---|
Scene | Contenedor 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 |
Node | Nodo de la hierarquía |
node.createChildNode() | Crea y adhiere un nodo infantil |
Mesh | Poligono 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 |
Transform | Traducción local, rotación y escala |
FileFormat | Detector y registro de formatos |