Caratteristiche e funzionalità
Caratteristiche e funzionalità
Questa pagina copre ogni area di funzionalità principale del Il nuovo aspose-3d-foss 26.1.0 Esempi di Java.
Caricamento e risparmio di scene
scene.open() carica un file; scene.save() Lo esporta:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Alternativa di fabbrica statica:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Opzioni specifiche di formato
Passaggio LoadOptions o SaveOptions I subclasse per il controllo finito:
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 di: FBX è supportato solo per l’importazione; l’esportazioni di FB X non sono implementate nella versione FOSS. Il binario FBX I file sono supportati per l’importazione — ASCII FBX lancia
ImportException.
Costruire un grafico di scena
Creare nodi e allegare entità:
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);Operazioni di Mesh
Crea una Mesh Programmaticamente con punti di controllo e poligoni:
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);Trasformazione
Ogni Node porta a Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Leggi tutto il mondo attraverso node.getGlobalTransform().getMatrix().
Materiali
Assegna i materiali ai nodi:
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);Tipi di materiale: Material di base, PbrMaterial (PBR di rigidità metallica).
Tipi e migliori pratiche
- Utilizzo
Scene.fromFile()per le caricature uniline quando non sono necessarie opzioni personalizzate - Costruire i pannelli in modo programmatico con
createPolygon()per la geometria personalizzata - Utilizzo
.glbestensione per compatto di produzione binaria glTF - Verifica
node.getEntity() != nullPrima di casting - L’esportazione di STL Non è Triangolare poligono faccia automaticamente. Binario STL esporta scrive solo le prime 3 verticali di ogni poligon facce - quad o n-gon facci sono silenziosamente truncati. ASCII STl esport scriva tutti gli indici vertici, che produce blocchi facciale malformato per non triangoli faccetti. Sempre passare messi pre-triangolate (tutte i facchi triungoli) all’esportazione ST L evitare la perdita di dati o inadeguata produzione.
Questioni comuni
| Il problema | Cause di | Fatto |
|---|---|---|
| eccezione per il carico | file non supportati o corrotti | Verificare che il file si apre in un visualizzatore 3D |
| Materiali scomparsi dopo il carico OBJ | .mtl file non trovati | Il posto .mtl Accanto a .obj;• assicurarsi che i materiali siano abilitati |
| Scala di mismatch dopo l’importazione | Sistemi di unità diversi | Applicare a Transform Scala dopo il carico |
FAQ
Come posso rilevare il formato di un file?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Posso caricare da un flusso?
Sì sì. scene.open() Accetta un InputStream.
Quali formati supportano entrambi l’importazione e l’esportazioni?
OBJ, STL e glTF/GLB supportano entrambe le direzioni. FBX è importato solo; l’esportazione non viene implementata nella versione FOSS.
Il riassunto di riferimento API
| Classificazione / Metodo | Descrizione |
|---|---|
Scene | Contenitore di scena 3D di alto livello |
scene.open() | Caricare un file 3D per percorso o flusso |
scene.save() | Scena di esportazione per file o stream |
Scene.fromFile() | fabbrica statica per caricare e restituire a Scene |
Node | Sceneggiatura di Ierarchia Node |
node.createChildNode() | Creare e aggiungere un nodo per bambini |
Mesh | Poligono con punti di controllo e elenchi faccia |
mesh.createPolygon() | Definizione di un poligono faccia |
Mesh.toMesh() | Conversione o clonazione della geometria del meso |
Transform | Traduzione locale, rotazione e scala |
FileFormat | Registrazione e detector per i formati |