趣味
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 トーンマッピング
メッシュロード処理
大学プロジェクト / 独学 (2020.2)
基本的なDistanceMatchingとRotationWarpingをUE4のアニメーションプラグインとして実装しました。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環境マップのサンプリング
オフスクリーンレンダリングパス
モンテカルロフィルタリング
環境マップからのキューブマップ生成