Χαρακτηριστικά και λειτουργίες

Χαρακτηριστικά και λειτουργίες

Χαρακτηριστικά και λειτουργίες

Αυτή η σελίδα καλύπτει κάθε κύριο χαρακτηριστικό πεδίο της Σημειώνεται ότι το 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
 Ελληνικά