Jellemzők és funkciók

Jellemzők és funkciók

Ez az oldal lefedi a(z) aspose-3d-foss 26.1.0 működő Java példákkal.


Jelenetek betöltése és mentése

scene.open() betölt egy fájlt; scene.save() exportálja azt:

import com.aspose.threed.Scene;

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

Statikus gyári alternatíva:

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

Formátum-specifikus beállítások

Pass LoadOptions vagy SaveOptions alosztályok a finomhangolt vezérléshez:

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

Megjegyzés: Az FBX csak importáláshoz támogatott; az FBX exportálás nincs megvalósítva a FOSS verzióban. Csak bináris FBX a fájlok támogatottak az importáláshoz — az ASCII FBX hibát dob ImportException.


Jelenetgráf felépítése

Hozz létre csomópontokat és csatolj entitásokat:

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 műveletek

Hozzon létre egy Mesh programozott módon vezérlőpontokkal és poligonokkal:

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

Transzformációk

Minden Node hordoz egy Transform:

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

Olvasd a világ-térbeli adatot a node.getGlobalTransform().getMatrix().


Anyagok

Anyagok hozzárendelése a csomópontokhoz:

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

Anyagtípusok: Material (alap), PbrMaterial (PBR metallic-roughness).


Tippek és bevált gyakorlatok

  • Használja Scene.fromFile() egysoros betöltésekhez, ha egyedi beállításokra nincs szükség
  • Hálókat építsen programozottan a createPolygon() egyedi geometria esetén
  • Használja .glb kiterjesztés a kompakt bináris glTF kimenethez
  • Ellenőrizze node.getEntity() != null konvertálás előtt
  • Az STL export nem automatikusan háromszögezi a poligon felületeket. A bináris STL export csak az egyes poligon felületek első 3 csúcsát írja ki — a négyszög vagy n‑gon felületek csendben levágásra kerülnek. Az ASCII STL export minden csúcsindexet kiír, ami hibás facet blokkokat eredményez nem háromszög felületeknél. Mindig adjon át előre háromszögezett hálókat (csak háromszög felületekkel) az STL exportnak, hogy elkerülje az adatvesztést vagy az érvénytelen kimenetet.

Gyakori problémák

ProblémaOkJavítás
Kivétel betöltéskorNem támogatott vagy sérült fájlEllenőrizze, hogy a fájl megnyílik egy 3D megjelenítőben
Hiányzó anyagok OBJ betöltése után.mtl fájl nem találhatóElhelyezés .mtl mellett .obj; győződjön meg róla, hogy a anyagok engedélyezve vannak
Méretezési eltérés importálás utánEltérő mértékegységrendszerekAlkalmazzon egy Transform méretarányt a betöltés után

FAQ

Hogyan tudom meghatározni egy fájl formátumát?

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

Betölthetek adatfolyamból?

Igen. scene.open() elfogad egy InputStream.

Mely formátumok támogatják mind az importot, mind az exportot?

Az OBJ, STL és glTF/GLB mindkét irányban támogatott. Az FBX csak importálásra alkalmas; az exportálás nincs megvalósítva a FOSS verzióban.


API-referencia összefoglaló

Osztály / MetódusLeírás
SceneLegfelső szintű 3D jelenetkonténer
scene.open()3D fájl betöltése útvonal vagy adatfolyam alapján
scene.save()Jelenet exportálása fájlba vagy adatfolyamba
Scene.fromFile()Statikus gyár a betöltéshez és egy visszaadáshoz Scene
NodeJelenet hierarchia csomópont
node.createChildNode()Gyermek csomópont létrehozása és csatolása
MeshPoligon háló kontrollpontokkal és felületlistákkal
mesh.createPolygon()Poligon felület definiálása
Mesh.toMesh()Háló geometria konvertálása vagy klónozása
TransformHelyi eltolás, forgatás és méretezés
FileFormatRegiszter és detektor a formátumokhoz
 Magyar