Aspose.3D FOSS für .NET unterstützt sieben 3D-Dateiformate: OBJ, STL, GFT-Systeme, GLB, FBX, Schnupfen,und . 3MF.Dieser Beitrag ist eine praktische, Format-für-Format-Anleitung, die zeigt, wie man jedes laden und speichern kann, welche Optionen verfügbar sind und wie zwischen ihnen umgewandelt werden kann.
Alle Beispiele verwenden die Aspose.ThreeD Namensraum:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
NuGet-Verpackung:
dotnet add package Aspose.3D.FOSSOBJ (Wellenfront)
OBJ ist ein weit verbreitetes textbasiertes Format für die Maschengeometrie. Aspose.3D FOSS lädt OB J-Dateien zusammen mit ihrem Begleiter auf. .mtl Materialdateien.
Beförderung von OBJ-Ladungen
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Aufladen mit Optionen
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Speicherung als OBJ
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ mit Speicheroptionen
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolithographie)
STL ist das Standardformat für den 3D-Druck. Es speichert die unentdeckte triangulierte Geometrie ohne Materialien oder Hierarchie. Aspose.3D FOSS unterstützt sowohl binäre als auch ASCII ST L.
Ladezeit STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Speicherung als STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL mit Speicheroptionen
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL Rundfahrt
// 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 und GLB
glTF ist der moderne Standard für Web- und Echtzeit-3D. Es unterstützt PBR-Materialien, vollständige Szenenhierarchien und effizientes binäres Verpacken (GLB).
Lade-GFT
var scene = new Scene();
scene.Open("model.gltf");
Aufladen mit Optionen
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Einsparung als glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Einsparungen als GLB (binärer glTF)
Die Erstellung einer eigenständigen Binärform. .glb Datei, mit einem .glb Die Bibliothek zieht das binäre glTF-Format aus der Erweiterung ab:
scene.Save("output.glb");
FBX (Filmbox)
FBX wird in der Spieleentwicklung und bei der Erstellung digitaler Inhalte weit verbreitet. Aspose.3D FOSS für .NET unterstützt FBx. Einfuhr und Ausfuhr.Export erzeugt binäre FBX; ASCII-FBX-Exportcode existiert in der Quelle, wird aber nicht durch den Exportraditionsablauf in dieser Version aufgerufen. FbxSaveOptions Die Standard-Einstellungen werden durch die Klasse bereitgestellt.
FBX laden
var scene = new Scene();
scene.Open("model.fbx");
Aufladen mit Optionen
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Speichern als FBX
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
// FBX export always produces binary FBX output
scene.Save("output.fbx");
Sparen mit Optionen
// Use FbxSaveOptions for format-specific defaults
var opts = new FbxSaveOptions();
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.
Beförderung 3MF
var scene = new Scene();
scene.Open("model.3mf");
Aufladen mit Optionen
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Einsparung als 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Sparen mit Optionen
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Strömungsbasierte E/A-Daten
Alle Formate unterstützen das Laden von und Speichern in Streams, was für Webservices und Cloud-Verarbeitung nützlich ist:
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);
Formaterkennung
Die Bibliothek kann Formate von Dateierweiterungen oder Streaming-Inhalten automatisch erkennen:
// 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
Batch-Umwandlung
Für die Konvertierung mehrerer Dateien, Iteration über ein Verzeichnis und konvertieren Sie jede einzelne:
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);
}
Formatvergleich
| Merkmale | OBJ | STL | GFT-Systeme | FBX | 3MF |
|---|---|---|---|---|---|
| Materialien | MTL | - Nein . | PBR | - Ja , das ist gut . | - Ja , das ist gut . |
| Hierarchie der Szenen | - Nein . | - Nein . | - Ja , das ist gut . | - Ja , das ist gut . | - Ja , das ist gut . |
| Animationsstücke | - Nein . | - Nein . | - Ja , das ist gut . | - Ja , das ist gut . | - Nein . |
| Binärmodus | - Nein . | - Ja , das ist gut . | GLB | - Ja , das ist gut . | ZIP |
| 3D printing ready | Begrenzt | - Ja , das ist gut . | - Nein . | - Nein . | - Ja , das ist gut . |
| Web-Auslieferung | - Nein . | - Nein . | - Ja , das ist gut . | - Nein . | - Nein . |
Zusammenfassung der Ergebnisse
3D FOSS für .NET bietet Ihnen eine einheitliche, konsistente API zum Arbeiten mit allen wichtigen 3d-Dateiformaten. Das Muster ist immer das gleiche: Erstellen Sie einen Scene,- Ich rufe . Open() die Optionen für das Format und den Aufruf laden, konfigurieren oder nicht. Save() Die Formaterkennung, die streambasierte E/A und die Batch-Konvertierung machen es einfach in jede .NET-Pipeline zu integrieren.
Weitere Informationen:
- Referenz für die API – detaillierte Unterlagen über Klassen und Methoden.
- Wissensbasis – praktische Artikel über die Art und Weise, wie man es macht.
- GitHub - Quellcode und Problem-Tracker.