Javaで3Dモデルをロードする方法

Javaで3Dモデルをロードする方法

aspose-3d-foss for Java は、3D ファイルを開くためのシンプルな API を提供します。ファイルを Scene オブジェクトにロードした後、ノード階層をたどり、ジオメトリ データを読み取ることができます。.

ステップバイステップ ガイド

ステップ 1: パッケージをインストールする

Maven 依存関係を追加してください::

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-3d-foss</artifactId>
  <version>26.1.0</version>
</dependency>

ステップ 2: Scene クラスをインポートする

import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.Mesh;

ステップ 3: ファイルをロードする

Scene scene = new Scene();
scene.open("model.obj");

または静的ファクトリを使用します:

Scene scene = Scene.fromFile("model.obj");

サポートされている形式: OBJ、STL、glTF 2.0 / GLB、FBX(バイナリのみ — ASCII FBX はサポートされておらず、例外がスローされます ImportException).


ステップ 4: Scene ノードを走査する

void walk(Node node, int depth) {
    String indent = " ".repeat(depth * 2);
    System.out.println(indent + "Node: " + node.getName());
    for (Node child : node.getChildNodes()) {
        walk(child, depth + 1);
    }
}

walk(scene.getRootNode(), 0);

ステップ 5: メッシュ データにアクセスする

for (Node node : scene.getRootNode().getChildNodes()) {
    if (node.getEntity() instanceof Mesh) {
        Mesh mesh = (Mesh) node.getEntity();
        System.out.println("Mesh '" + node.getName() + "': " +
            mesh.getControlPoints().size() + " vertices, " +
            mesh.getPolygonCount() + " polygons");
    }
}

一般的な問題と対策

ロード時の例外

ファイルが破損していないこと、そして形式がサポートされていること(OBJ、STL、glTF、FBX)を確認してください。.

エンティティへのアクセス時に NullPointerException が発生

すべてのノードがジオメトリを持つわけではありません。常にチェックしてください node.getEntity() instanceof Mesh キャストする前に.

座標系の不一致

使用する ObjLoadOptions.setFlipCoordinateSystem(true) または、ロード後に回転を適用します。.


よくある質問 (FAQ)

どのフォーマットをロードできますか??

OBJ、STL(バイナリおよび ASCII)、glTF 2.0 / GLB、そして FBX。FBX の場合、唯一 バイナリ FBX がサポートされています。ASCII FBX ファイルは例外をスローします ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

InputStreamからロードできますか??

はい。. scene.open() 受け入れます InputStream.

このライブラリはスレッドセーフですか??

Scene インスタンスは独立しています。別々のスレッドから別々のインスタンスへ別々のファイルをロードすることは安全です。.

 日本語