Aspose.3D FOSS untuk .NET mendukung tujuh format file 3D: OBJ, STL, glTF, GLB, FBX, Collada, dan 3MF. Posting ini adalah panduan praktis, format demi format, yang menunjukkan cara memuat dan menyimpan masing‑masing, opsi apa yang tersedia, dan cara mengonversi di antara mereka.

Semua contoh menggunakan Aspose.ThreeD namespace:

using Aspose.ThreeD;
using Aspose.ThreeD.Formats;

Paket NuGet:

dotnet add package Aspose.3D --version 26.1.0

OBJ (Wavefront)

OBJ adalah format berbasis teks yang didukung secara luas untuk geometri mesh. Aspose.3D FOSS memuat file OBJ bersama dengan file .mtl material.

Memuat OBJ

var scene = new Scene();
scene.Open("model.obj");

Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);

Memuat 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 Penyimpanan

var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);

STL (Stereolithography)

STL adalah format standar untuk pencetakan 3D. Ia menyimpan geometri segitiga mentah tanpa material atau hierarki. Aspose.3D FOSS mendukung STL baik dalam bentuk biner maupun 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 Opsi Penyimpanan

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 dan GLB

glTF adalah standar modern untuk web dan 3D waktu nyata. Ia mendukung material PBR, hierarki adegan lengkap, dan pengemasan biner yang efisien (GLB).

Memuat glTF

var scene = new Scene();
scene.Open("model.gltf");

Memuat 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 binary yang berdiri sendiri .glb file, simpan dengan .glb ekstensi. Perpustakaan menginferensikan format binary glTF 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 dalam mode ASCII maupun binary.

Memuat FBX

var scene = new Scene();
scene.Open("model.fbx");

Memuat dengan Opsi

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 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.

Memuat 3MF

var scene = new Scene();
scene.Open("model.3mf");

Memuat 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 Opsi

var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);

I/O Berbasis Stream

Semua format mendukung pemuatan dari dan penyimpanan 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 secara otomatis mendeteksi format dari ekstensi file atau konten stream:

// 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 mengonversi beberapa file, iterasi melalui direktori dan konversi 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

FiturOBJSTLglTFFBX3MF
MaterialMTLTidakPBRYaYa
Hirarki adeganTidakTidakYaYaYa
Stub animasiTidakTidakYaYaTidak
Mode binerTidakYaGLBYaZIP
3D printing readyTerbatasYaTidakTidakYa
Pengiriman webTidakTidakYaTidakTidak

Ringkasan

Aspose.3D FOSS untuk .NET memberi Anda satu API yang konsisten untuk bekerja dengan semua format file 3D utama. Polanya selalu sama: buat sebuah Scene, panggil Open() untuk memuat, secara opsional mengonfigurasi opsi khusus format, dan panggil Save() untuk mengekspor. Deteksi format, I/O berbasis aliran, dan konversi batch memudahkan integrasi ke dalam pipeline .NET apa pun.

Untuk informasi lebih lanjut: