Χαρακτηριστικά και λειτουργίες
Χαρακτηριστικά και λειτουργίες
Αυτή η σελίδα καλύπτει κάθε κύριο χαρακτηριστικό πεδίο της Σημειώνεται ότι το 3D 26.1.0 Με παράδειγμα C#.
Κατεβάστε και αποθηκεύσετε σκηνές
Scene.Open() Κατεβάστε ένα αρχείο.; Scene.Save() Η μορφή ανιχνεύεται από την επέκταση αρχείου:
using Aspose.ThreeD;
var scene = new Scene();
scene.Open("input.obj");
scene.Save("output.glb");Χρησιμοποιήστε το στατικό εργοστάσιο Scene.FromFile() Ως εναλλακτική λύση:
var scene = Scene.FromFile("input.fbx");
scene.Save("output.stl");ΕΠΙΛΟΓΙΚΕΣ ΑΡΘΡΟΤΕΣ
ΠΑΣΟΚ LoadOptions ή SaveOptions Υποκλάσεις για τον έλεγχο των λεπτών σπόρων:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
var scene = new Scene();
scene.Open("model.obj", new ObjLoadOptions { FlipCoordinateSystem = true });
scene.Save("model.fbx");Διαθέσιμες κατηγορίες επιλογών:
| Κλάση | Οδηγία | Κλειδιά Ιδιοκτησίας |
|---|---|---|
ObjLoadOptions | εισαγωγών | FlipCoordinateSystem, EnableMaterials, Scale |
ObjSaveOptions | Εξαγωγή | FlipCoordinateSystem, EnableMaterials, PointCloud |
FbxLoadOptions | εισαγωγών | (Συγκεκριμένες ρυθμίσεις για την προετοιμασία) |
GltfLoadOptions | εισαγωγών | (Συγκεκριμένες ρυθμίσεις για την προετοιμασία) |
GltfSaveOptions | Εξαγωγή | (Συγκεκριμένες ρυθμίσεις για την προετοιμασία) |
StlLoadOptions | εισαγωγών | (Συγκεκριμένες ρυθμίσεις για την προετοιμασία) |
StlSaveOptions | Εξαγωγή | (Συγκεκριμένες ρυθμίσεις για την προετοιμασία) |
ColladaLoadOptions | εισαγωγών | FlipCoordinateSystem |
ColladaSaveOptions | Εξαγωγή | Indented, TransformStyle |
PlyLoadOptions | εισαγωγών | (Συγκεκριμένες ρυθμίσεις για την προετοιμασία) |
Δημιουργία σκηνικού γραφείου
Δημιουργήστε κόμβους και προσθέστε οντότητες για να χτίσετε μια ιεραρχία:
var scene = new Scene();
var root = scene.RootNode;
var boxNode = root.CreateChildNode("box", new Box(5, 5, 5));
var sphereNode = root.CreateChildNode("sphere", new Sphere(3));Η πρόσβαση των παιδιών μέσω node.ChildNodes και την προσκομμένη οντότητα μέσω της node.Entity.
Μασχ και προκαταρκτικά
Δημιουργία A Mesh Προγραμματισμένα με σημεία ελέγχου και πολυγόνους:
// Mesh.ControlPoints uses Aspose.ThreeD.Utilities.Vector4
// (double-precision, lowercase fields: x, y, z, w)
using Aspose.ThreeD.Utilities;
var mesh = new Mesh("custom");
mesh.ControlPoints.Add(new Vector4(0.0, 0.0, 0.0)); // w defaults to 1.0
mesh.ControlPoints.Add(new Vector4(10.0, 0.0, 0.0));
mesh.ControlPoints.Add(new Vector4(10.0, 10.0, 0.0));
mesh.ControlPoints.Add(new Vector4(0.0, 10.0, 0.0));
mesh.CreatePolygon(0, 1, 2, 3);Η πρώτη κληρονομιά (Box, Sphere, CylinderΜπορεί να μετατραπεί σε Mesh:
var box = new Box(10, 10, 10);
Mesh boxMesh = box.ToMesh();Vertex στοιχεία
Προσθέστε τα κανονικά, UV και το χρώμα του στίχου στη γεωμετρία:
var normals = new VertexElementNormal(MappingMode.ControlPoint, ReferenceMode.Direct);
mesh.AddElement(normals);Διαθέσιμα είδη στοιχείων vertex: VertexElementNormal, VertexElementUV, VertexElementVertexColor, VertexElementBinormal, VertexElementTangent.
Μετασχηματισμός
ΟΛΟΙ Node Παρουσιάζει A Transform Με Translation, Rotation,και Scale:
var node = scene.RootNode.CreateChildNode("moved", new Box());
node.Transform.Translation = new FVector3(10, 0, 5);
node.Transform.Scale = new FVector3(2, 2, 2);Διαβάστε την παγκόσμια θέση μέσω node.GlobalTransform.Matrix ή node.EvaluateGlobalTransform().
Υλικά
Αποτελέστε υλικά σε κόμβους για την αποχρωματισμός δεδομένων:
var mat = new PhongMaterial("shiny");
mat.Diffuse = new Vector4(0.8, 0.2, 0.2, 1.0);
mat.Specular = new Vector4(1, 1, 1, 1);
mat.Shininess = 32;
scene.RootNode.CreateChildNode("red_box", new Box(), mat);Τύποι υλικού: LambertMaterial, PhongMaterial, PbrMaterial.
Συμβουλές και βέλτιστες πρακτικές
- Χρησιμοποιήστε
Scene.FromFile()για ένα φορτίο μονοσυνδέσεων όταν δεν χρειάζεστε προσαρμογήLoadOptions - Μετατρέποντας τα πρωτόγοντα σε
MeshΜεToMesh()Πριν από την προσθήκη των στοιχείων vertex - Χρησιμοποιήστε
GltfSaveOptionsΜε το A.glbΕπεκταση για το συμπαγές δυαδικό εξόρυγμα - Ελέγξτε
node.EntityΓιαnullπριν από την εκφόρτωση - δεν φέρει κάθε κόμβος γεωμετρία - Χρησιμοποιήστε
PolygonModifier.Triangulate()να μετατρέψετε τετράγωνα πριν εξάγετε σε τριαδικούς μορφές, όπως το STL
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
ImportException ΣΤΟ ΛΟΙΓ | Απαράδεκτο ή διαφθορισμένο αρχείο | Ελέγξτε το αρχείο ανοίγει σε ένα 3D προβολέας. ελέγξουμε τη μορφή είναι στη λίστα που υποστηρίζεται |
| Απεβίβαση υλικού μετά το φορτίο OBJ | .mtl αρχείο δεν βρέθηκε | τοποθετείτε το .mtl Το αρχείο δίπλα στο .obj ή Set ObjLoadOptions.EnableMaterials = true |
| Η αποτυχία της κλίμακας μετά την εισαγωγή FBX | Διαφορετικά συστήματα μονάδων | Χρησιμοποιήστε ObjLoadOptions.Scale ή να εφαρμόσει ένα Transform Μετά την φόρτιση |
FAQ
Πώς μπορώ να ανακαλύψω τη μορφή ενός άγνωστου αρχείου;?
Χρησιμοποιήστε FileFormat.Detect():
var format = FileFormat.Detect("unknown_file.bin");
Console.WriteLine(format.Extension);Μπορώ να φορτώ από ένα ρεύμα αντί για μια πορεία αρχείων;?
Ναι . Scene.Open() Αποδέχεται το A Stream:
using var stream = File.OpenRead("model.glb");
scene.Open(stream);Ποια μορφή υποστηρίζει τόσο τις εισαγωγές όσο και τις εξαγωγικές πηγές;?
Ο OBJ, STL, glTF/GLB, FBX, COLLADA και 3MF υποστηρίζουν τις δύο κατευθύνσεις. PLY υποστηρίζει μόνο την εισαγωγή (ο εξαγωγέας PLI δεν είναι καλωδώς).
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
Scene | Πρώτο επίπεδο 3D σκηνή δοχείο |
Scene.Open() | Κατεβάστε ένα αρχείο 3D με πορεία ή ροή |
Scene.Save() | Εξαγωγή σκηνής σε αρχείο ή ροή |
Scene.FromFile() | Στατικό εργοστάσιο για φόρτιση και επιστροφή σε ένα Scene |
Node | Σενάριο ιεραρχία κόμβοι που κατέχουν οντότητες και μετασχηματισμούς |
Node.CreateChildNode() | Δημιουργία και προσθήκη παιδικού κόμβου |
Mesh | Πολυγώνια με σημεία ελέγχου και λίστας προσώπου |
Mesh.CreatePolygon() | Ορισμός ενός πολυσύχναστου προσώπου με δεξιότητες |
Box / Sphere / Cylinder | Εισαγωγή σε παραμετρικά πρωτόγοντα |
Transform | Η τοπική μετάφραση, η περιστροφή και η κλίμακα |
FileFormat | Μητρώο και ανιχνευτής για υποστηριζόμενες μορφές |
LambertMaterial / PhongMaterial / PbrMaterial | Τύποι υλικού για το Shading |