Caractéristiques et fonctionnalités

Caractéristiques et fonctionnalités

Caractéristiques et fonctionnalités

Cette page couvre chaque zone principale de la Avis 3D-Foss 26.0 Exemples de Java.


Télécharger et économiser des scènes

scene.open() Il remplit un fichier ; scene.save() Il l’exporte :

import com.aspose.threed.Scene;

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

Alternatives de la fabrication :

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

Options spécifiques de format

Passage LoadOptions ou SaveOptions Les sous-classes pour le contrôle de graines fines :

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

Note : FBX est soutenu uniquement pour l’importation; Exportation FB X n’est pas mis en œuvre dans la version FOSS. Bilan de fbx Les fichiers sont soutenus pour l’importation — ASCII FBX jette ImportException.


Créer un scène graphique

Créer des nœuds et joindre les entités :

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 opérations

Créer un Mesh Programmé avec les points de contrôle et les polygons :

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

Transformations

Chaque Node Porter A Transform:

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

Lire l’espace par le biais de node.getGlobalTransform().getMatrix().


Matériaux

Assignez les matériaux aux nodes :

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

Type de matériel : Material (à la base de, PbrMaterial (PBR de la fermeture métallique).


Conseils et meilleures pratiques

  • Utiliser Scene.fromFile() pour les charges unilatérales lorsque des options personnalisées ne sont pas nécessaires
  • Créer des cages programmés avec createPolygon() Pour la géométrie personnalisée
  • Utiliser .glb Extension pour le produit binaire compact glTF
  • Vérifier node.getEntity() != null Avant le casting
  • L’exportation est pas non Triangulate polygone face automatiquement. Binaire STL exportation écrit seulement les 3 premiers vertices de chaque face de polygan - quad ou n-gon faces sont silencieusement troncés. ASCII STl exporté écrit tous les indices vertex, qui produit des blocs façonnés malformées pour non triangle facettes. Toujours passer meshées prétriangulaires (all-triangel facts) à l’exportation ST L pour éviter la perte de données ou une sortie inadéquate.

Les problèmes communs

ProblèmeCauseFixé
Exception sur la chargeFichiers non supportés ou corrompusVérifier le fichier s’ouvre dans un visualisateur 3D
Matériaux manquants après la charge OBJ.mtl fichier non trouvéLieu .mtl A côté de .obj;• Assurer que les matériaux sont activés
Le défaut de la taille après l’importationDifférents systèmes d’unitésApplication A Transform La taille après le chargement

FAQ

Comment détecter le format d’un fichier ?

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

Puis-je faire un chargement d’un courant ?

Oui oui. scene.open() accepte une InputStream.

Quels formats supportent les importations et les exportations ?

OBJ, STL et glTF/GLB supportent les deux directions. FBX est importé-uniquement; l’exportation n’est pas mise en œuvre dans la version FOSS.


Le résumé de référence API

Classes / MéthodesDescription
SceneContenteur de scène 3D de haut niveau
scene.open()Télécharger un fichier 3D par voie ou courant
scene.save()Exportation scène à fichier ou stream
Scene.fromFile()La station de la ferme pour charger et retourner un Scene
NodeLe node hiérarchie
node.createChildNode()Créer et attacher un noyau enfant
MeshMesse de polygon avec points de contrôle et listes de visage
mesh.createPolygon()Définir un visage polygoniste
Mesh.toMesh()Conversion ou clonation de la géométrie
TransformTraduction locale, rotation et échelle
FileFormatRegistre et détecteur pour les formats
 Français