Aspose.3D FOSS for .NET υποστηρίζει επτά μορφές 3D αρχείων: OBJ, STL, glTF, GLB, FBX, Collada, και 3MF. Αυτή η ανάρτηση είναι ένας πρακτικός οδηγός, μορφή-με-μορφή, που δείχνει πώς να φορτώνετε και να αποθηκεύετε καθεμία, ποιες επιλογές είναι διαθέσιμες και πώς να μετατρέπετε μεταξύ τους.
Όλα τα παραδείγματα χρησιμοποιούν το Aspose.ThreeD namespace:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
Πακέτο NuGet:
dotnet add package Aspose.3D --version 26.1.0
OBJ (Wavefront)
OBJ είναι μια ευρέως υποστηριζόμενη μορφή κειμένου για τη γεωμετρία πλέγματος. Aspose.3D FOSS φορτώνει αρχεία OBJ μαζί με τα συνοδευτικά τους .mtl αρχεία υλικού.
Φόρτωση OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Φόρτωση με Επιλογές
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Αποθήκευση ως OBJ
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ με Επιλογές Αποθήκευσης
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolithography)
Το STL είναι η τυπική μορφή για 3D εκτύπωση. Αποθηκεύει ακατέργαστη τριγωνική γεωμετρία χωρίς υλικά ή ιεραρχία. Το Aspose.3D FOSS υποστηρίζει τόσο το δυαδικό όσο και το ASCII STL.
Φόρτωση STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Αποθήκευση ως STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL με Επιλογές Αποθήκευσης
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL Round-Trip
// Load an STL file and re-save it -- geometry is preserved
var scene = new Scene();
scene.Open("original.stl");
scene.Save("copy.stl");
glTF 2.0 και GLB
Το glTF είναι το σύγχρονο πρότυπο για το web και το 3D σε πραγματικό χρόνο. Υποστηρίζει υλικά PBR, πλήρεις ιεραρχίες σκηνών και αποδοτική δυαδική συσκευασία (GLB).
Φόρτωση glTF
var scene = new Scene();
scene.Open("model.gltf");
Φόρτωση με Επιλογές
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Αποθήκευση ως glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Αποθήκευση ως GLB (Δυαδικό glTF)
Για να δημιουργήσετε ένα αυτόνομο δυαδικό .glb αρχείο, αποθηκεύστε με ένα .glb επέκταση. Η βιβλιοθήκη ανιχνεύει τη δυαδική μορφή glTF από την επέκταση:
scene.Save("output.glb");
FBX (Filmbox)
FBX χρησιμοποιείται ευρέως στην ανάπτυξη παιχνιδιών και τη δημιουργία ψηφιακού περιεχομένου. Aspose.3D FOSS for .NET υποστηρίζει FBX εισαγωγή και εξαγωγή και στις δύο λειτουργίες, ASCII και δυαδική.
Φόρτωση FBX
var scene = new Scene();
scene.Open("model.fbx");
Φόρτωση με Επιλογές
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Αποθήκευση ως FBX ASCII
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
var opts = new FbxSaveOptions() { IsAscii = true };
scene.Save("output.fbx", opts);
Αποθήκευση ως FBX Binary
var opts = new FbxSaveOptions() { IsAscii = false };
scene.Save("output.fbx", opts);
3MF (3D Manufacturing Format)
3MF is a modern 3D printing format developed by the 3MF Consortium. It supports rich metadata, materials, and multi-object scenes in a single ZIP-based package.
Φόρτωση 3MF
var scene = new Scene();
scene.Open("model.3mf");
Φόρτωση με Επιλογές
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Αποθήκευση ως 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Αποθήκευση με Επιλογές
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
I/O βάσει ροής
Όλες οι μορφές υποστηρίζουν τη φόρτωση από ροές και την αποθήκευση σε ροές, κάτι που είναι χρήσιμο για υπηρεσίες web και επεξεργασία στο cloud:
using var stream = File.OpenRead("model.obj");
var scene = new Scene();
var opts = new ObjLoadOptions();
scene.Open(stream, opts);
// Save to a memory stream
using var output = new MemoryStream();
var saveOpts = new GltfSaveOptions();
scene.Save(output, saveOpts);
Ανίχνευση Μορφής
Η βιβλιοθήκη μπορεί να ανιχνεύει αυτόματα τις μορφές από τις επεκτάσεις αρχείων ή το περιεχόμενο της ροής:
// Auto-detect from extension
var scene = new Scene();
scene.Open("model.obj"); // Detects OBJ from .obj extension
// Auto-detect from stream content
using var stream = File.OpenRead("model.obj");
scene.Open(stream); // Inspects stream content to determine format
Μαζική Μετατροπή
Για τη μετατροπή πολλαπλών αρχείων, επαναλάβετε πάνω σε έναν φάκελο και μετατρέψτε το καθένα:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
var inputDir = "assets/";
var outputDir = "converted/";
foreach (var file in Directory.GetFiles(inputDir, "*.fbx"))
{
var scene = new Scene();
scene.Open(file);
var outputPath = Path.Combine(outputDir,
Path.GetFileNameWithoutExtension(file) + ".glb");
scene.Save(outputPath);
Console.WriteLine("Converted: " + file);
}
Σύγκριση Μορφών
| Χαρακτηριστικό | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Υλικά | MTL | Όχι | PBR | Ναι | Ναι |
| Ιεραρχία σκηνής | Όχι | Όχι | Ναι | Ναι | Ναι |
| Stub κίνησης | Όχι | Όχι | Ναι | Ναι | Όχι |
| Δυαδική λειτουργία | Όχι | Ναι | GLB | Ναι | ZIP |
| 3D printing ready | Περιορισμένο | Ναι | Όχι | Όχι | Ναι |
| Παράδοση μέσω διαδικτύου | Όχι | Όχι | Ναι | Όχι | Όχι |
Σύνοψη
Aspose.3D FOSS για .NET σας παρέχει ένα ενιαίο, συνεπές API για εργασία με όλες τις κύριες μορφές 3D αρχείων. Το πρότυπο είναι πάντα το ίδιο: δημιουργήστε ένα Scene, καλέστε Open() για φόρτωση, προαιρετικά ρυθμίστε επιλογές ειδικές για τη μορφή, και καλέστε Save() για εξαγωγή. Η ανίχνευση μορφής, η I/O βασισμένη σε ροές και η μαζική μετατροπή καθιστούν την ενσωμάτωση σε οποιοδήποτε .NET pipeline απλή.
Για περισσότερες πληροφορίες:
- Αναφορά API – λεπτομερής τεκμηρίωση κλάσεων και μεθόδων.
- Βάση Γνώσεων – πρακτικά άρθρα οδηγιών.
- GitHub – κώδικας πηγής και σύστημα παρακολούθησης προβλημάτων.