Eigenschaften und Funktionen
Eigenschaften und Funktionen
Diese Seite deckt jede Hauptfläche der Aspose 3D-Foss 26.1 mit Java Beispielen.
Laden und speichern Scen
scene.open() eine Datei herunterladen; scene.save() Es wird exportiert:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Statische Fabrikalternativen:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Format-spezifische Optionen
Pass LoadOptions oder SaveOptions Unterklassen für die Fine-Grened Control:
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);Hinweis : FBX wird nur für den Import unterstützt; FBx Export wird nicht in der FOSS-Version implementiert. Binar FBX Dateien werden für den Import unterstützt — ASCII FBX throws
ImportException.
Ein Scene Graph zu bauen
Node erstellen und entwerfen:
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 Operationen
Erstellen Sie A Mesh Programmiert mit Kontrollpunkten und Polygonen:
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);Transformationen
Jeder Node Tritt A Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Weltraum durchlesen node.getGlobalTransform().getMatrix().
Materialien
Material an Knoten zu zugeordnen:
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);Materialien der Art: Material und die Basis, PbrMaterial (PBR Metallische Schwerheit).
Tipps und beste Praktiken
- Gebrauch
Scene.fromFile()für einlinäre Ladungen, wenn angepasene Optionen nicht benötigt werden - Die Plätze programmatisch mit
createPolygon()für die geometrische Anpassung - Gebrauch
.glbErweiterung für die kompakte binäre GlTF-Ausgabe - Check überprüfen
node.getEntity() != nullVor dem Casting - STL Export wird nicht Triangulate-Polygon-Fans automatisch. Binary STL Export schreibt nur die ersten 3 Vertikale jedes Polygon-Gesicht - Quad oder n-gon Gesicht sind still geschmückt. ASCII STl Exports schreibe alle vertikalen Indizes, die verschwundenen Facet Blöcke für nicht-triangular Gehen produzieren. Allmal überträgt vor-Triangulat Messen (all-trigular-Genst) zu ST L Exporte, um Datenverlust oder unerlässliche Ausgabe zu vermeiden.
Gemeinsame Probleme
| Thema | Ursache | Fixiert |
|---|---|---|
| Ausnahme bei Last | Ununterstützte oder korrupte Dateien | Überprüfen Sie, ob die Datei in einem 3D-Viewer geöffnet wird |
| Fehlende Materialien nach OBJ-Ladung | .mtl Datei nicht gefunden | Platz .mtl Neben dem .obj;• Um sicherzustellen, dass die Materialien aktiviert werden |
| Schwerpunkt nach Import | Verschiedene Einheitssysteme | Anwendung A Transform Schnitt nach dem Laden |
FAQ
Wie kann ich ein Dateiformat erkennen?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Kann ich von einem Stream laden?
Ja ja. scene.open() Akzeptiert eine InputStream.
Welche Formate unterstützen sowohl Import und Export?
OBJ, STL und glTF/GLB unterstützen beide Richtungen. FBX wird nur importiert; Export wird nicht in der FOSS-Version implementiert.
API Referenzabschnitt
| Klasse / Methode | Beschreibung |
|---|---|
Scene | Top-Level 3D Scene Container |
scene.open() | Laden Sie eine 3D-Datei nach Path oder Stream herunter |
scene.save() | Export-Szenen zu Datei oder Stream |
Scene.fromFile() | Statische Fabrik zu laden und zurückzuführen a Scene |
Node | Die hierarchische Node |
node.createChildNode() | Erstellen und Anschließen eines Kindes Node |
Mesh | Polygon-Mesch mit Kontrollpunkten und Gesichtslisten |
mesh.createPolygon() | Ein Polygon-Gesicht zu definieren |
Mesh.toMesh() | Konvertierung oder Klonung von Mesh Geometrie |
Transform | Lokale Übersetzung, Rotation und Skala |
FileFormat | Registry und Detektor für Formate |