Caratteristiche e funzionalità

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 .glb estensione per compatto di produzione binaria glTF
  • Verifica node.getEntity() != null Prima 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 problemaCause diFatto
eccezione per il caricofile non supportati o corrottiVerificare che il file si apre in un visualizzatore 3D
Materiali scomparsi dopo il carico OBJ.mtl file non trovatiIl posto .mtl Accanto a .obj;• assicurarsi che i materiali siano abilitati
Scala di mismatch dopo l’importazioneSistemi di unità diversiApplicare 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 / MetodoDescrizione
SceneContenitore 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
NodeSceneggiatura di Ierarchia Node
node.createChildNode()Creare e aggiungere un nodo per bambini
MeshPoligono con punti di controllo e elenchi faccia
mesh.createPolygon()Definizione di un poligono faccia
Mesh.toMesh()Conversione o clonazione della geometria del meso
TransformTraduzione locale, rotazione e scala
FileFormatRegistrazione e detector per i formati
 Italiano