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 .glb paplašinājumu kompaktai binārai glTF izvadei
  • Pārbaudiet node.getEntity() != null pirms 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ēmaIemeslsLabojums
Izņēmums ielādēšanas laikāNeatbalstīts vai bojāts failsPārbaudiet, vai fails atveras 3D skatītājā
Trūkst materiālu pēc OBJ ielādes.mtl fails nav atrastsVieta .mtl blakus .obj; pārliecinieties, ka materiāli ir aktivizēti
Mēroga neatbilstība pēc importēšanasDažādas mērvienību sistēmasPielietot 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 / MetodeApraksts
SceneAugstā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
NodeAinas hierarhijas mezgls
node.createChildNode()Izveidot un pievienot bērna mezglu
MeshPoligonu režģis ar kontroles punktiem un seju sarakstiem
mesh.createPolygon()Definēt poligona seju
Mesh.toMesh()Pārveidot vai klonēt režģa ģeometriju
TransformLokāls pārvietojums, rotācija un mērogs
FileFormatReģistrs un detektors formātiem
 Latviešu