View3D QML Type
3Dシーンをレンダリングするためのビューポートを提供します。詳細...
Import Statement: | import QtQuick3D |
プロパティ
- camera : QtQuick3D::Camera
- effectiveTextureSize : size
(since 6.7)
- environment : QtQuick3D::SceneEnvironment
- explicitTextureHeight : int
(since 6.7)
- explicitTextureWidth : int
(since 6.7)
- extensions : List<QtQuick3D::Object3D>
- importScene : QtQuick3D::Node
- renderFormat : enumeration
(since 6.4)
- renderMode : enumeration
- renderStats : QtQuick3D::RenderStats
- scene : QtQuick3D::Node
方法
- 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 Item 、Qt Quick シーンに配置することができます。
View3D の子としてNode-based アイテムの階層を直接定義すると、これが View3D の暗黙のシーンになります。
また、importScene プロパティを使用し、視覚化したいシーンのルートNode に設定することで、既存のシーンを参照することも可能です。このNode は、View3D の祖先である必要はなく、同じシーンをインポートする複数の View3D を持つことができます。
これは、View3D の例で示されています。
View3Dが両方とも子Nodes 、importScene プロパティが同時に設定されている場合、両方のシーンは、同じシーンの兄弟サブツリーであるかのようにレンダリングされます。
シーンのレンダリング方法を制御するには、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 : QtQuick3D::Camera |
このプロパティは、シーンのレンダリングに使用するCamera を指定します。このプロパティが設定されていない場合、シーン内で最初に有効化されたカメラが使用されます。
注意: このプロパティにvisible 以外のカメラが含まれている場合、それ以上カメラを探す試みは行われない。
PerspectiveCamera 、OrthographicCamera 、FrustumCamera 、およびCustomCameraも参照してください 。
effectiveTextureSize : size |
このプロパティは、基礎となるカラー(および深度/ステンシル)バッファのサイズをピクセル単位で公開します。このプロパティは、GUI(メイン)スレッド、QMLバインディング、またはJavaScriptで使用するために用意されています。
これは読み取り専用のプロパティです。
注意: このプロパティは、renderMode がOffscreen
に設定されている場合にのみ関連します。
このプロパティは Qt 6.7 で導入されました。
explicitTextureWidth 、explicitTextureHeight 、DebugViewも参照してください 。
environment : QtQuick3D::SceneEnvironment |
このプロパティは、シーンのレンダリングに使用されるSceneEnvironment を指定します。
注: このプロパティをnull
に設定すると、SceneEnvironment はデフォルトにリセットされます。
SceneEnvironmentも参照してください 。
explicitTextureHeight : int |
アイテムの関連テクスチャの高さをピクセル単位で指定します。アイテムのサイズに依存しない固定テクスチャ サイズが必要な場合に関連します。このサイズはアイテムのジオメトリ(シーン内のサイズと配置)には影響しないので、テクスチャの内容はアイテムの領域に拡大または縮小されて(場合によっては引き伸ばされて)表示されます。
デフォルトの値は0
です。値が 0 の場合、テクスチャのサイズはアイテムのサイズに従います。(texture size in pixels
=item's logical size
*device pixel ratio
) です。
注: このプロパティは、renderMode がOffscreen
に設定されている場合にのみ関係します。それ以外の場合、その値は無視されます。
このプロパティは Qt 6.7 で導入されました。
explicitTextureWidth,effectiveTextureSize,DebugViewも参照してください 。
explicitTextureWidth : int |
アイテムの関連テクスチャの幅(ピクセル単位)。アイテムのサイズに依存しない固定テクスチャサイズが必要な場合に関連します。このサイズはアイテムのジオメトリ(シーン内のサイズと配置)には影響しないので、テクスチャの内容はアイテムの領域に拡大または縮小されて(場合によっては引き伸ばされて)表示されます。
デフォルトの値は0
です。値が 0 の場合、テクスチャのサイズはアイテムのサイズに従います。(texture size in pixels
=item's logical size
*device pixel ratio
) です。
注: このプロパティは、renderMode がOffscreen
に設定されている場合にのみ関係します。それ以外の場合、その値は無視されます。
このプロパティは Qt 6.7 で導入されました。
explicitTextureHeight,effectiveTextureSize,DebugViewも参照してください 。
extensions : List<QtQuick3D::Object3D> |
このプロパティには、このView3D で使用するユーザー拡張機能のリストが含まれます。
RenderExtensionも参照して ください。
importScene : QtQuick3D::Node |
renderFormat : enumeration |
このプロパティは、バッキング・テクスチャのフォーマットを決定します。renderMode がView3D.Offscreen
であるなど、View3D がテクスチャにレンダリングされる場合にのみ適用されます。
デフォルトはShaderEffectSource.RGBA8
です。
このフォーマットが実行時に基礎となるグラフィックドライバによってサポートされていない場合、RGBA8が使用されます。
- ShaderEffectSource.RGBA8
- ShaderEffectSource.RGBA16F
- ShaderEffectSource.RGBA32F
このプロパティは Qt 6.4 で導入されました。
QtQuick::ShaderEffectSource::format とQtQuick::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.Inline | View3D のシーングラフはメインのシーングラフに埋め込まれ、他のQt Quick Item と同じ順序付けセマンティクスが適用される。このモードは、奥行きベースの3Dコンテンツを2Dのシーングラフに注入するため、シーンの内容によっては微妙な問題を引き起こす可能性があるため、特別な必要が生じない限り、使用は推奨されません。 |
デフォルトはView3D.Offscreen
です。
注意: レンダリングモードを変更する場合、View3D.Offscreen
(デフォルト)は、完全なグラフィック忠実度を保証する唯一のモードであることに注意することが重要です。他のモードには、視覚的な不具合を引き起こす可能性のある制限があるため、このプロパティを変更する際には、視覚的な出力が正しく見えるかどうかを確認することが重要です。
View3D 注意: Underlay、Overlay、または Inline モードを使用する場合、QQuickWindow またはQQuickView を表示する前に、QQuickGraphicsConfiguration::setDepthBufferFor2D() を使用してQt Quick シーングラフの深度バッファの書き込みを無効にすると便利で、場合によっては必要になることがあります。
renderStats : QtQuick3D::RenderStats |
このプロパティは、fps 、frameTime 、renderTime 、syncTime 、maxFrameTime など、フレームのレンダリングに関する統計情報を提供します。
scene : QtQuick3D::Node |
View3D で視覚化される 3D シーンを定義する:
- View3D の子としてNode-based アイテムの階層を直接定義し、これがView3D の暗黙のシーンになります。
- importScene プロパティを使用して既存のシーンを参照し、ビジュアライズしたいシーンのルートNode に設定します。このNode は、View3D の祖先である必要はなく、同じシーンをインポートする複数の View3D を持つことができます。
importSceneも参照してください 。
メソッド ドキュメント
scenePos をシーン空間(3D)からビュー空間(2D)に変換します。
返される x- 値と y- 値はビュー座標で、左上隅は [0, 0] で、右下隅は [width, height] です。返される z 値には、シーン座標における、フラストラムのクリップ近傍平面(clipNear)からscenePos までの距離が含まれます。距離が負の場合は、scenePos がアクティブカメラの後ろにあることを意味します。scenePos がシーン内の位置にマッピングできない場合は、[0, 0, 0] の位置が返されます。
この関数は、camera がビューに割り当てられていることを必要とします。
mapTo3DScene() およびCamera.mapToViewport()も参照してください 。
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) |
このメソッドは、ビュー座標x とy からシーン内にレイを「射出」し、シーン内のオブジェクトとの最も近い交点に関する情報を返します。
これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。
|
このメソッドは、ビュー座標x とy からシーンにレイを "放ち"、レイと指定されたmodel との交点に関する情報を返します。
これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。
このメソッドは Qt 6.8 で導入されました。
|
このメソッドは、ビュー座標x とy からシーンにレイを "射出 "し、シーン内のオブジェクトとの交差に関する情報のリストを返します。返されるリストはカメラからの距離でソートされ、最も近い交差点が最初に、最も遠い交差点が最後に表示されます。
これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。
このメソッドは Qt 6.2 で導入されました。
|
このメソッドは、ビュー座標x とy からシーンにレイを「射出」し、渡されたリストmodels との交点に関する情報を返します。 これは渡されたモデルのリストに対してのみチェックされます。返されるリストはカメラからの距離でソートされ、最も近い交差点が最初に、最も遠い交差点が最後に表示されます。
これは例えば、マウスカーソルの下にあるオブジェクトを見つけるために、マウス座標で呼び出すことができます。
property list<Model> と JavaScript の動的なモデル配列の両方で動作します。
このメソッドは Qt 6.8 で導入されました。
|
このメソッドは、origin 、direction からシーンにレイを "射出 "し、シーン内のオブジェクトとの最も近い交点に関する情報を返す。
これは例えば、シーン内の任意のオブジェクトの位置と前方ベクトルで呼び出すことができ、アイテムの前にあるオブジェクトを確認することができます。これにより、シーン内のどのポイントからでもピッキングが可能になります。
このメソッドはQt 6.2で導入されました。
|
このメソッドは、origin 、direction を始点としてシーンにレイを "射出 "し、シーン内のオブジェクトとの最も近い交点に関する情報のリストを返す。リストは方向ベクトルに沿って原点からの距離でソートされ、最も近い交差点が最初に、最も遠い交差点が最後に表示されます。
これは、例えば、シーン内の任意のオブジェクトの位置と前方ベクトルで呼び出すことができ、アイテムの前にあるオブジェクトを確認することができます。これにより、シーン内のどのポイントからでもピッキングが可能になります。
このメソッドはQt 6.2で導入されました。
合成タッチイベントを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.