Aspose.3D FOSS untuk .NET mendukung tujuh format file 3D: OBJ, STL, glTF (Penggunaan), GLB, FBX, Kollada, dan 3MF. Pos ini adalah panduan praktis, format demi format yang menunjukkan cara memuat dan menyimpan masing-masing, opsi apa yang tersedia, dan bagaimana mengonversi di antara mereka.
Semua contoh menggunakan Aspose.ThreeD ruang nama:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
Paket NuGet:
dotnet add package Aspose.3D.FOSSOBJ (Wavefront)
OBJ adalah format berbasis teks yang didukung secara luas untuk geometri mesh. Aspose.3D FOSS memuat file OB J bersama dengan pendamping mereka. .mtl file materi.
Pemasangan OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Pemasangan dengan Opsi
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 opsi Simpan
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolitografi)
STL adalah format standar untuk pencetakan 3D. Ini menyimpan geometri triangulasi mentah tanpa bahan atau hierarki. Aspose.3D FOSS mendukung baik biner dan ASCII ST L .
Pemasangan 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 opsi Simpan
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL Perjalanan pulang-pergi
// 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 adalah standar modern untuk web dan real-time 3D. Ini mendukung bahan PBR, hierarki adegan penuh, dan packing biner yang efisien (GLB).
Pemuatan glTF
var scene = new Scene();
scene.Open("model.gltf");
Pemasangan dengan Opsi
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 (Binary glTF)
Untuk menghasilkan biner mandiri .glb file, menyimpan dengan a .glb Perpustakaan menyimpulkan format glTF biner dari ekstensi:
scene.Save("output.glb");
FBX (Filmbox)
FBX banyak digunakan dalam pengembangan game dan pembuatan konten digital. Aspose.3D FOSS untuk .NET mendukung FBx. impor dan ekspor.Ekspor menghasilkan FBX biner; kode ekspor ASCII FBx ada di sumber tetapi tidak dipanggil oleh jalur ekspor dalam versi ini. FbxSaveOptions class menyediakan pengaturan default.
Mengisi FBX
var scene = new Scene();
scene.Open("model.fbx");
Pemasangan dengan Opsi
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Menyimpan sebagai 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");
Menyimpan dengan Pilihan
// 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.
Pemuatan 3MF
var scene = new Scene();
scene.Open("model.3mf");
Pemasangan dengan Opsi
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 berbasis aliran
Semua format mendukung loading dari dan menyimpan ke stream, yang berguna untuk layanan web dan pemrosesan 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);
Deteksi Format
Perpustakaan dapat mendeteksi format secara otomatis dari ekstensi file atau konten streaming:
// 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
Konversi Batch
Untuk mengkonversi beberapa file, iterasi di atas direktori dan mengubah masing-masing:
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
| Fiturnya | OBJ | STL | glTF (Penggunaan) | FBX | 3MF |
|---|---|---|---|---|---|
| Bahan-bahan | MTL | Tidak ada. | PBR | Ya, aku tahu. | Ya, aku tahu. |
| Hierarki adegan | Tidak ada. | Tidak ada. | Ya, aku tahu. | Ya, aku tahu. | Ya, aku tahu. |
| Bagian animasi | Tidak ada. | Tidak ada. | Ya, aku tahu. | Ya, aku tahu. | Tidak ada. |
| Mode biner | Tidak ada. | Ya, aku tahu. | GLB | Ya, aku tahu. | ZIP |
| 3D printing ready | Terbatas | Ya, aku tahu. | Tidak ada. | Tidak ada. | Ya, aku tahu. |
| Pengiriman web | Tidak ada. | Tidak ada. | Ya, aku tahu. | Tidak ada. | Tidak ada. |
Ringkasan
3D FOSS untuk .NET memberi Anda API tunggal dan konsisten untuk bekerja dengan semua format file 3d utama. Pola selalu sama: membuat sebuah Scene, telepon Open() untuk memuat, secara opsional mengkonfigurasi opsi khusus format, dan memanggil Save() untuk mengekspor. Deteksi format, I/O berbasis stream, dan konversi batch membuatnya mudah diintegrasikan ke dalam pipa .NET apa pun.
Untuk informasi lebih lanjut:
- Referensi API – dokumentasi kelas dan metode yang rinci.
- Basis Pengetahuan – artikel panduan praktis.
- GitHub – kode sumber dan pelacak masalah.