Funktioner och funktioner

Funktioner och funktioner

Funktioner och funktioner

Denna sida täcker varje viktig funktionell område av aspose-3d-foss 26.0 och förpackning med Java exempel.


Ladda och spara scener

scene.open() Ladda upp en fil; scene.save() Exporterar det:

import com.aspose.threed.Scene;

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

Statisk fabrik alternativ:

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

Format-specifika alternativ

Passar pass LoadOptions eller SaveOptions Subklasser för fingränskontroll:

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

Notera på: FBX stöds endast för import; FBx export implementeras inte i FOSS-versionen. Binära FBX filer stöds för import — ASCII FBX kastar ImportException.


Att bygga en scen graf

Skapa noder och anslut enheter:

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

Skapa en a Mesh Programmatiskt med kontrollpunkter och 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);

Transformation

Varje Node bär A Transform:

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

Läs om världsutrymme via node.getGlobalTransform().getMatrix().


material

Tilldelar material till noder:

import com.aspose.threed.*;

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

Materialstyper : Material och basen, PbrMaterial (PBR metallisk hårdhet).


Tips och bästa praxis

  • Användning Scene.fromFile() för enlinerladdningar när anpassade alternativ inte behövs
  • Bygg mässlor programmatiskt med createPolygon() för en anpassad geometri
  • Användning .glb förlängning för kompakt binär glTF-utgång
  • Kontrollera node.getEntity() != null Innan casting
  • STL Exporten gör inte binär STL-exporten skriver endast de första 3 vertikalerna i varje polygon ansikte - quad eller n-gon ansikten är tyst trunkade. ASCII STl-eksporten skriver alla vertexindikatorer, vilket producerar malformerade facetblock för icke triangle ansikter. Alltid passera pre-triangulated meshes (all-trangles ansikt) till ST L export för att undvika dataförlust eller invalid output.

Vanliga frågor

ProblemetorsakerFixar
Undantag för lastOsupporterade eller korrupta filerKontrollera att filen öppnas i en 3D-vynare
Saknas material efter OBJ-laddning.mtl Filen inte hittadplatsen .mtl Nära till .obj;• Att materialet är aktiverat
Skala missmatch efter importOlika enhetssystemApplicera A Transform Skala efter laddning

FAQ

Hur kan jag upptäcka ett filformat?

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

Kan jag ladda från en ström?

Ja ja . scene.open() accepterar en InputStream.

Vilka format stödjer både import och export?

OBJ, STL och glTF/GLB stöds i båda riktningarna. FBX är endast import-exporten inte implementeras i FOSS versionen.


API Referens sammanfattning

Klass / MetodBeskrivning
SceneToppnivå 3D scen container
scene.open()Ladda upp en 3D-fil per väg eller ström
scene.save()Export scenen till fil eller ström
Scene.fromFile()Statisk fabrik för laddning och retur a Scene
NodeScenär hierarkiska noder
node.createChildNode()Skapa och fästa en barns nod
MeshPolygonmässa med kontrollpunkter och ansiktslistor
mesh.createPolygon()Definiera ett polygon ansikte
Mesh.toMesh()Konverterar eller klonerar mesh geometri
TransformLokalt översättnings-, rotation- och skala
FileFormatRegistret och detektorn för format
 Svenska