Aspose.3D を使用して 3D モデルをレンダリングする
概要
Aspose.3D は、Python アプリケーションにおける 3D モデルのレンダリングと操作を可能にします。コアクラスとして以下を提供します。 Scene, Node, Mesh, Geometry, Camera,、および Light は、python 3d visualization、python 3d game、3d python 用の 3D コンテンツを構築および修正するためのものです library のユースケースです。.
API は次をサポートします scene を介したグラフ構築 Node と Entity 階層、ジオメトリ定義を通じて Mesh と Geometry,、およびレンダリング用のカメラ/ライト設定。アニメーション機能には AnimationClip, AnimationNode, AnimationChannel,と KeyframeSequence キーフレームベースのモーション用(読み取り専用アクセス;アニメーションエクスポートはまだ実装されていません)。アセットメタデータは以下からアクセスできます AssetInfo,、一方 scene オブジェクトは継承します A3DObject および INamedObject 命名と property 管理。.
主な機能
Aspose.3D は 3D モデルを扱うための Python API を提供し、次のようなクラスを通じてコア操作をサポートします Scene, Mesh, Node, Geometry,、および AnimationClip.。開発者は 3D コンテンツをロード、操作、エクスポートでき、python 3d visualization、python 3d game、3d python engine のワークフローで利用できます。.
- 複数の 3D ファイルフォーマット(GLTF2 や WAVEFRONT_OBJ を含む)へのサポートは、
FileFormatクラスにより、3d python ゲームおよび 3d python ビジュアライゼーションプロジェクトでシームレスなインポートとエクスポートが可能になります。FBX のサポートは実験的で、トークナイザのみ対応しており、フルパーサは進行中です。. - メッシュジオメトリの直接操作は、
MeshおよびGeometryクラスを使用すると、頂点、ポリゴン、および影や可視性などのレンダリングプロパティを正確に制御できます。. - アニメーション構造は、
AnimationClip,AnimationNode,、KeyframeSequenceクラスは検査および構築できます;ただし、このバージョンではアニメーションのエクスポートはまだ実装されていません。. - シーン階層管理は、
Node,Entity,、A3DObjectは、複雑な Python 3D 可視化シーン向けに、3D オブジェクト、カメラ、ライトの構造化された整理を提供します。. - プロパティとメタデータの処理は、
PropertyCollection,AssetInfo,、およびINamedObjectカスタム属性や、タイトル、著者、キーワードなどのドキュメントレベルのメタデータをサポートします。.
前提条件
Aspose.3D を 3D Python 可視化に使用するには、Python 3.7 以降がインストールされていることを確認してください。インストールする library pip を使用してコマンド pip install aspose-3d-foss.。このパッケージは、次のようなコアクラスを提供します。 Scene, Mesh, Node, Entity, Geometry, Camera, Light,、および FileFormat 3D Python ゲームおよび 3D Python エンジンのワークフローで使用するための.
pip install aspose-3d-fossimport aspose.threed
print('Installation successful')コード例
Aspose.3D for Python では、3D シーンの「レンダリング」は、OBJ、GLTF2、STL などのサポートされた出力フォーマットへエクスポートすることを意味します。ピクセルベースのラスタライズはサポートされていません;使用 scene.save() 3D 出力ファイルを生成するために。.
from aspose.threed import Scene, FileFormat, Mesh, Node
# Load a scene from file
scene = Scene.from_file("model.obj")
# Inspect the root node
root = scene.root_node
for child in root.child_nodes:
if isinstance(child.entity, Mesh):
print(f"Mesh: {child.name}, control points: {len(child.entity.control_points)}")
# Export to GLTF 2.0 binary — use extension-based detection or FileFormat.GLTF2() factory
# Note: FileFormat.GLTF2_BINARY is None (stub constant, not implemented).
# Use the .glb extension for auto-detection, or FileFormat.GLTF2() for explicit format.
scene.save("output.glb")
print("Scene exported to output.glb")ベストプラクティス
Aspose.3D を Python 3D 可視化や Python 3D ゲームエンジンの構築に使用する際は、再利用することでメモリ効率を優先してください。 Scene および Mesh 可能な限りインスタンスを使用してください。特にバッチ 3D Python 変換のために多数のファイルを処理する際は、タイトなループ内で冗長なオブジェクトの作成を避けてください。.
- 再利用
Sceneエクスポートサイクル全体でオブジェクトを再利用し、ファイルごとに新しいオブジェクトをインスタンス化しないようにします。. - 推奨
Mesh静的ジオメトリに対して共有コントロールポイントを用いた再利用により、割り当てオーバーヘッドを削減します。. - フォーマット固有の保存オプションを使用します(例:.,
GltfSaveOptions,StlSaveOptions). - python の 3D 可視化パイプラインにおけるディスク I/O のボトルネックを回避するため、インメモリのエクスポートワークフローでは BytesIO ストリームを使用してください。.
トラブルシューティング
このセクションでは、Aspose.3D を使用した 3D Python 可視化およびゲーム開発ワークフローで遭遇する一般的な問題を取り上げ、 Scene, Node, Mesh,、および AnimationClip クラス。.
未サポートの操作は NotImplementedError を送出します
特定のエクスポーターを介したエクスポートや、レンダリング関連のメソッド(例: get_entity_renderer_key() は実装されておらず、NotImplementedError が発生します。これは、現在のコア機能が version Aspose.3D for Python が不完全です。ランタイムエラーを防ぐため、未サポートのメソッドを呼び出す前に API サーフェスでメソッドの利用可能性を確認してください。使用する Scene.from_file() および scene.save() サポートされているロードおよびエクスポートワークフロー用に。.
NotImplementedError を送出する Mesh メソッド
以下の Mesh メソッドは API サーフェスで宣言されていますが、このリリースでは例外をスローします。 NotImplementedError このリリースでは例外が発生します。ロード済みまたは構築された Mesh インスタンスでは呼び出さないでください::
| メソッド | 備考 |
|---|---|
mesh.optimize() | メッシュ最適化 — 未実装 |
mesh.do_boolean(...) | 汎用ブール演算 — 以下の具体的なメソッドを使用してください |
mesh.union(other) | CSG union — まだ実装されていません |
mesh.difference(other) | CSG difference — まだ実装されていません |
mesh.intersect(other) | CSG intersection — まだ実装されていません |
mesh.is_manifold() | Manifold test — まだ実装されていません |
Mesh(height_map, ...) | Height-map constructor variant — まだ実装されていません |
ワークフローでこれらの操作が必要な場合は、次のようなライブラリでジオメトリを処理してください trimesh または open3d そして、次を使用して結果を再インポートします Scene.from_file() または新しいものを構築して Mesh raw データから control_points そして polygons.
アニメーション機能は読み取り専用です
アニメーション関連のクラスとしては AnimationClip, AnimationNode, AnimationChannel,、および KeyframeSequence 検査は可能ですが、アニメーションのエクスポートは機能していません。python 3d ゲームエンジンや python 3d 可視化ツールを構築する開発者は、完全なエクスポートサポートがリリースされるまで、アニメーションデータを読み取り専用として扱うべきです。.
テクスチャ画像の読み込みはサポートされていません
以下のテクスチャ画像の読み込みは materials は Aspose.3D では実装されていません。たとえ material properties が~を介して設定された場合 Mesh または Geometry,、テクスチャマッピングは正しくレンダリングされません。静的モデルのエクスポートでは、画像ベースのテクスチャではなく、単色または頂点ベースのシェーディングを使用してください。.
Camera および Geometry レンダリングはサポートされていません
その Camera および Geometry クラスは、レンダリング関連のメソッド(例として)で NotImplementedError を送出します get_entity_renderer_key().。これらのクラスはインスタンス化および設定は可能ですが、ピクセルラスタライズパイプラインでは使用できません。使用 Node と Mesh 用 scene 構成およびエクスポートワークフローです。.
FAQ
Aspose.3D for Python はラスタライズ画像出力(PNG、JPEG)をサポートしていますか??
いいえ。Aspose.3D for Python はピクセルベースのラスタライズを行いません。このライブラリにおける「レンダリング」とは、OBJ、GLTF2、STL、または 3MF などの 3D 出力フォーマットへシーンをエクスポートすることを意味します using scene.save().。画像出力の場合は、別個のレンダリングエンジンと統合してください。.
サポートされているエクスポートフォーマットはどれですか??
サポートされているエクスポートフォーマットには OBJ、glTF 2.0 / GLB、STL(バイナリおよび ASCII)、COLLADA(DAE)、および 3MF が含まれます。呼び出す際にはファイル拡張子を使用してください scene.save() は自動フォーマット検出に使用されます。明示的にフォーマットを制御する場合は、ファクトリメソッドを使用してください FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(), および FileFormat.MICROSOFT_3MF_FORMAT(). 注: 属性スタイルの定数は例えば FileFormat.GLTF2_BINARY, FileFormat.GLTF, FileFormat.STLASCII, FileFormat.STL_BINARY, および FileFormat.MICROSOFT_3MF は None スタブであり、使用すべきではありません。FBX エクスポートは 発生させます NotImplementedError 現在のバージョンでは.
ロードした 3D ファイルからアニメーションデータを読み取ることはできますか??
アニメーション構造は、読み込まれたファイルで、次を介してアクセスできます AnimationClip, AnimationNode, および関連クラスですが、アニメーションデータの変更や再エクスポートはまだサポートされておらず、NotImplementedError が発生します。.
API リファレンス概要
Aspose.3D は、Python における 3D シーン操作用のコアクラスを提供し、以下を含みます Scene, Node, Mesh, および Geometry. Python 3D ゲーム、Python 3D エンジン、または Python 3D 可視化プロジェクトに取り組む開発者は、これらのクラスを使用して 3D コンテンツをプログラムで構築および変更できます。The Scene クラスはルートコンテナとして機能し、 Node オブジェクトは形成します scene グラフ階層を形成し、 Mesh インスタンスは幾何学的形状を定義し、 Geometry データ。.
Aspose.3D におけるアニメーションサポートは、 AnimationClip, AnimationNode, AnimationChannel, および KeyframeSequence を定義するために time-ベースの変換。アニメーションのエクスポートはまだ実装されていませんが、開発者はこれらのクラスを使用してアニメーション構造を検査できます。The Extrapolation クラスと ExtrapolationType enum は、キーフレーム範囲外の動作を制御できるようにします。.
Entity-レベル properties 可視性やシャドウキャスティングなどは、~を経由で公開されます Geometry.visible, Geometry.cast_shadows,、そして Geometry.receive_shadows. Scene グラフ関係は、~を通じて管理されます Entity.parent_node そして Entity.parent_nodes,、一方で Node オブジェクトは公開します GlobalTransform のために translation, rotation,、そして scale. Camera そして Light entities 継承する Entity および、~を介した除外をサポートする excluded.
関連項目
Aspose.3D は Python における 3D モデル操作のためのコアクラスを提供し、以下を含む Scene, Mesh, Node, Geometry,、および AnimationClip.。これらのクラスは、一貫した API インターフェースを通じて、Python の 3D 可視化、Python の 3D ゲーム開発、および 3D Python ワークフローをサポートします。.