Funkcie a vlastnosti
Funkcie a vlastnosti
Táto stránka pokrýva každú hlavnú oblasť funkcií aspose-3d-foss 26.1.0 so funkčnými Java príkladmi.
Načítanie a ukladanie scén
scene.open() načíta súbor; scene.save() exportuje ho:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Alternatíva statickej továrne:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Formátovo špecifické možnosti
Prejsť LoadOptions alebo SaveOptions podtriedy pre detailnú kontrolu:
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);Poznámka: FBX je podporované iba pre import; export FBX nie je implementovaný vo FOSS verzii. Iba binárny FBX súbory sú podporované pre import — ASCII FBX vyvolá ImportException.
Budovanie grafu scény
Vytvorte uzly a pripojte entity:
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);Operácie s Mesh
Vytvorte Mesh programovo s kontrolnými bodmi a polygonmi:
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);Transformácie
Každý Node obsahuje a Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Čítať svetový priestor cez node.getGlobalTransform().getMatrix().
Materiály
Priraďte materiály uzlom:
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);Typy materiálov: Material (základ), PbrMaterial (PBR metallic-roughness).
Tipy a osvedčené postupy
- Použiť
Scene.fromFile()pre jednorazové načítanie, keď nie sú potrebné vlastné možnosti - Vytvárajte siete programovo pomocou
createPolygon()pre vlastnú geometriu - Použiť
.glbrozšírenie pre kompaktný binárny glTF výstup - Skontrolujte
node.getEntity() != nullpred pretypovaním - Export STL ne triangulovať polygonálne plochy automaticky. Binárny export STL zapisuje iba prvé 3 vrcholy každej polygonálnej plochy — štvoruholníkové alebo n-uholníkové plochy sú ticho skrátené. ASCII export STL zapisuje všetky indexy vrcholov, čo vedie k nesprávnym blokom fasiet pre ne‑trojuholníkové plochy. Vždy odovzdajte predtriangulované siete (všetky trojuholníkové plochy) do exportu STL, aby ste predišli strate dát alebo neplatnému výstupu.
Bežné problémy
| Problém | Príčina | Oprava |
|---|---|---|
| Výnimka pri načítaní | Ne podporovaný alebo poškodený súbor | Overte, že súbor sa otvorí v 3D prehliadači |
| Chýbajúce materiály po načítaní OBJ | .mtl súbor nebol nájdený | Umiestniť .mtl vedľa .obj; zabezpečte, aby boli materiály povolené |
| Nesúlad mierky po importe | Rôzne jednotkové systémy | Aplikovať Transform mierku po načítaní |
FAQ
Ako zistím formát súboru?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Môžem načítať zo streamu?
Áno. scene.open() prijíma InputStream.
Ktoré formáty podporujú import aj export?
OBJ, STL a glTF/GLB podporujú oba smery. FBX je len na import; export nie je implementovaný vo verzii FOSS.
Zhrnutie referencie API
| Trieda / Metóda | Popis |
|---|---|
Scene | Kontajner 3D scény najvyššej úrovne |
scene.open() | Načítajte 3D súbor podľa cesty alebo prúdu |
scene.save() | Exportujte scénu do súboru alebo prúdu |
Scene.fromFile() | Statická továreň na načítanie a vrátenie Scene |
Node | Uzel hierarchie scény |
node.createChildNode() | Vytvorte a pripojte podriadený uzol |
Mesh | Polygónová sieť s riadiacimi bodmi a zoznamami tvárí |
mesh.createPolygon() | Definovať polygónovú tvár |
Mesh.toMesh() | Previesť alebo klonovať geometriu siete |
Transform | Lokálny posun, rotácia a mierka |
FileFormat | Register a detektor formátov |