Caracteristici și funcții

Caracteristici și funcții

Caracteristici și funcții

Această pagină acoperă fiecare zonă majoră de caracteristici ale Aspose 3D-Foss 26.0 pentru a face față Exemple de Java.


Încărcarea și salvare a scenelor

scene.open() încărcă un fișier; scene.save() Exportul este:

import com.aspose.threed.Scene;

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

Alternativa pentru fabrica statică:

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

Opțiuni specifice pentru format

Pasul LoadOptions sau SaveOptions Subclasele pentru controlul fin-gran:

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

Notă : FBX este susținută numai pentru import; Exportul FB X nu se implementă în versiunea FOSS. Binare Fbx fișierele sunt susținute pentru import — ASCII FBX aruncă ImportException.


Crearea unui grafic de scenă

Creați noduri și adăugați entități:

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

Operațiuni de masă

Creați un Mesh Programat cu puncte de control și poligoni:

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

Transformarea

Fiecare Node Împreună cu a Transform:

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

Citește spațiul prin node.getGlobalTransform().getMatrix().


Materiale

Afișează materialele la noduri:

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

Tipuri de materiale: Material în baza de bază, PbrMaterial (PBR metalic-răbdare în formă de.


Sfaturi și cele mai bune practici

  • Utilizarea Scene.fromFile() pentru încărcături unilaterale atunci când opțiunile personalizate nu sunt necesare
  • Construiți mesele programat cu createPolygon() pentru geometrie personalizată
  • Utilizarea .glb extindere pentru producția compactă binară glTF
  • Verificare node.getEntity() != null Înainte de casting
  • Exportul de la STL Nu Exportul binar STL scrie doar primele 3 verticale ale fiecărui poligon - fața quad sau n-gon sunt tăcută. ASCII STl exportul scrie toate indicele de vertice, care produce blocuri de față defectuoase pentru fațele non-triangle. Întotdeauna trece mesele pre-tringulare (fațe triangles) la export ST L pentru a evita pierderea datelor sau rezultatul invalid.

Probleme comune

problemăCauzaFixare
Excepţie la încărcăturăFișierele necunoscute sau corupteVerificați fișierul se deschide într-un vizualizator 3D
Materialele dispărute după încărcarea OBJ.mtl Dosarul nu a fost găsitLocul .mtl În apropiere de .obj;• asigurarea faptului că materialele sunt activate;
Scala de necorespunere după importSisteme diferite de unitateAplicați A Transform Scala după încărcare

FAQ

Cum pot detecta un format de fișier?

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

Pot să încărc din un flux?

Da şi da. scene.open() Acceptaţi un InputStream.

Ce formate susțin atât importurile, cât și exporturile?

OBJ, STL și glTF/GLB susțin ambele direcții. FBX este importat numai; exportul nu se implementă în versiunea FOSS.


Suma de referință API

Classe / MetodaDescriere
SceneContainere de scenă 3D de nivel superior
scene.open()Încărcați un fișier 3D prin traseu sau flux
scene.save()Exportarea scene la fișier sau flux
Scene.fromFile()Fabrica statică pentru încărcare și returnare a Scene
NodeNodei de ierarhie
node.createChildNode()Creați și adăugați un nod de copil
MeshPoligon cu puncte de control și liste de față
mesh.createPolygon()Definiți un chip poligon
Mesh.toMesh()Geometria de convertire sau clonare a mesului
TransformTraducere locală, rotație și scară
FileFormatRegistrul și detectorul pentru formate
 Română