Funkcionalnosti i mogućnosti

Funkcionalnosti i mogućnosti

Funkcionalnosti i mogućnosti

Ova stranica pokriva svaku glavnu oblast funkcionalnosti aspose-3d-foss 26.1.0 sa radnim Java primerima.


Učitavanje i čuvanje scena

scene.open() učitava fajl; scene.save() izvozi ga:

import com.aspose.threed.Scene;

Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");

Alternativa statičkoj fabrici:

Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");

Opcije specifične za format

Pass LoadOptions ili SaveOptions podklase za finu 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);

Napomena: FBX je podržan samo za uvoz; izvoz FBX‑a nije implementiran u FOSS verziji. Samo binarni FBX datoteke su podržane za uvoz — ASCII FBX baci ImportException.


Izgradnja Scene Graph-a

Kreirajte čvorove i prikačite entitete:

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 operacije

Kreirajte Mesh programski sa kontrolnim tačkama i poligonima:

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);

Transformacije

Svaki Node sadrži Transform:

Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);

Čitaj world-space putem node.getGlobalTransform().getMatrix().


Materijali

Dodelite materijale čvorovima:

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);

Tipovi materijala: Material (osnovni), PbrMaterial (PBR metalik-škrabljivost).


Saveti i najbolje prakse

  • Koristi Scene.fromFile() za jednolinijska učitavanja kada prilagođene opcije nisu potrebne
  • Kreiraj meshes programatski pomoću createPolygon() za prilagođenu geometriju
  • Koristite .glb ekstenzija za kompaktan binarni glTF izlaz
  • Proverite node.getEntity() != null pre kastovanja
  • STL izvoz radi ne automatski trianguliše poligonalne površine. Binarni STL izvoz zapisuje samo prva 3 vrha svake poligonalne površine — kvadratne ili n‑gonalne površine se tiho skraćuju. ASCII STL izvoz zapisuje sve indekse vrhova, što dovodi do neispravnih blokova faseta za ne‑trokutaste površine. Uvek prosleđujte prethodno triangulisane mreže (sve površine su trouglovi) STL izvozu kako biste izbegli gubitak podataka ili neispravan izlaz.

Uobičajeni problemi

ProblemUzrokIspravka
Izuzetak pri učitavanjuNepodržan ili oštećen fajlProverite da li se fajl otvara u 3D pregledaču
Nedostaju materijali nakon učitavanja OBJ.mtl fajl nije pronađenMesto .mtl pored .obj; osigurajte da su materijali omogućeni
Neusklađenost skale nakon uvozaRazličiti sistemi jedinicaPrimeni Transform skalu nakon učitavanja

FAQ

Kako da detektujem format fajla?

FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());

Mogu li učitati iz toka?

Da. scene.open() prihvata InputStream.

Koji formati podržavaju i uvoz i izvoz?

OBJ, STL i glTF/GLB podržavaju oba pravca. FBX je samo za uvoz; izvoz nije implementiran u FOSS verziji.


Sažetak API reference

Klasa / MetodOpis
SceneKontejner 3D scene najvišeg nivoa
scene.open()Učitaj 3D fajl putem putanje ili toka
scene.save()Izvezi scenu u fajl ili tok
Scene.fromFile()Statička fabrika za učitavanje i vraćanje Scene
NodeČvor hijerarhije scene
node.createChildNode()Kreiraj i prikači čvor deteta
MeshPoligonalna mreža sa kontrolnim tačkama i listama faceta
mesh.createPolygon()Definišite poligonalno lice
Mesh.toMesh()Konvertujte ili klonirajte geometriju mreže
TransformLokalni pomeraj, rotacija i skaliranje
FileFormatRegistar i detektor za formate
 Српски