Caracteristici și funcții
Caracteristici și funcții
Această pagină acoperă fiecare zonă majoră de caracteristici ale Aspose 3D-Foss 26.0 pentru a face față Exemple de Java.
Încărcarea și salvare a scenelor
scene.open() încărcă un fișier; scene.save() Exportul este:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Alternativa pentru fabrica statică:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Opțiuni specifice pentru format
Pasul LoadOptions sau SaveOptions Subclasele pentru controlul fin-gran:
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);Notă : FBX este susținută numai pentru import; Exportul FB X nu se implementă în versiunea FOSS. Binare Fbx fișierele sunt susținute pentru import — ASCII FBX aruncă
ImportException.
Crearea unui grafic de scenă
Creați noduri și adăugați entități:
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);Operațiuni de masă
Creați un Mesh Programat cu puncte de control și 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);Transformarea
Fiecare Node Împreună cu a Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Citește spațiul prin node.getGlobalTransform().getMatrix().
Materiale
Afișează materialele la noduri:
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);Tipuri de materiale: Material în baza de bază, PbrMaterial (PBR metalic-răbdare în formă de.
Sfaturi și cele mai bune practici
- Utilizarea
Scene.fromFile()pentru încărcături unilaterale atunci când opțiunile personalizate nu sunt necesare - Construiți mesele programat cu
createPolygon()pentru geometrie personalizată - Utilizarea
.glbextindere pentru producția compactă binară glTF - Verificare
node.getEntity() != nullÎnainte de casting - Exportul de la STL Nu Exportul binar STL scrie doar primele 3 verticale ale fiecărui poligon - fața quad sau n-gon sunt tăcută. ASCII STl exportul scrie toate indicele de vertice, care produce blocuri de față defectuoase pentru fațele non-triangle. Întotdeauna trece mesele pre-tringulare (fațe triangles) la export ST L pentru a evita pierderea datelor sau rezultatul invalid.
Probleme comune
| problemă | Cauza | Fixare |
|---|---|---|
| Excepţie la încărcătură | Fișierele necunoscute sau corupte | Verificați fișierul se deschide într-un vizualizator 3D |
| Materialele dispărute după încărcarea OBJ | .mtl Dosarul nu a fost găsit | Locul .mtl În apropiere de .obj;• asigurarea faptului că materialele sunt activate; |
| Scala de necorespunere după import | Sisteme diferite de unitate | Aplicați A Transform Scala după încărcare |
FAQ
Cum pot detecta un format de fișier?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Pot să încărc din un flux?
Da şi da. scene.open() Acceptaţi un InputStream.
Ce formate susțin atât importurile, cât și exporturile?
OBJ, STL și glTF/GLB susțin ambele direcții. FBX este importat numai; exportul nu se implementă în versiunea FOSS.
Suma de referință API
| Classe / Metoda | Descriere |
|---|---|
Scene | Containere de scenă 3D de nivel superior |
scene.open() | Încărcați un fișier 3D prin traseu sau flux |
scene.save() | Exportarea scene la fișier sau flux |
Scene.fromFile() | Fabrica statică pentru încărcare și returnare a Scene |
Node | Nodei de ierarhie |
node.createChildNode() | Creați și adăugați un nod de copil |
Mesh | Poligon cu puncte de control și liste de față |
mesh.createPolygon() | Definiți un chip poligon |
Mesh.toMesh() | Geometria de convertire sau clonare a mesului |
Transform | Traducere locală, rotație și scară |
FileFormat | Registrul și detectorul pentru formate |