View3D QML Type

3Dシーンをレンダリングするためのビューポートを提供します。詳細...

Import Statement: import QtQuick3D

プロパティ

方法

  • vector3d mapFrom3DScene(vector3d scenePos)
  • vector3d mapTo3DScene(vector3d viewPos)
  • pickResult pick(float x, float y)
  • pickResult pick(float x, float y, Model model) (since 6.8)
  • List<pickResult> pickAll(float x, float y) (since 6.2)
  • List<pickResult> pickSubset(float x, float y, list<Model> models) (since 6.8)
  • pickResult rayPick(vector3d origin, vector3d direction) (since 6.2)
  • List<pickResult> rayPickAll(vector3d origin, vector3d direction) (since 6.2)
  • setTouchpoint(Item target, point position, int pointId, bool pressed) (since 6.8)

詳細説明

View3Dは、3Dシーンをレンダリングするための2Dサーフェスを提供する。このサーフェスは、Qt Quick ItemQt Quick シーンに配置することができます。

View3D の子としてNode-based アイテムの階層を直接定義すると、これが View3D の暗黙のシーンになります。

また、importScene プロパティを使用し、視覚化したいシーンのルートNode に設定することで、既存のシーンを参照することも可能です。このNode は、View3D の祖先である必要はなく、同じシーンをインポートする複数の View3D を持つことができます。

これは、View3D の例で示されています。

View3Dが両方とも子NodesimportScene プロパティが同時に設定されている場合、両方のシーンは、同じシーンの兄弟サブツリーであるかのようにレンダリングされます。

シーンのレンダリング方法を制御するには、environment プロパティを設定します。SceneEnvironment タイプには、背景色、トーンマッピング、アンチエイリアスなど、調整可能なビジュアルプロパティが多数あります。QtQuick3D.Helpers モジュールのExtendedSceneEnvironment は、SceneEnvironment をさらに機能拡張し、一般的な後処理エフェクトを追加しています。

さらに、View3Dで何かをレンダリングするには、シーンにCamera 。シーンにCamera が1つしかない場合は、自動的にこれが選択されます。それ以外の場合は、camera プロパティを使用してカメラを選択できます。Camera は、シーンのどの部分が表示され、それらが2Dサーフェスにどのように投影されるかを決定します。

デフォルトでは、3Dシーンはまずオフスクリーンバッファにレンダリングされ、レンダリングが完了すると、Qt Quick の残りのシーンと合成されます。これは最大レベルの互換性を提供しますが、グラフィックス・ハードウェアによってはパフォーマンスが低下する場合があります。この場合、renderMode プロパティを使用して、View3D をウィンドウにレンダリングする方法を切り替えることができます。

デフォルトの OffscreenrenderMode を持つ View3D は、暗黙的にtexture provider でもあります。つまり、ShaderEffect またはTexture.sourceItem は、すべてのアイテムが同じwindow 内にある限り、View3D を直接参照することができます。他のItem と同様に、View3D またはその祖先の 1 つを、テクスチャベースのitem layer に切り替えることも可能です。

Qt Quick 3D - View3D の例も参照してください

プロパティ Documentation

このプロパティは、シーンのレンダリングに使用するCamera を指定します。このプロパティが設定されていない場合、シーン内で最初に有効化されたカメラが使用されます。

注意: このプロパティにvisible 以外のカメラが含まれている場合、それ以上カメラを探す試みは行われない。

PerspectiveCameraOrthographicCameraFrustumCamera 、およびCustomCameraも参照してください


effectiveTextureSize : size [since 6.7]

このプロパティは、基礎となるカラー(および深度/ステンシル)バッファのサイズをピクセル単位で公開します。このプロパティは、GUI(メイン)スレッド、QMLバインディング、またはJavaScriptで使用するために用意されています。

これは読み取り専用のプロパティです。

注意: このプロパティは、renderModeOffscreen に設定されている場合にのみ関連します。

このプロパティは Qt 6.7 で導入されました。

explicitTextureWidthexplicitTextureHeightDebugViewも参照してください


このプロパティは、シーンのレンダリングに使用されるSceneEnvironment を指定します。

注: このプロパティをnull に設定すると、SceneEnvironment はデフォルトにリセットされます。

SceneEnvironmentも参照してください


explicitTextureHeight : int [since 6.7]

アイテムの関連テクスチャの高さをピクセル単位で指定します。アイテムのサイズに依存しない固定テクスチャ サイズが必要な場合に関連します。このサイズはアイテムのジオメトリ(シーン内のサイズと配置)には影響しないので、テクスチャの内容はアイテムの領域に拡大または縮小されて(場合によっては引き伸ばされて)表示されます。

デフォルトの値は0 です。値が 0 の場合、テクスチャのサイズはアイテムのサイズに従います。(texture size in pixels =item's logical size *device pixel ratio) です。

注: このプロパティは、renderModeOffscreen に設定されている場合にのみ関係します。それ以外の場合、その値は無視されます。

このプロパティは Qt 6.7 で導入されました。

explicitTextureWidth,effectiveTextureSize,DebugViewも参照してください


explicitTextureWidth : int [since 6.7]

アイテムの関連テクスチャの幅(ピクセル単位)。アイテムのサイズに依存しない固定テクスチャサイズが必要な場合に関連します。このサイズはアイテムのジオメトリ(シーン内のサイズと配置)には影響しないので、テクスチャの内容はアイテムの領域に拡大または縮小されて(場合によっては引き伸ばされて)表示されます。

デフォルトの値は0 です。値が 0 の場合、テクスチャのサイズはアイテムのサイズに従います。(texture size in pixels =item's logical size *device pixel ratio) です。

注: このプロパティは、renderModeOffscreen に設定されている場合にのみ関係します。それ以外の場合、その値は無視されます。

このプロパティは Qt 6.7 で導入されました。

explicitTextureHeight,effectiveTextureSize,DebugViewも参照してください


extensions : List<QtQuick3D::Object3D>

このプロパティには、このView3D で使用するユーザー拡張機能のリストが含まれます。

RenderExtensionも参照して ください。


importScene : QtQuick3D::Node

このプロパティは、ビューポートにレンダリングするシーンの参照ノードを定義します。この参照ノードは、View3D の子ノードである必要はありません。この参照ノードは、View3D の子ノードがある場合は、その子ノードと兄弟になります。

注: このプロパティは 1 回のみ設定でき、それ以降の変更は無効です。

また、View3D の子としてNode-based アイテムの階層を直接定義することもでき、その場合、これはView3D の暗黙のシーンになります。

View3D の現在のシーンを返すには、scene プロパティを使用してください。

Nodeも参照してください


renderFormat : enumeration [since 6.4]

このプロパティは、バッキング・テクスチャのフォーマットを決定します。renderModeView3D.Offscreen であるなど、View3D がテクスチャにレンダリングされる場合にのみ適用されます。

デフォルトはShaderEffectSource.RGBA8 です。

このフォーマットが実行時に基礎となるグラフィックドライバによってサポートされていない場合、RGBA8が使用されます。

このプロパティは Qt 6.4 で導入されました。

QtQuick::ShaderEffectSource::formatQtQuick::Item::layer.formatも参照してください


renderMode : enumeration

このプロパティは、View3D が、Qt Quick シーンの他の部分とどのように結合されるかを決定します。

デフォルトでは、シーンは中間ステップとしてオフスクリーンバッファにレンダリングされます。このオフスクリーンバッファは、他のQt Quick Item のようにウィンドウ(またはレンダーターゲット)にレンダリングされます。

ほとんどのユーザーにとって、レンダリングモードを変更する必要はなく、このプロパティは無視しても問題ありません。しかし、一部のグラフィックハードウェアでは、オフスクリーンバッファの使用がパフォーマンスのボトルネックになることがあります。そのような場合は、他のモードを試す価値があるかもしれません。

定数説明
View3D.Offscreenシーンは、中間ステップとしてオフスクリーンバッファにレンダリングされます。このオフスクリーンバッファは、Qt Quick シーンの残りの部分と合成されます。
View3D.Underlayシーンは、Qt Quick の残りのシーンがレンダリングされる前に、ウィンドウに直接レンダリングされます。このモードでは、View3D を他のQt Quick アイテムの上に配置することはできません。
View3D.Overlayシーンは、Qt Quick がレンダリングされた後、ウィンドウに直接レンダリングされます。このモードでは、View3D は常に他のQt Quick アイテムの上にある。
View3D.InlineView3D のシーングラフはメインのシーングラフに埋め込まれ、他のQt Quick Item と同じ順序付けセマンティクスが適用される。このモードは、奥行きベースの3Dコンテンツを2Dのシーングラフに注入するため、シーンの内容によっては微妙な問題を引き起こす可能性があるため、特別な必要が生じない限り、使用は推奨されません。

デフォルトはView3D.Offscreen です。

注意: レンダリングモードを変更する場合、View3D.Offscreen (デフォルト)は、完全なグラフィック忠実度を保証する唯一のモードであることに注意することが重要です。他のモードには、視覚的な不具合を引き起こす可能性のある制限があるため、このプロパティを変更する際には、視覚的な出力が正しく見えるかどうかを確認することが重要です。

View3D 注意: Underlay、Overlay、または Inline モードを使用する場合、QQuickWindow またはQQuickView を表示する前に、QQuickGraphicsConfiguration::setDepthBufferFor2D() を使用してQt Quick シーングラフの深度バッファの書き込みを無効にすると便利で、場合によっては必要になることがあります。


renderStats : QtQuick3D::RenderStats [read-only]

このプロパティは、fpsframeTimerenderTimesyncTimemaxFrameTime など、フレームのレンダリングに関する統計情報を提供します。


scene : QtQuick3D::Node [read-only]

View3D のシーンのルートNode を返します。

View3D で視覚化される 3D シーンを定義する:

  • View3D の子としてNode-based アイテムの階層を直接定義し、これがView3D の暗黙のシーンになります。
  • importScene プロパティを使用して既存のシーンを参照し、ビジュアライズしたいシーンのルートNode に設定します。このNode は、View3D の祖先である必要はなく、同じシーンをインポートする複数の View3D を持つことができます。

importSceneも参照してください


メソッド ドキュメント

vector3d mapFrom3DScene(vector3d scenePos)

scenePos をシーン空間(3D)からビュー空間(2D)に変換します。

返される x- 値と y- 値はビュー座標で、左上隅は [0, 0] で、右下隅は [width, height] です。返される z 値には、シーン座標における、フラストラムのクリップ近傍平面(clipNear)からscenePos までの距離が含まれます。距離が負の場合は、scenePos がアクティブカメラの後ろにあることを意味します。scenePos がシーン内の位置にマッピングできない場合は、[0, 0, 0] の位置が返されます。

この関数は、camera がビューに割り当てられていることを必要とします。

mapTo3DScene() およびCamera.mapToViewport()も参照してください


vector3d mapTo3DScene(vector3d viewPos)

viewPos をビュー空間(2D)からシーン空間(3D)に変換します。

viewPos の x 値と y 値はビュー座標で、左上隅を [0, 0]、右下隅を [width, height] とします。z値は、シーン座標におけるフラストラムのクリップ近傍平面(clipNear)からの距離として解釈されます。

viewPos がシーン内の位置にうまくマッピングできない場合は、[0, 0, 0] の位置が返されます。

この関数は、camera がビューに割り当てられていることを必要とします。

mapFrom3DScene() およびCamera.mapFromViewport()も参照してください


pickResult pick(float x, float y)

このメソッドは、ビュー座標xy からシーン内にレイを「射出」し、シーン内のオブジェクトとの最も近い交点に関する情報を返します。

これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。


[since 6.8] pickResult pick(float x, float y, Model model)

このメソッドは、ビュー座標xy からシーンにレイを "放ち"、レイと指定されたmodel との交点に関する情報を返します。

これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。

このメソッドは Qt 6.8 で導入されました。


[since 6.2] List<pickResult> pickAll(float x, float y)

このメソッドは、ビュー座標xy からシーンにレイを "射出 "し、シーン内のオブジェクトとの交差に関する情報のリストを返します。返されるリストはカメラからの距離でソートされ、最も近い交差点が最初に、最も遠い交差点が最後に表示されます。

これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。

このメソッドは Qt 6.2 で導入されました。


[since 6.8] List<pickResult> pickSubset(float x, float y, list<Model> models)

このメソッドは、ビュー座標xy からシーンにレイを「射出」し、渡されたリストmodels との交点に関する情報を返します。 これは渡されたモデルのリストに対してのみチェックされます。返されるリストはカメラからの距離でソートされ、最も近い交差点が最初に、最も遠い交差点が最後に表示されます。

これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。

property list<Model> と JavaScript の動的なモデル配列の両方で動作します。

このメソッドは Qt 6.8 で導入されました。


[since 6.2] pickResult rayPick(vector3d origin, vector3d direction)

このメソッドは、origindirection からシーンにレイを "射出 "し、シーン内のオブジェクトとの最も近い交点に関する情報を返す。

これは例えば、シーン内の任意のオブジェクトの位置と前方ベクトルで呼び出すことができ、アイテムの前にあるオブジェクトを確認することができます。これにより、シーン内のどのポイントからでもピッキングが可能になります。

このメソッドはQt 6.2で導入されました。


[since 6.2] List<pickResult> rayPickAll(vector3d origin, vector3d direction)

このメソッドは、origindirection を始点としてシーンにレイを "射出 "し、シーン内のオブジェクトとの最も近い交点に関する情報のリストを返す。リストは方向ベクトルに沿って原点からの距離でソートされ、最も近い交差点が最初に、最も遠い交差点が最後に表示されます。

これは、例えば、シーン内の任意のオブジェクトの位置と前方ベクトルで呼び出すことができ、アイテムの前にあるオブジェクトを確認することができます。これにより、シーン内のどのポイントからでもピッキングが可能になります。

このメソッドはQt 6.2で導入されました。


[since 6.8] setTouchpoint(Item target, point position, int pointId, bool pressed)

合成タッチイベントをtarget に送信し、IDpointId のタッチポイントをposition に移動させ、pressed が押されたかどうかを判断する。また、pointId が以前に別のアイテムでアクティブになっていた場合は、適切なタッチ リリース イベントも送信します。

このメソッドは Qt 6.8 で導入されました。


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.