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
.glbförlängning för kompakt binär glTF-utgång - Kontrollera
node.getEntity() != nullInnan 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
| Problemet | orsaker | Fixar |
|---|---|---|
| Undantag för last | Osupporterade eller korrupta filer | Kontrollera att filen öppnas i en 3D-vynare |
| Saknas material efter OBJ-laddning | .mtl Filen inte hittad | platsen .mtl Nära till .obj;• Att materialet är aktiverat |
| Skala missmatch efter import | Olika enhetssystem | Applicera 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 / Metod | Beskrivning |
|---|---|
Scene | Toppnivå 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 |
Node | Scenär hierarkiska noder |
node.createChildNode() | Skapa och fästa en barns nod |
Mesh | Polygonmässa med kontrollpunkter och ansiktslistor |
mesh.createPolygon() | Definiera ett polygon ansikte |
Mesh.toMesh() | Konverterar eller klonerar mesh geometri |
Transform | Lokalt översättnings-, rotation- och skala |
FileFormat | Registret och detektorn för format |