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ť .glb rozšírenie pre kompaktný binárny glTF výstup
  • Skontrolujte node.getEntity() != null pred 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émPríčinaOprava
Výnimka pri načítaníNe podporovaný alebo poškodený súborOverte, ž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 importeRôzne jednotkové systémyAplikovať 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ódaPopis
SceneKontajner 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
NodeUzel hierarchie scény
node.createChildNode()Vytvorte a pripojte podriadený uzol
MeshPolygónová sieť s riadiacimi bodmi a zoznamami tvárí
mesh.createPolygon()Definovať polygónovú tvár
Mesh.toMesh()Previesť alebo klonovať geometriu siete
TransformLokálny posun, rotácia a mierka
FileFormatRegister a detektor formátov
 Slovenčina