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

Σύγκριση Μορφών

ΧαρακτηριστικόOBJSTLglTFFBX3MF
ΥλικάMTLΌχιPBRΝαιΝαι
Ιεραρχία σκηνήςΌχιΌχιΝαιΝαιΝαι
Stub κίνησηςΌχιΌχιΝαιΝαιΌχι
Δυαδική λειτουργίαΌχιΝαιGLBΝαιZIP
3D printing readyΠεριορισμένοΝαιΌχιΌχιΝαι
Παράδοση μέσω διαδικτύουΌχιΌχιΝαιΌχιΌχι

Σύνοψη

Aspose.3D FOSS για .NET σας παρέχει ένα ενιαίο, συνεπές API για εργασία με όλες τις κύριες μορφές 3D αρχείων. Το πρότυπο είναι πάντα το ίδιο: δημιουργήστε ένα Scene, καλέστε Open() για φόρτωση, προαιρετικά ρυθμίστε επιλογές ειδικές για τη μορφή, και καλέστε Save() για εξαγωγή. Η ανίχνευση μορφής, η I/O βασισμένη σε ροές και η μαζική μετατροπή καθιστούν την ενσωμάτωση σε οποιοδήποτε .NET pipeline απλή.

Για περισσότερες πληροφορίες:

  • Αναφορά API – λεπτομερής τεκμηρίωση κλάσεων και μεθόδων.
  • Βάση Γνώσεων – πρακτικά άρθρα οδηγιών.
  • GitHub – κώδικας πηγής και σύστημα παρακολούθησης προβλημάτων.