機能と特長

機能と特長

このページでは、すべての主要な機能領域を網羅しています aspose-3d-foss 26.1.0 動作するJavaの例付きです。.


シーンの読み込みと保存

scene.open() ファイルをロードします; scene.save() エクスポートします:

import com.aspose.threed.Scene;

Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");

静的ファクトリの代替手段:

Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");

フォーマット固有のオプション

渡す LoadOptions または SaveOptions 細かい制御のためのサブクラス:

import com.aspose.threed.*;

Scene scene = new Scene();
ObjLoadOptions opts = new ObjLoadOptions();
opts.setFlipCoordinateSystem(true);
scene.open("model.obj", opts);

GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setFlipCoordinateSystem(true);
scene.save("model.glb", saveOpts);

注: FBXはインポートのみサポートされています;FBXエクスポートはFOSSバージョンでは実装されていません。Only バイナリ FBX ファイルはインポートに対応しています — ASCII FBX はエラーになります ImportException.


シーン グラフの構築

ノードを作成し、エンティティをアタッチします:

Scene scene = new Scene();
Node root = scene.getRootNode();

Mesh mesh = new Mesh("myMesh");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.createPolygon(0, 1, 2);

Node meshNode = root.createChildNode("triangle", mesh);

メッシュ操作

作成する Mesh 制御点とポリゴンを使用してプログラム的に:

Mesh mesh = new Mesh("custom");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.getControlPoints().add(new Vector4(0, 10, 0));
mesh.createPolygon(0, 1, 2, 3);

トランスフォーム

すべての Node がある Transform:

Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);

ワールド空間を介して読み取る node.getGlobalTransform().getMatrix().


マテリアル

ノードにマテリアルを割り当てます:

PbrMaterial mat = new PbrMaterial("shiny");
mat.setAlbedo(new Vector4(0.8, 0.2, 0.2, 1.0));
mat.setMetallicFactor(0.5);
mat.setRoughnessFactor(0.3);

scene.getRootNode().createChildNode("red_mesh", mesh, mat);

マテリアルタイプ: Material (ベース), PbrMaterial (PBR メタリック-ラフネス)。.


ヒントとベストプラクティス

  • 使用する Scene.fromFile() カスタムオプションが不要なワンライナーのロードに使用する
  • プログラムでメッシュを構築するには createPolygon() カスタムジオメトリ用に
  • 使用する .glb コンパクトなバイナリ glTF 出力用の拡張機能
  • 確認する node.getEntity() != null キャストする前に
  • STL エクスポートは 行わない ポリゴンの面を自動的に三角形化しません。バイナリ STL エクスポートは各ポリゴン面の最初の 3 頂点だけを書き込みます — 四角形や n 頂点の面は黙って切り捨てられます。ASCII STL エクスポートはすべての頂点インデックスを書き込み、三角形でない面に対して不正なファセットブロックを生成します。データ損失や無効な出力を防ぐため、STL エクスポートには常に事前に三角形化されたメッシュ(すべて三角形の面)を渡してください。.

一般的な問題

問題原因修正
読み込み時の例外未対応または破損したファイルファイルが3Dビューアで開くことを確認してください
OBJ読み込み後にマテリアルが欠落しています.mtl ファイルが見つかりません配置 .mtl 隣に .obj; マテリアルが有効になっていることを確認してください
インポート後のスケール不一致異なる単位系適用 Transform ロード後にスケール

FAQ

ファイルの形式はどうやって検出しますか??

FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());

ストリームからロードできますか??

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

インポートとエクスポートの両方に対応しているフォーマットはどれですか??

OBJ、STL、glTF/GLB は双方向にサポートされています。FBX はインポートのみで、エクスポートは FOSS バージョンでは実装されていません。.


API リファレンス概要

クラス / メソッド説明
Sceneトップレベルの3Dシーンコンテナ
scene.open()パスまたはストリームで3Dファイルをロードする
scene.save()シーンをファイルまたはストリームにエクスポートする
Scene.fromFile()ロードして返す静的ファクトリ Scene
Nodeシーン階層ノード
node.createChildNode()子ノードを作成してアタッチする
Mesh制御点とフェイスリストを持つポリゴンメッシュ
mesh.createPolygon()ポリゴンフェイスを定義する
Mesh.toMesh()メッシュジオメトリを変換またはクローンする
Transformローカルの平行移動、回転、スケール
FileFormatフォーマット用のレジストリとデテクタ
 日本語