Aspose.3D FOSS for .NET は、7 つの 3D ファイル形式をサポートしています: OBJ, STL, glTF, GLB, FBX, Collada, 3MF。この記事は、各形式をロードおよび保存する方法、利用可能なオプション、そしてそれらの間の変換方法を示す、実践的な形式別ガイドです。
すべての例は Aspose.ThreeD 名前空間を使用します:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
NuGet パッケージ:
dotnet add package Aspose.3D --version 26.1.0
OBJ (Wavefront)
OBJ は、メッシュジオメトリ用の広くサポートされているテキストベースのフォーマットです。Aspose.3D FOSS は、OBJ ファイルとそれに付随する .mtl マテリアルファイルをロードします。
OBJ の読み込み
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
オプション付きのロード
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
OBJとして保存
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ と保存オプション
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (ステレオリソグラフィ)
STL は 3D プリントの標準フォーマットです。材料や階層なしで、生の三角形ジオメトリを保存します。Aspose.3D FOSS はバイナリと ASCII の両方の STL をサポートしています。
STL の読み込み
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
STLとして保存
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
保存オプション付き STL
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL ラウンドトリップ
// 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 と GLB
glTF は Web とリアルタイム 3D の最新標準です。PBR マテリアル、完全なシーン階層、そして効率的なバイナリ パッキング(GLB)をサポートします。
glTF の読み込み
var scene = new Scene();
scene.Open("model.gltf");
オプション付きのロード
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
glTFとして保存
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
GLB(バイナリ glTF)として保存
自己完結型のバイナリ .glb ファイルを作成するには、.glb 拡張子で保存してください。ライブラリは拡張子からバイナリ glTF フォーマットを推測します。
scene.Save("output.glb");
FBX (Filmbox)
FBXはゲーム開発やデジタルコンテンツ制作で広く使用されています。Aspose.3D FOSS for .NETはFBXのインポートとエクスポートをサポートしています。エクスポートはバイナリFBXを生成します;ASCII FBXエクスポートコードはソースに存在しますが、このバージョンのエクスポートパスでは呼び出されません。FbxSaveOptionsクラスはデフォルト設定を提供します。
FBX の読み込み
var scene = new Scene();
scene.Open("model.fbx");
オプション付きのロード
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
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");
オプションで保存
// Use FbxSaveOptions for format-specific defaults
var opts = new FbxSaveOptions();
scene.Save("output.fbx", opts);
3MF(3D 製造フォーマット)
3MFは、3MFコンソーシアムが開発した最新の3D印刷フォーマットです。単一のZIPベースのパッケージ内で、豊富なメタデータ、マテリアル、マルチオブジェクトシーンをサポートします。
3MF の読み込み
var scene = new Scene();
scene.Open("model.3mf");
オプション付きのロード
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
3MFとして保存
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
オプションで保存
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
ストリームベース I/O
すべての形式はストリームからの読み込みとストリームへの保存をサポートしており、Web サービスやクラウド処理に便利です:
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);
フォーマット検出
このライブラリは、ファイル拡張子またはストリームの内容から形式を自動検出できます:
// 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
バッチ変換
複数のファイルを変換するには、ディレクトリを反復処理して各ファイルを変換します:
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);
}
フォーマット比較
| 機能 | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| マテリアル | MTL | いいえ | PBR | はい | はい |
| シーン階層 | いいえ | いいえ | はい | はい | はい |
| アニメーションスタブ | いいえ | いいえ | はい | はい | いいえ |
| バイナリモード | いいえ | はい | GLB | はい | ZIP |
| 3D印刷対応 | 制限あり | はい | いいえ | いいえ | はい |
| Web配信 | いいえ | いいえ | はい | いいえ | いいえ |
概要
Aspose.3D FOSS for .NET は、すべての主要な 3D ファイル形式を扱うための単一で一貫した API を提供します。パターンは常に同じです: Scene を作成し、Open() を呼び出してロードし、必要に応じてフォーマット固有のオプションを設定し、Save() を呼び出してエクスポートします。フォーマット検出、ストリームベースの I/O、バッチ変換により、任意の .NET パイプラインへの統合が簡単になります。
詳細については:
- API Reference – 詳細なクラスおよびメソッドのドキュメント。
- Knowledge Base – 実用的なハウツー記事。
- GitHub – ソースコードとイシュー トラッカー。