このページでは

「Hello Vulkan Cubes」サンプル

QVulkanWindow の使用基本を解説します。

「Hello Vulkan Cubes」サンプルでは、QVulkanWindow のより高度な使用法を示しています。

ファイルからメッシュをインスタンス化して描画する例を示すスクリーンショット

このサンプルでは、ファイルから読み込まれたメッシュと、2 種類のマテリアル、およびそれに対応するグラフィックスパイプラインが使用されています。角が丸いキューブはインスタンス化を使用して描画され、単一の方向光を用いたフォン照明モデルが採用されています。

hellovulkantexture や hellovulkantriangle とは異なり、ここではユニフォームバッファの処理に別のアプローチが採用されています。つまり、複数のデскриプタセットの代わりに、動的ユニフォームバッファが使用されています。

このサンプルでは、QtConcurrent::run()、QFuture 、およびQFutureWatcher をQVulkanWindow と組み合わせて使用する方法を実演しているため、QtConcurrentが必要です。メッシュおよびシェーダーデータの読み込み、処理負荷が高くなりがちなグラフィックスパイプラインの構築、およびフレームコマンドバッファの生成は、すべて個別のワーカースレッドで行われます。

シーンはウィジェットベースのユーザーインターフェースに組み込まれています。QVulkanWindow のサブクラスは、シーン内を移動できるように一人称視点のカメラを提供しているため、マウスやキーボードの入力も処理します。

例の動作

このサンプルは、以下の手順で実行できます。

code.qt.io のサンプルプロジェクト

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