Qt Quick 3Dグラフィックス要件
サポートされるグラフィックス API、バージョン、シェーディング言語
Qt Quick 3D は、Qt 6.0 の でサポートされているすべてのグラフィックス API とシェーディング言語での動作をサポートしています。特にOpenGLとOpenGL ESについては、 よりも 3D の方がバージョン要件が高い場合があります。Qt Quick Qt Quick Qt Quick
- OpenGL3.0 以上。OpenGL 3.3 以上を強く推奨。
- OpenGL ES2.0 以上。OpenGL ES 3.0 以上を強く推奨。
- Direct3D 11.1
- Direct3D 12
- Vulkan1.0以上
- Metal1.2以上
シェーダパイプラインは Qt 6 の標準的なアプローチに基づいています。Vulkan 互換の GLSL シェーダコードは SPIR-V にコンパイルされ、GLSL、HLSL、MSL のソースコードに変換されます。詳細はQtShader Toolsモジュールのドキュメントを参照してください。
Qt Quick 3D は、上記のグラフィックス API を直接使用しません。むしろ、 と同様に Qt Rendering Hardware Interface abstractions を使用します。Qt Quick
グラフィックスAPIの選択
Qt Quick 3D は、レンダリングやウィンドウを独自に初期化するのではなく、QQuickWindow かQQuickView かWindow QML タイプに依存するため、Qt Quick Scene Graphに適用されるグラフィックス API の選択に関するすべてが、Qt Quick 3D にも適用されます。シーングラフの動作は、以下のような特定の環境変数を設定することで制御することが可能です:
環境変数 | 可能な値 | 説明 |
---|---|---|
QSG_RHI_BACKEND | vulkan metal , , 、opengl d3d11 d3d12 | 特定のRHIバックエンドを要求します。デフォルトでは、この変数または同等のC++ APIによって上書きされない限り、ターゲットとなるグラフィックスAPIはプラットフォームに基づいて選択されます。現在のデフォルトは、WindowsではDirect3D 11、macOSではMetal、それ以外ではOpenGLです。 |
QSG_RHI_DEBUG_LAYER | 1 | 該当する場合(Vulkan、Direct3D)、グラフィックスAPI実装のデバッグおよび/または検証レイヤーを有効にします(利用可能な場合)。 |
QSG_INFO | 1 | OpenGLベースのレンダリングパスと同様に、これを設定すると、Qt Quick シーングラフを初期化するときにシステム情報を表示できます。これはトラブルシューティングに非常に役立ちます。 |
常に1つのグラフィックAPIで実行したいアプリケーションは、C++と同様に、QSG_RHI_BACKEND
enivronment変数でこれを要求できます。たとえば、QQuickWindow を構築する前にmain()
の初期に行われる以下の呼び出しは、Vulkan の使用を強制します(そうでない場合は失敗します)。
QQuickWindow::setGraphicsApi(QSGRendererInterface::Vulkan);
注: Qt Quick のソフトウェア適応は、3D コンテンツではサポートされていません。
OpenGLの仕様
よく書かれたQt Quick 3Dアプリケーションは、main()関数内でQQuick3D::idealSurfaceFormat()を呼び出し、返されたQSurfaceFormat をデフォルトとして使用することが期待されています:
QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat());
この呼び出しは、OpenGL以外のグラフィックスAPIが使用されている場合には何の効果もありませんが、APIがOpenGLである場合には、Qt Quick 3Dのニーズに最適なOpenGLコンテキストを作成することにつながるため、非常に有益です。
OpenGL ES 2.0サポート
Qt Quick 3DはOpenGL ES 2.0での実行をサポートしていますが、機能セットはかなり制限されています。以下のリストには、使用できなくなる、または機能しなくなる機能の一部が含まれています:
- 画像ベースのライティング、ライトプローブ、スカイボックス
- シャドウマッピング
- スクリーン空間アンビエントオクルージョン
- マルチサンプリング
- 特定のポストプロセッシングエフェクト
- GLSL ES 100にはないGLSL機能に依存するシェーダーを使用するカスタムマテリアル
注: Qt Quick 3Dは、WebAssemblyプラットフォームのOpenGL ES 3.0 / WebGL 2を必要とします。OpenGL ES 2.0 / WebGL 1はサポートされていません。
© 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.