Aspose.3D FOSS for .NET yedi 3D dosya formatını destekler: OBJ, STL, glTF, GLB, FBX, Collada, ve 3MF. Bu gönderi, her birini nasıl yükleyeceğinizi ve kaydedeceğinizi, hangi seçeneklerin mevcut olduğunu ve aralarında nasıl dönüştürme yapabileceğinizi gösteren pratik, format‑bazlı bir rehberdir.
Tüm örnekler şunu kullanır: Aspose.ThreeD ad alanı:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
NuGet paketi:
dotnet add package Aspose.3D --version 26.1.0
OBJ (Wavefront)
OBJ, ağ geometrisi için yaygın olarak desteklenen metin tabanlı bir formattır. Aspose.3D FOSS, OBJ dosyalarını eşlik eden .mtl malzeme dosyalarını.
OBJ Yükleme
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Seçeneklerle Yükleme
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
OBJ Olarak Kaydetme
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
Kaydetme Seçenekleriyle OBJ
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolithography)
STL, 3D baskı için standart formattır. Malzeme veya hiyerarşi olmadan ham üçgenlenmiş geometriyi depolar. Aspose.3D FOSS, ikili ve ASCII STL’yi destekler.
STL Yükleme
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
STL Olarak Kaydetme
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
Kaydetme Seçenekleriyle STL
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL Çift Yönlü İşlem
// 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 and GLB
glTF, web ve gerçek zamanlı 3D için modern standarttır. PBR malzemeleri, tam sahne hiyerarşileri ve verimli ikili paketlemeyi (GLB) destekler.
glTF Yükleme
var scene = new Scene();
scene.Open("model.gltf");
Seçeneklerle Yükleme
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
glTF Olarak Kaydetme
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
GLB Olarak Kaydetme (Binary glTF)
Kendine yeten bir ikili üretmek için .glb dosya, bir .glb uzantı ile kaydedin. Kütüphane, ikili glTF formatını uzantıdan çıkarır:
scene.Save("output.glb");
FBX (Filmbox)
FBX, oyun geliştirme ve dijital içerik oluşturma alanında yaygın olarak kullanılır. Aspose.3D FOSS for .NET FBX’yi destekler ithalat ve ihracat hem ASCII hem de ikili modlarda.
FBX Yükleme
var scene = new Scene();
scene.Open("model.fbx");
Seçeneklerle Yükleme
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
FBX ASCII Olarak Kaydetme
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 Olarak Kaydetme
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 Yükleme
var scene = new Scene();
scene.Open("model.3mf");
Seçeneklerle Yükleme
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
3MF olarak kaydetme
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Seçeneklerle Kaydetme
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Akış Tabanlı G/Ç
Tüm formatlar, akışlardan yüklemeyi ve akışlara kaydetmeyi destekler; bu, web hizmetleri ve bulut işleme için faydalıdır:
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);
Format Algılama
Kütüphane, dosya uzantılarından veya akış içeriğinden formatları otomatik olarak algılayabilir:
// 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
Toplu Dönüştürme
Birden fazla dosyayı dönüştürmek için, bir dizini döngüye alıp her birini dönüştürün:
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);
}
Format Karşılaştırması
| Özellik | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Malzemeler | MTL | Hayır | PBR | Evet | Evet |
| Sahne hiyerarşisi | Hayır | Hayır | Evet | Evet | Evet |
| Animasyon taslakları | Hayır | Hayır | Evet | Evet | Hayır |
| İkili mod | Hayır | Evet | GLB | Evet | ZIP |
| 3D printing ready | Sınırlı | Evet | Hayır | Hayır | Evet |
| Web teslimatı | Hayır | Hayır | Evet | Hayır | Hayır |
Özet
Aspose.3D FOSS for .NET size tüm büyük 3D dosya formatlarıyla çalışmak için tek, tutarlı bir API sağlar. Desen her zaman aynı: bir Scene, çağır Open() yüklemek için, isteğe bağlı olarak format‑spesifik seçenekleri yapılandırın ve Save() dışa aktarmak için. Format algılama, akış‑tabanlı G/Ç ve toplu dönüşüm, herhangi bir .NET işlem hattına entegre etmeyi kolaylaştırır.
Daha fazla bilgi için:
- API Referansı – ayrıntılı sınıf ve yöntem belgeleri.
- Bilgi Tabanı – pratik nasıl‑yapılır makaleleri.
- GitHub – kaynak kodu ve sorun izleyicisi.