本プログラムは、OpenGL 3.1 で導入されたユニフォームバッファオブジェクト (UBO: Uniform Buffer Object) および OpenGL 4.3 のコンピュートシェーダ(Compute Shader: raycast.comp)を用いて、GPU 上で効率的なレイキャスティング・ボリュームレンダリングを行うサンプルプログラムです。
- Windows: Visual Studio 2019 / 2022 / 2026 (CMake 経由で GLFW, ImGui, NFD を自動構成)
- Ubuntu Linux: GCC / Make (システム標準の libglfw3-dev, libgl1-mesa-dev, libgtk-3-dev を使用)
- macOS: 非対応(macOS 標準の OpenGL はバージョン 4.1 で固定されており、本プログラムで必須となる OpenGL 4.3 コンピュートシェーダに対応していません)
cmake -B build -S .
cmake --build build --config Releasesudo apt-get update
sudo apt-get install -y libglfw3-dev libgl1-mesa-dev libgtk-3-dev
cmake -B build -S .
cmake --build buildビルド完了後、生成された実行ファイルを実行します。
- Windows:
build/Release/uboSample.exe - Linux:
build/uboSample
- マウス左ドラッグ: ボリュームの視点回転
- マウス右ドラッグ: 視点の平行移動
- マウスホイール: ズーム
- ImGui パネル: サンプリングステップ数やレイキャスティングパラメータの変更
- [q] / [Q] / [ESC]: プログラムの終了
コンピュートシェーダ raycast.comp を用いて 3D テクスチャに対するレイマーチングを行い、UBO 経由でカメラ位置・変換行列・ボリューム描画パラメータを一括して高速転送しています。