Vulkan Renderer - Convolution

趣味

Vulkanでマルチスレッド化されたレンダラーを実装し、新技術の調査をしています。ゼロからVulkanを学びながら、エンジンシステムの実装にも挑戦しています。趣味プロジェクトであるため、コードの整理は不定期に行っています。

ビルド

紹介動画

開発ドキュメント

開発期間: 不定期

使用言語・ライブラリ:

C++23, Vulkan, Tracy, Visual Studio, VS Code, Assimp, ImGUI

実装機能:

Ray Tracing (AO, reflections)

TAA, DLSS

マルチスレッド (メインスレッド、RenderThread、非同期CommandBufferスレッド)

Bindless テクスチャ

Dynamic Rendering, Timeline Semaphores

Screen Space Shadows

CSM

Clustered Shading (実装中)

GPU Driven Rendering

Depth Prepass

遅延シェーディング (Deferred Shading)

ECS、10万以上のエンティティでも高速更新 (簡単なカスタム実装)

シーンビューア、シーンシステム

シェーダーホットリロード

Unreal PBR

ACES, Uncharted, GT7 トーンマッピング

メッシュロード処理

Voxel-Based グローバル・イルミネーション

学士論文 (2021.1)

OpenGL物理ベース遅延シェーディングレンダラーにおいて、ボクセルベースのグローバルイルミネーションを実装しました。

ビルド

動画

開発期間: 2ヶ月

使用言語・ライブラリ:

C++17, OpenGL, CMake, Assimp, ImGUI, boost

実装機能:

遅延シェーディング

物理ベースライティング (PBR)

コンピュートシェーダー

ジオメトリシェーダー

コーントレーシング

3Dテクスチャ

ボクセル可視化

ルービックキューブ

大学プロジェクト (2021)

OpenGLを使用したルービックキューブの実装。

ビルド

動画

開発期間: 1.5ヶ月

使用言語・ライブラリ:

C++17, OpenGL, boost

実装機能:

遅延シェーディング

アニメーション

ノーマルマッピング

環境マッピング

Blinn-Phongライティング (ガンマ補正あり)

.obj リーダー

サウンド

Calm Horizon

Global Game Jam (2021)

3人のプロのプログラマーと共にUnityで制作した3Dアドベンチャーゲームです。多くを学ぶことができました。プロジェクトはリモートで進行しました。

ビルド

動画

開発期間: 2日間

使用言語・ライブラリ:

C#, Unity, Git

実装機能:

船の操作

入力 (Input)

カメラ

トランジション

イベントシステム

UE4 アニメーションプラグイン

大学プロジェクト / 独学 (2020.2)

基本的なDistanceMatchingとRotationWarpingUE4のアニメーションプラグインとして実装しました。Paragonで使用されたEpicのソリューションを強く参考にしています。現在は0-45°のキャラクターローテーションにのみ対応しています。

プラグインなしの例

プラグインありの例

開発期間: 1ヶ月

使用言語・ライブラリ:

C++, Unreal Engine 4

実装機能:

キャラクターの速度に応じたアニメーション速度の制御

開始・終了アニメーションのスムーズなトランジション

キャラクターの回転に基づいたボーンの回転

UE4アニメーションシステム内のカスタムノード

液体レンダリング

大学プロジェクト (2020.1)

OpenGLでレンダリングされたPortal風の液体。

ビルド

開発期間: 3週間

使用言語・ライブラリ:

C++, OpenGL

実装機能:

Signed Distance Functionを用いた液体レンダリング

プロシージャルオブジェクトのライティング

ジオメトリシェーダーによるビルボードの作成

環境マップのフィルタリング

独学 (2020.1)

HDR環境マップをフィルタリングし、キューブマップを生成して球体にマッピングする処理をOpenGLで実装しました。

ビルド

開発期間: 3週間

使用言語・ライブラリ:

C++, OpenGL

実装機能:

HDR環境マップのサンプリング

オフスクリーンレンダリングパス

モンテカルロフィルタリング

環境マップからのキューブマップ生成

基本的なオフラインレイトレーサー

独学 (2020.2)

チュートリアルに沿ってC++でオフラインレイトレーサーをプログラミングし、CUDAに移植しました。
VS2019でビルドしてください

レンダー画像

開発期間: 1週間

使用言語・ライブラリ:

C++, CUDA, Visual Studio

実装機能:

ディフューズマテリアル

金属マテリアル

ガラスマテリアル

被写界深度 (DoF)