機能と特長
機能と特長
このページでは、すべての主要な機能領域を網羅しています 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 | フォーマット用のレジストリとデテクタ |