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 ディレクトリにファイルを、それぞれのグラトフに変換し、精密に印刷された出力で、結果を保存します。このパターンは、ソースとターゲットフォーマットの組み合わせのために調整することができます。.

クロスフォーマット変換の参考文献

次の表では、フォーマット間の変換時に期待するものが表示されます。.

からへ →地質学材料階級ノート
OBJSTL保存失われたN/ASTLは物質的なサポートはありません。
OBJグラス / GLB保存変換するPBRフラット可能な限りMTPマップされた材料
STLOBJ保存無しN/A源材なし
STLグラス / GLB保存デフォルトフラットデフォルト材料の使用
グラフOBJ保存シンプル化フラットPBR 基本材料
グラフSTL保存失われたフラット地質だけ
FBXOBJ保存シンプル化フラット材料簡素化
FBXSTL保存失われたフラット地質だけ
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.