Aspose.3D FOSS untuk .NET menyokong tujuh format fail 3D: OBJ, STL, glTF, GLB, FBX, Collada, dan 3MF. Pos ini merupakan panduan praktikal, format demi format, yang menunjukkan cara memuatkan dan menyimpan setiap satu, pilihan yang tersedia, dan cara menukar antara mereka.
Semua contoh menggunakan Aspose.ThreeD ruang nama:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
Pakej NuGet:
dotnet add package Aspose.3D.Converter --version 1.0.0
OBJ (Wavefront)
OBJ ialah format berasaskan teks yang disokong secara meluas untuk geometri mesh. Aspose.3D FOSS memuatkan fail OBJ bersama-sama dengan .mtl fail material.
Memuat OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Memuatkan dengan Pilihan
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Menyimpan sebagai OBJ
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ dengan Pilihan Simpan
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolithography)
STL ialah format standard untuk pencetakan 3D. Ia menyimpan geometri segitiga mentah tanpa bahan atau hierarki. Aspose.3D FOSS menyokong STL binari dan ASCII.
Memuat STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Menyimpan sebagai STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL dengan Pilihan Simpan
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL Pusingan Balik
// 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 dan GLB
glTF ialah standard moden untuk web dan 3D masa nyata. Ia menyokong bahan PBR, hierarki adegan penuh, dan pembungkusan binari yang cekap (GLB).
Memuat glTF
var scene = new Scene();
scene.Open("model.gltf");
Memuatkan dengan Pilihan
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Menyimpan sebagai glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Menyimpan sebagai GLB (glTF Binari)
Untuk menghasilkan binari yang berdiri sendiri .glb fail, simpan dengan .glb sambungan. Perpustakaan mengenal pasti format glTF binari daripada sambungan:
scene.Save("output.glb");
FBX (Filmbox)
FBX digunakan secara meluas dalam pembangunan permainan dan penciptaan kandungan digital. Aspose.3D FOSS untuk .NET menyokong FBX import dan eksport dalam kedua-dua mod ASCII dan binari.
Memuat FBX
var scene = new Scene();
scene.Open("model.fbx");
Memuatkan dengan Pilihan
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Menyimpan sebagai 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);
Menyimpan sebagai FBX Binari
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.
Memuatkan 3MF
var scene = new Scene();
scene.Open("model.3mf");
Memuatkan dengan Pilihan
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Menyimpan sebagai 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Menyimpan dengan Pilihan
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
I/O Berasaskan Aliran
Semua format menyokong pemuatan daripada aliran dan penyimpanan ke aliran, yang berguna untuk perkhidmatan web dan pemprosesan awan:
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);
Pengesanan Format
Pustaka ini boleh mengesan format secara automatik daripada sambungan fail atau kandungan aliran:
// 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
Penukaran Pukal
Untuk menukar berbilang fail, ulangi melalui direktori dan tukar setiap satu:
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);
}
Perbandingan Format
| Ciri | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Bahan | MTL | Tidak | PBR | Ya | Ya |
| Hierarki adegan | Tidak | Tidak | Ya | Ya | Ya |
| Stub animasi | Tidak | Tidak | Ya | Ya | Tidak |
| Mod binari | Tidak | Ya | GLB | Ya | ZIP |
| 3D printing ready | Terhad | Ya | Tidak | Tidak | Ya |
| Penghantaran web | Tidak | Tidak | Ya | Tidak | Tidak |
Ringkasan
Aspose.3D FOSS untuk .NET memberikan anda API tunggal dan konsisten untuk bekerja dengan semua format fail 3D utama. Pola sentiasa sama: cipta satu Scene, panggil Open() untuk memuat, secara pilihan mengkonfigurasi pilihan khusus format, dan panggil Save() untuk mengeksport. Pengesanan format, I/O berasaskan aliran, dan penukaran pukal menjadikannya mudah untuk digabungkan ke dalam mana-mana paip .NET.
Untuk maklumat lanjut:
- Rujukan API – dokumentasi kelas dan kaedah terperinci.
- Pangkalan Pengetahuan – artikel cara-cara praktikal.
- GitHub – kod sumber dan penjejak isu.