Aspose.3D FOSS for Java は 5 つの 3D ファイル形式をサポートしています。: OBJ, STL, グラフ, GLB,で、そして FBX この投稿は、それぞれを充電し保存する方法、どのようなオプションが利用可能であり、それらの間で変換するかを示す実用的なフォーマット・パーフォマットガイドです。.
例はすべて使用する。 com.aspose.threed.* パッケージ:
import com.aspose.threed.*;
マベン依存症:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-3d-foss</artifactId>
<version>26.5.0</version>
</dependency>風景形式
ダイビングする前に、ここでは4つのサポートされたフォーマットとその典型的な使用ケースの迅速な概要です。.
| フォーマット | 拡張 | 輸入 | 輸出 | 材料サポート | 舞台・階級 |
|---|---|---|---|---|---|
| OBJ | .obj | はい | はい | 基本(MTLファイル) | フラット |
| STL | .stl | はい | はい | 無し | フラット |
| グラス 2.0 | .gltf | はい | はい | PBR | 完全 |
| GLB | .glb | はい | はい | PBR | 完全 |
| FBX | .fbx | はい | ノー | 豊かさ | 完全 |
OBJ、STL、glTF、GLBは輸入と輸出の両方をサポートしています。 輸入のみ.GLB(ビナリーGLT)は、 GltfSaveOptions で、 setContentType(FileContentType.BINARY).
タグ:Wavefront Object
OBJは最も広くサポートされている3Dメッシュフォーマットの1つです。それは、オプションでフライトテキストとして地理を保存します。 .mtl 材料のための同伴ファイル。.
ダウンロード OBJファイル
最も簡単な方法は、ファイルパスを直接通過することです:
Scene scene = Scene.fromFile("model.obj");
より多くのコントロール、使用 ObjLoadOptions:
ObjLoadOptions opts = new ObjLoadOptions();
Scene scene = Scene.fromFile("model.obj", opts);
ファイルがMTLファイルを参照する場合(A) mtllib 図書館は、材料の定義を自動的に充電しようとします. MTL ファイルは OBJ フィルムと同じディレクトリにあり、または指示されたコースにあります。.
節約OBJとしての
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.obj");
OBJ ケース利用
- さまざまな3Dツールの間でメッシュデータを交換する。.
- OBJ形式で配布する資産図書館からモデルを輸入。.
- 複雑なシーン・イラクシーなしで地質学の迅速な検査。.
タグ:ステレオリトグラフィー
STLは3D印刷の標準形式です。材料、色、またはシーン階級なしで原料三角形地理を表しています.STLファイルは2つのバージョンに分けられます:ASCII(人間読みやすい)とバイナリー(コンパクト)。.
STLファイルのダウンロード
// Simple load
Scene scene = Scene.fromFile("part.stl");
// With explicit options
StlLoadOptions opts = new StlLoadOptions();
Scene scene = Scene.fromFile("part.stl", opts);
STLとしての節約
Scene scene = Scene.fromFile("model.obj");
scene.save("output.stl");
生産量を制御するには、使用 StlSaveOptions:
StlSaveOptions opts = new StlSaveOptions();
scene.save("output.stl", opts);
STL 見解
- STLは三角地質のみを保管しています.材料、構造、シーン階級はサポートされず、輸出に投げ込まれています。.
- STL 輸出 ない バイナリーSTLは、各ポリゴンの顔の最初の3つの垂直のみを書き、四角形とn-gonの顔は静かに曲がります。ASCII STLでは、すべての垂向指数を表面に書き、非三角的な顔のために歪んだ出力を生み出します。常に、前三位一体(全三輪の表情)を使用してST Lに輸出する。.
- バイナリーSTLは、大型モデルではASCII STLよりもはるかに小さい。.
- STL は、ターゲットが 3D プリンタまたはスライザーソフトウェアである場合の選択形式です。.
GLTF:GL 転送形式
glTFは、特にウェブやリアルタイムアプリケーションで3Dコンテンツの効率的な転送と充電を目的とした現代形式です。PBR材料、シーン・イラクチャー、アニメーションをサポートしています。.
ファイルのグラフィックアップ
Scene scene = Scene.fromFile("scene.gltf");
// With options
GltfLoadOptions opts = new GltfLoadOptions();
Scene scene = Scene.fromFile("scene.gltf", opts);
節約GLTFとしての
基本保存は、ファイル拡張子を使用してフォーマットを決定します:
scene.save("output.gltf");
詳細なコントロール、使用 GltfSaveOptions:
GltfSaveOptions opts = new GltfSaveOptions();
opts.setFlipCoordinateSystem(true);
opts.setPrettyPrint(true);
scene.save("output.gltf", opts);
グリッジオプション詳細
| メソッド | 目的 |
|---|---|
setFlipCoordinateSystem(boolean) | 輸出中にコードシステムの軸をフリップします. Y-up から Z-Up に変換する際、または逆です。. |
setPrettyPrint(boolean) | JSON の出力を読みやすさのためのインデントで形式化します。 false 製造中のファイルサイズが小さい。. |
GTTF 使用ケース
- ウェブベースの3D視聴者(three.js、Babylon.JS).
- リアルタイムアプリケーションとゲームエンジン。.
- ツールを通じてPBR材料の定義を維持する。.
FBX:映画ボックス(輸入のみ)
FBXは、ゲーム開発およびデジタルコンテンツ作成に広く使用されるAutodeskの所有形式です。 Aspose.3D FOSS for Java は FBx をサポートしています。 輸入のみ FBXへの輸出は利用できません。.
バイナリーFBXだけ。. FBX インポートは、二重の FB X ファイルのみを読みます。
ImportException("ASCII FBX format not yet supported - only binary FBX is supported").FBXからのノードの階層と材料抽出は完全に確認されていない;複雑なFBXシーンは、完全には充電することはできません。.
FBXファイルのダウンロード
Scene scene = Scene.fromFile("character.fbx");
// With options
FbxLoadOptions opts = new FbxLoadOptions();
Scene scene = Scene.fromFile("character.fbx", opts);
FBXを他のフォーマットに変換する
FBX 輸出がサポートされていないため、インポートされた FB X シーンを glTF、GLB、OBJ、または STL に変換します。:
Scene scene = Scene.fromFile("character.fbx");
// Save as GLB
GltfSaveOptions opts = new GltfSaveOptions();
opts.setContentType(FileContentType.BINARY);
scene.save("character.glb", opts);
FBX 利用ケース
- Autodesk ツール(Maya、3ds Max)から静的なメッシュ資産を輸入し、他のフォーマットに変換する。.
- バイナリーFBX地質を充電し、GLB/GLF、OBJまたはSTLに再輸出します。.
バッチ変換
一般的なワークフローは、ファイルのディレクトリ全体を一つのフォーマットから別のフォーラムに変換することです。:
import com.aspose.threed.*;
import java.io.File;
public class BatchConvert {
public static void main(String[] args) throws Exception {
File inputDir = new File("models/obj");
File outputDir = new File("models/gltf");
outputDir.mkdirs();
GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setPrettyPrint(true);
File[] objFiles = inputDir.listFiles(
(dir, name) -> name.toLowerCase().endsWith(".obj")
);
if (objFiles == null) return;
for (File objFile : objFiles) {
String baseName = objFile.getName()
.replaceFirst("\\.obj$", "");
Scene scene = Scene.fromFile(objFile.getAbsolutePath());
String outPath = new File(outputDir, baseName + ".gltf")
.getAbsolutePath();
scene.save(outPath, saveOpts);
System.out.println("Converted: " + objFile.getName()
+ " -> " + baseName + ".gltf");
}
}
}
すべての負担を負う .obj ディレクトリにファイルを、それぞれのグラトフに変換し、精密に印刷された出力で、結果を保存します。このパターンは、ソースとターゲットフォーマットの組み合わせのために調整することができます。.
クロスフォーマット変換の参考文献
次の表では、フォーマット間の変換時に期待するものが表示されます。.
| から | へ → | 地質学 | 材料 | 階級 | ノート |
|---|---|---|---|---|---|
| OBJ | STL | 保存 | 失われた | N/A | STLは物質的なサポートはありません。 |
| OBJ | グラス / GLB | 保存 | 変換するPBR | フラット | 可能な限りMTPマップされた材料 |
| STL | OBJ | 保存 | 無し | N/A | 源材なし |
| STL | グラス / GLB | 保存 | デフォルト | フラット | デフォルト材料の使用 |
| グラフ | OBJ | 保存 | シンプル化 | フラット | PBR 基本材料 |
| グラフ | STL | 保存 | 失われた | フラット | 地質だけ |
| FBX | OBJ | 保存 | シンプル化 | フラット | 材料簡素化 |
| FBX | STL | 保存 | 失われた | フラット | 地質だけ |
| FBX | グラス / GLB | 保存 | 変換するPBR | 保存 | 良い忠誠心 |
一般変換指針
- 地質学 一般的に、形式のカップルを通して保存され、1つの重要な例外:STLに輸出するとき、メッセージは完全に三角形の顔で構成される必要があります。.
- 材料 材料データを含む glTF と FBX の間で最善の生き残り. STL に変換することは常に材料を落とします. OBJ への変革は、基本的な MTL のモデルに素材を簡素化します。.
- 舞台の階級 グラトフォーマットファイルの間で保存されます. OBJ と STL はフラット構造を生成します. FBX の階級と材料抽出は、このバージョンでは完全に確認されていません。.
全部を組み合わせる
以下は、OBJファイルをアップロードし、そのノードを検証し GLBとglTFの両方に輸出する完全な例です。:
import com.aspose.threed.*;
public class FormatWorkflow {
public static void main(String[] args) throws Exception {
// Load
Scene scene = Scene.fromFile("input.obj");
// Inspect
System.out.println("Nodes in scene:");
for (Node child : scene.getRootNode().getChildNodes()) {
System.out.println(" " + child.getName());
Transform t = child.getTransform();
System.out.println(" Translation: "
+ t.getTranslation());
}
// Export to glTF with options
GltfSaveOptions gltfOpts = new GltfSaveOptions();
gltfOpts.setPrettyPrint(true);
scene.save("output.gltf", gltfOpts);
// Export to GLB (binary glTF)
GltfSaveOptions glbOpts = new GltfSaveOptions();
glbOpts.setContentType(FileContentType.BINARY);
scene.save("output.glb", glbOpts);
System.out.println("Export complete.");
}
}
概要
Aspose.3D FOSS for Java は複数のフォーマットを介して一貫した API を提供します。:
- OBJ シンプルなメッシュと基本材料の交換。.
- STL 地理学形式は3D印刷管のみ。.
- グラス / GLB – ウェブおよびリアルタイムの使用に適した現代的なPBR可能なフォーマット。
GltfSaveOptionsで、setContentType(FileContentType.BINARY)GLBの生産量。. - FBX 輸入のみ、ゲームエンジンやDCCツールから資産を充電するための豊富なフォーマット。.
特典のレッスンと、選択肢を保存する(ObjLoadOptions, StlLoadOptions, StlSaveOptions, GltfLoadOptions, GltfSaveOptions, FbxLoadOptions輸入・輸出プロセスに対する精密なコントロールが必要である場合。.
詳細については、参照してください。 ドキュメンタリー3D あるいは、源を参照して GitHub.