Funktioner og funktionaliteter

Funktioner og funktionaliteter

Funktioner og funktionaliteter

Denne side dækker alle de vigtigste funktionsområder for aspose-3d-foss 26.1.0 med fungerende Java eksempler.


Indlæsning og gemning af scener

scene.open() indlæser en fil; scene.save() eksporterer den:

import com.aspose.threed.Scene;

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

Statisk fabriksalternativ:

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

Format‑specifikke indstillinger

Pass LoadOptions eller SaveOptions subklasser for finjusteret kontrol:

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

Bemærk: FBX understøttes kun for import; FBX-eksport er ikke implementeret i FOSS‑versionen. Kun binær FBX filer understøttes for import — ASCII FBX giver en fejl ImportException.


Opbygning af en scenegraf

Opret noder og tilknyt enheder:

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‑operationer

Opret en Mesh programmatisk med kontrolpunkter og polygoner:

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

Transformationer

Hver Node bærer en Transform:

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

Læs world-space via node.getGlobalTransform().getMatrix().


Materialer

Tildel materialer til noder:

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

Materialetyper: Material (base), PbrMaterial (PBR metallic-roughness).


Tips og bedste praksis

  • Brug Scene.fromFile() til én-liners indlæsning når brugerdefinerede indstillinger ikke er nødvendige
  • Byg mesh’er programmatisk med createPolygon() til brugerdefineret geometri
  • Brug .glb udvidelse til kompakt binær glTF-uddata
  • Tjek node.getEntity() != null før du caster
  • STL-eksport gør ikke triangulere polygonflader automatisk. Binær STL-eksport skriver kun de første 3 vertexer for hver polygonflade — firkant- eller n-gon-flader bliver tavst afkortet. ASCII STL-eksport skriver alle vertex-indekser, hvilket producerer fejlbehæftede facetblokke for ikke-trekantede flader. Overfør altid forud-triangulerede mesh’er (alle trekantede flader) til STL-eksport for at undgå datatab eller ugyldig output.

Almindelige problemer

ProblemÅrsagLøsning
Undtagelse ved indlæsningIkke-understøttet eller beskadiget filBekræft, at filen åbnes i en 3D‑viewer
Manglende materialer efter OBJ-indlæsning.mtl fil ikke fundetPlacér .mtl ved siden af .obj; sørg for at materialer er aktiveret
Skala uoverensstemmelse efter importForskellige enhedssystemerAnvend en Transform skala efter indlæsning

FAQ

Hvordan kan jeg opdage en fils format?

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

Kan jeg indlæse fra en stream?

Ja. scene.open() accepterer en InputStream.

Hvilke formater understøtter både import og eksport?

OBJ, STL og glTF/GLB understøtter begge retninger. FBX er kun import; eksport er ikke implementeret i FOSS‑versionen.


API-referencens oversigt

Klasse / MetodeBeskrivelse
SceneTop‑niveau 3D scenecontainer
scene.open()Indlæs en 3D‑fil via sti eller stream
scene.save()Eksporter scene til fil eller stream
Scene.fromFile()Statisk fabrik til at indlæse og returnere en Scene
NodeScene‑hierarki‑node
node.createChildNode()Opret og vedhæft en undernode
MeshPolygonmesh med kontrolpunkter og fladelister
mesh.createPolygon()Definér en polygonflade
Mesh.toMesh()Konvertér eller dupliker mesh-geometri
TransformLokal translation, rotation og skalering
FileFormatRegister og detektor for formater
 Dansk