このページでは

View3D QML Type

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

Import Statement: import QtQuick3D
Inherits:

Item

プロパティ

方法

  • pickResult closestPointPick(vector3d origin, float radius, Model model) (since 6.11)
  • 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<Object3D> pickInRect(point start, point end) (since 6.11)
  • List<pickResult> pickSubset(float x, float y, list<Model> models) (since 6.8)
  • pickResult rayPick(vector3d origin, vector3d direction) (since 6.2)
  • pickResult rayPick(vector3d origin, vector3d direction, Model model) (since 6.11)
  • List<pickResult> rayPickAll(vector3d origin, vector3d direction) (since 6.2)
  • void 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 の例も参照してください

プロパティ・ドキュメンテーション

camera : QtQuick3D::Camera

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

注意: このプロパティは明示的に設定し、自動カメラ選択に依存しないことを強く推奨します。シーンに複数のカメラがある場合、自動カメラ選択ではどのカメラが選択されるか保証されません。レイヤーを使用する場合は、明示的にカメラを設定する必要があります。

注意: このプロパティにvisible 以外のカメラが含まれている場合、カメラの検索は行われません。

PerspectiveCameraOrthographicCameraFrustumCameraCustomCameraも参照

effectiveTextureSize : size [since 6.7]

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

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

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

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

explicitTextureWidthexplicitTextureHeightDebugViewも参照してください

environment : QtQuick3D::SceneEnvironment

このプロパティは、シーンのレンダリングに使用される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 の子ノードがある場合は、その子ノードと兄弟になります。

注: シーンは、同じwindow 内にあるView3D アイテム間でのみ共有することができます。

View3D つまり、シーンのサブツリーをインポートすることはサポートされていません。複数のView3Dが同じ共有シーンの異なる部分を表示する必要がある場合、代わりにレイヤーの使用を検討してください。

注意: このプロパティは一度しか設定できず、それ以降の変更は無効です。

また、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 注意: アンダーレイモード、オーバーレイモード、インラインモードを使用する場合、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も参照してください

メソッドのドキュメント

[since 6.11] pickResult closestPointPick(vector3d origin, float radius, Model model)

このメソッドは、origin に最も近い、radius の距離内にあるmodel の表面上の点を見つける。modelnull の場合、radius 内の最も近いオブジェクトが見つかる。

そのようなオブジェクトが存在しない場合は、null が返されます。

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

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 からシーンにレイを "射出 "し、シーン内のオブジェクトとの最も近い交点に関する情報を返す。

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

pickAll(),pickSubset(),pickInRect()も参照してください

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

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

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

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

pickAll(),pickSubset(),pickInRect()も参照してください

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

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

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

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

pick(),pickSubset(),pickInRect()も参照してください

[since 6.11] list<Object3D> pickInRect(point start, point end)

このメソッドは、ビュー座標のstartend 点で定義される矩形領域内のすべてのオブジェクトをピックします。

指定した矩形内にあるオブジェクトのリストを返します。これは、ユーザーが矩形をドラッグして複数のオブジェクトを選択する、マーキー選択に使用できます。

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

pick(),pickAll(),pickSubset()も参照してください

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

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

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

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

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

pick(),pickAll(),pickInRect()も参照してください

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

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

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

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

[since 6.11] pickResult rayPick(vector3d origin, vector3d direction, Model model)

このメソッドは、origin を始点とし、direction のシーンにレイを「射出」し、レイと指定されたmodel との交点に関する情報を返します。

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

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

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

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

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

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

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

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

© 2026 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.