このページでは

Qt Quick 3Dグラフィックスの要件

サポートされているグラフィックスAPI、バージョン、およびシェーディング言語

Qt Quick 3D機能は、Qt 6.0のQt Quick がサポートするすべてのグラフィックスAPIおよびシェーディング言語での動作に対応しています。場合によっては、特にOpenGLおよびOpenGL ESにおいて、Qt Quick の3D機能では、Qt Quick よりも高いバージョンが要求されることがあります。

シェーダーパイプラインは、Qt 6 の標準的なアプローチに基づいています。Vulkan 互換の GLSL シェーダーコードは SPIR-V にコンパイルされ、その後 GLSL、HLSL、および MSL ソースコードに変換されます。詳細については、Qt XML のShader Toolsモジュールのドキュメントを参照してください。

Qt Quick 3Dは、上記のグラフィックスAPIのいずれとも直接連携しません。むしろ、Qt Quick と同様に、Qt Rendering Hardware Interfaceの抽象化機能を使用します。

グラフィックスAPIの選択

Qt Quick 3Dは、レンダリングやウィンドウを独自に初期化せず、QQuickWindow やQQuickView 、あるいはWindow というQMLタイプに依存しているため、Qt Quick のシーングラフに適用されるグラフィックスAPIの選択に関するすべての事項は、Qt Quick 3Dにも同様に適用されます。以下に挙げる特定の環境変数を設定することで、シーングラフの動作を制御することが可能です。

環境変数有効な値説明
QSG_RHI_BACKENDvulkan,metal,opengl,d3d11,d3d12特定のRHIバックエンドを指定します。この変数または同等のC++ APIによって上書きされない限り、デフォルトではプラットフォームに基づいて対象のグラフィックスAPIが選択されます。現在のデフォルトは、WindowsではDirect3D 11、macOSではMetal、その他のプラットフォームではOpenGLです。
QSG_RHI_DEBUG_LAYER1該当する場合(Vulkan、Direct3D)、利用可能な場合は、グラフィックスAPI実装のデバッグおよび/または検証レイヤーを有効にします。
QSG_INFO1OpenGLベースのレンダリングパスと同様に、これを設定すると、Qt Quick シーングラフの初期化時にシステム情報が出力されるようになります。これはトラブルシューティングに非常に役立ちます。

常に特定の単一のグラフィックスAPIで実行したいアプリケーションは、C++だけでなく、QSG_RHI_BACKEND 環境変数を通じてこれを指定できます。たとえば、main() の初期段階で、QQuickWindow を構築する前に以下の呼び出しを行うと、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 はサポートされていません。

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