Funkcijas un iespējas
Funkcijas un iespējas
Šī lapa aptver katru galveno funkciju jomu no aspose-3d-foss 26.1.0 ar strādājošiem Java piemēriem.
Scēnu ielāde un saglabāšana
scene.open() ielādē failu; scene.save() eksportē to:
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Statiskā ražotnes alternatīva:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Formāta specifiskās opcijas
Iziet LoadOptions vai SaveOptions apakšklases smalkas kontroles nodrošināšanai:
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);Piezīme: FBX tiek atbalstīts tikai importam; FBX eksportēšana nav īstenota FOSS versijā. Tikai binārais FBX faili tiek atbalstīti importam — ASCII FBX izraisa ImportException.
Scēnas grafa izveide
Izveidojiet mezglus un pievienojiet elementus:
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 operācijas
Izveidot a Mesh programmatiski ar kontroles punktiem un daudzstūriem:
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ācijas
Katrs Node nesa a Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Nolasīt pasaules telpu caur node.getGlobalTransform().getMatrix().
Materiāli
Piešķiriet materiālus mezgliem:
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);Materiālu veidi: Material (bāze), PbrMaterial (PBR metallic-roughness).
Padomi un labākā prakse
- Izmantot
Scene.fromFile()vienas rindas ielādei, ja nav nepieciešamas pielāgotas opcijas - Izveidojiet režģus programmatiski ar
createPolygon()pielāgotai ģeometrijai - Izmantojiet
.glbpaplašinājumu kompaktai binārai glTF izvadei - Pārbaudiet
node.getEntity() != nullpirms liešanas - STL eksports veic ne automātiski trīsstūruveidot daudzstūru sejas. Binārais STL eksports ieraksta tikai pirmās 3 virsotnes katras daudzstūra sejā — kvadrāta vai n‑stūra sejas tiek klusi apgrieztas. ASCII STL eksports ieraksta visus virsotņu indeksus, kas rada nepareizus fasetu blokus ne‑trīsstūru sejām. Vienmēr nododiet iepriekš trīsstūruveidotas tīklu (visas trīsstūru sejas) STL eksportam, lai izvairītos no datu zuduma vai nederīgas izvades.
Biežāk sastopamās problēmas
| Problēma | Iemesls | Labojums |
|---|---|---|
| Izņēmums ielādēšanas laikā | Neatbalstīts vai bojāts fails | Pārbaudiet, vai fails atveras 3D skatītājā |
| Trūkst materiālu pēc OBJ ielādes | .mtl fails nav atrasts | Vieta .mtl blakus .obj; pārliecinieties, ka materiāli ir aktivizēti |
| Mēroga neatbilstība pēc importēšanas | Dažādas mērvienību sistēmas | Pielietot Transform mērogs pēc ielādes |
FAQ
Kā noteikt faila formātu?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Vai varu ielādēt no straumes?
Jā. scene.open() pieņem InputStream.
Kuri formāti atbalsta gan importu, gan eksportu?
OBJ, STL, un glTF/GLB atbalsta abus virzienus. FBX ir tikai importēšanai; eksportēšana nav īstenota FOSS versijā.
API Atsauces Kopsavilkums
| Klase / Metode | Apraksts |
|---|---|
Scene | Augstākā līmeņa 3D skatuves konteineris |
scene.open() | Ielādēt 3D failu pēc ceļa vai straumes |
scene.save() | Eksportēt skatuvi uz failu vai straumi |
Scene.fromFile() | Statiskā rūpnīca, lai ielādētu un atgrieztu Scene |
Node | Ainas hierarhijas mezgls |
node.createChildNode() | Izveidot un pievienot bērna mezglu |
Mesh | Poligonu režģis ar kontroles punktiem un seju sarakstiem |
mesh.createPolygon() | Definēt poligona seju |
Mesh.toMesh() | Pārveidot vai klonēt režģa ģeometriju |
Transform | Lokāls pārvietojums, rotācija un mērogs |
FileFormat | Reģistrs un detektors formātiem |