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
.glbExtension pour le produit binaire compact glTF - Vérifier
node.getEntity() != nullAvant 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ème | Cause | Fixé |
|---|---|---|
| Exception sur la charge | Fichiers non supportés ou corrompus | Vé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’importation | Différents systèmes d’unités | Application 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éthodes | Description |
|---|---|
Scene | Contenteur 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 |
Node | Le node hiérarchie |
node.createChildNode() | Créer et attacher un noyau enfant |
Mesh | Messe 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 |
Transform | Traduction locale, rotation et échelle |
FileFormat | Registre et détecteur pour les formats |