HRE は、OpenGL で構築されたリアルタイムの物理ベースのクラスター化レンダラーであり、Ola Olsson、Markus Biller、Ulf Assarsson による論文「Clustered Deferred and Forward Shading」で説明されている手法に基づいています。このプロジェクトの目的は、ディファード グラフィックス技術とフォワード グラフィックス技術 (したがってハイブリッド部分) を紹介するテスト フレームワークを構築し、クラスター シェーディングの強みを調べることです。効率的なレンダリング アルゴリズムの紹介とクラスター シェーディングの実装の詳細なガイドとして役立つ、クールなアニメーションが満載の長いブログ投稿を書きました。ぜひここをチェックしてください。
このアルゴリズムは、従来の遅延/タイル ソリューションに比べて 2 つの大きな利点があるため選択されました。それは、必要に応じて前方シェーディング パスまたは遅延シェーディング パスをより自由に選択できること、および最新の GPU パフォーマンス トレンドにより長期的に適合することです。この機能は、ここ数年間で最も優れたゲームのいくつかにすでに実装されており、注目すべき例としては、『DOOM 2016』、『Just Cause 3』、および『Detroit: Beginner Human』などがあります。
残念ながら、このプロジェクトはもう維持されていません。この記事を投稿した直後に、私はロックスター ゲームズにグラフィックス プログラマーとして雇われることになりましたが、もうこの規模のサイドプロジェクトに取り組む時間がありません。私が業界に参入するまでに何が必要だったのかを他の人が見てもらえるように、(私の他の主要なグラフィックス プロジェクト SSGE と同様に)この活動を続けていくつもりです。問題が発生したり、質問がある人には今後もサポートしていきます。この話題やその他の GFX トピックについて、お気軽にここまたは私の twitter までご連絡ください。このプロジェクトをチェックしてくださった皆様、ありがとうございました! :D
安定したビルドは HRE リリース ページで見つけることができます。
現在、Windows プラットフォームのみがサポートされています。
最初の開発サイクルは 2018 年 9 月に始まり、2018 年 12 月にイメージ ベースド ライティングを組み込み、最初の安定バージョンである HRE 0.01 "Aachen" のリリースで終了しました。今後数か月間、私は「プロジェクト」セクションで概説した問題に取り組み、まず残りの重大ではないバグの修正から始めて、マテリアル システムの大幅な書き直しに移ります。以下は、今後数か月間で組み込む予定のエンジン機能のリストです。明らかに変更される可能性があります。
それぞれの主要なマイルストーンの終わりに付随するブログ記事を書き、新機能とその実装、そして途中で発見した複雑な点について概説します。一方、これが、他の従来のレンダリング アルゴリズムの概要を含み、クラスター化レンダリングのケースを構築する最初の投稿です。
Hybrid Rendering Engine
| -- assets
| | -- models # Meshes and textures
| | -- scenes # Scene description files in JSON format
| | -- shaders
| | | -- computeShaders # Compute shaders for clustered forward
| | | -- OldShaders # Shaders not currently in use
| | ` -- currentShaders # Shaders for the current rendering pipeline
| ` -- skyboxes # Skyboxes in either cubemap or equirectangular map form
| -- build # CMake compile
| -- include # Project header files
| -- libs # Check dependencies section for descriptions & links
| | -- ASSIMP
| | -- Dear imgui
| | -- Glad
| | -- Json c++
| | -- GLI
| | -- GLM
| | -- stb_image
| ` -- SDL2
| -- modules # CMake lib setup scripts
|-- src # C++ implementation files
` -- CMakeLists.txt # CMake build script
以前のプロジェクトである SSGE では、依存関係の量を最小限に抑えるよう努めました。ただし、今回は振り子が逆に振れたので、プロジェクトに含めることができるライブラリについて (合理的な範囲内で) まったく制限を設けませんでした。これを行ったのは、C++ に外部ライブラリを含めて操作するプロセスをもっと慣れておきたかったからです。
現在プロジェクトに含まれているライブラリのリストは次のとおりです。
含まれていないライブラリのリストは次のとおりです。
ここでは、含まれるすべてのライブラリがそれぞれのライセンスに基づいて表されており、上記のリンクまたは libs フォルダー内の License.txt ドキュメントで見つけることができます。
Wiki のこのページには、このプロジェクトに関する参考文献の包括的なインデックス付きリストがあり、多かれ少なかれ最新の状態に保っています。ただし、さらに読んだり、インスピレーションが必要なときは、常にそれらのサブセットに戻ってくることが多いので、それらを共有し、その素晴らしさを広めるために以下のリンクを追加しました。ぜひチェックしてみてください!
アセットを無料で使用でき、見た目も美しいものにしてくださった 3D およびテクスチャ アーティストの皆様に感謝します。もしあなたたちがいなかったら、私はおそらく今でも一日中、同じ古い退屈なユタ州のティーポットを見つめていたでしょう。
間違って認識したり、帰属を間違えたり、参照を見逃したりした場合は、GitHub で新しい問題を作成するか、Twitter で私に DM を送ってください。すぐに修正します。
過去 2 か月間、私のすべての質問に答えるために時間を割いてくださった Kostas Anagnostou と Eric Arnebäck に感謝します。あなたの説明により、すべての困難なトピックの理解がはるかに容易になりました。
MITライセンス
著作権 (c) 2018 エンジェル オルティス
本ソフトウェアおよび関連ドキュメント ファイル (以下「ソフトウェア」) のコピーを入手した人には、使用、コピー、変更、マージする権利を含むがこれらに限定されない、制限なくソフトウェアを取り扱う許可が、ここに無償で与えられます。 、以下の条件を条件として、本ソフトウェアのコピーを出版、配布、サブライセンス、および/または販売すること、および本ソフトウェアが提供される人物にそれを許可すること。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは主要部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる種類の保証も行われません。いかなる場合においても、作者または著作権所有者は、契約行為、不法行為、またはその他の行為であるかどうかにかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じる、いかなる請求、損害、またはその他の責任に対しても責任を負わないものとします。ソフトウェア。