Značajke i funkcionalnosti

Značajke i funkcionalnosti

Značajke i funkcionalnosti

Ova stranica pokriva svako glavno područje značajki aspose-3d-foss 26.1.0 sa radnim Java primjerima.


Učitavanje i spremanje scena

scene.open() učitava datoteku; scene.save() izvozi je:

import com.aspose.threed.Scene;

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

Alternativa statičke tvornice:

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

Opcije specifične za format

Proslijedi 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 uzrokuje ImportException.


Izgradnja grafova scene

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

Operacije s Mesh-om

Stvori Mesh programski s kontrolnim toč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 a Transform:

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

Čitaj svjetski prostor putem node.getGlobalTransform().getMatrix().


Materijali

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

Vrste materijala: Material (osnovni), PbrMaterial (PBR metallic-roughness).


Savjeti i najbolje prakse

  • Upotrijebite Scene.fromFile() za učitavanja jednim redom kada prilagođene opcije nisu potrebne
  • Izgradite mreže programatski pomoću createPolygon() za prilagođenu geometriju
  • Upotrijebite .glb ekstenziju za kompaktan binarni glTF izlaz
  • Provjerite node.getEntity() != null prije pretvaranja
  • STL izvoz ne automatski triangulirati poligonalne površine. Binarni STL izvoz zapisuje samo prva 3 vrha svake poligonalne površine — kvadrati ili n‑gon površine tiho se skraćuju. ASCII STL izvoz zapisuje sve indekse vrhova, što proizlazi u oštećene blokove faceta za ne‑trokutne površine. Uvijek proslijedite prethodno triangulirane mreže (sve površine trokutne) STL izvozu kako biste izbjegli gubitak podataka ili neispravan izlaz.

Uobičajeni problemi

ProblemUzrokPopravak
Izuzetak pri učitavanjuNije podržana ili oštećena datotekaProvjerite otvara li se datoteka u 3D pregledniku
Nedostaju materijali nakon učitavanja OBJ.mtl datoteka nije pronađenaPostavi .mtl pored .obj; osigurajte da su materijali omogućeni
Neusklađenost skale nakon uvozaRazličiti sustavi jedinicaPrimijeni Transform skalu nakon učitavanja

FAQ

Kako otkriti format datoteke?

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

Mogu li učitati iz toka?

Da. scene.open() prihvaća InputStream.

Koji formati podržavaju i uvoz i izvoz?

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


Sažetak API reference

Klasa / MetodaOpis
SceneKontejner 3D scene najviše razine
scene.open()Učitaj 3D datoteku putem putanje ili toka
scene.save()Izvezi scenu u datoteku ili tok
Scene.fromFile()Statička tvornica za učitavanje i vraćanje Scene
NodeČvor hijerarhije scene
node.createChildNode()Stvori i prikači čvor djeteta
MeshPoligonalna mreža s kontrolnim točkama i popisima lica
mesh.createPolygon()Definirajte poligonsko lice
Mesh.toMesh()Pretvorite ili klonirajte geometriju mreže
TransformLokalni pomak, rotacija i skaliranje
FileFormatRegistar i detektor za formate
 Hrvatski