MP-APS
最新のOpenGL 3Dレンダリングエンジン。その背後にあるアイデアは、非常に簡単に使用できることです。奇妙な抽象化レイヤー、Janky変数名、または2000年以上の大規模なラインクラスはありません。これは主に、さまざまなグラフィックプログラミング手法を実装(または少なくとも試してください)を実装する(または試してみる)遊び場です。私はフルタイムの結びつきの研究、仕事、そして身体的に活動しようとしているので、進歩は遅くなっています。最終的には、「シーンベースの」エンジンを作成します。ここでは、モデルをロードしたり、派手なライトを追加したり、事実上探索したりできます。
コンパイル
ubuntu(および同様)
bash install-deps-ubuntu.sh
make
cd build/
./MP-APS
スクリーンショット
アンチアライアスされたワイヤーフレームレンダリング: 
物理ベースのレンダリング: 

画像ベースの照明(IBL): 
咲く: 
(古いバージョン)Perlinノイズを使用したCPUベースの地形生成: 
特徴
- Assimpモデルの読み込み。
- 後処理(HDR、vibrance、bloom)。
- 平行AABBフラストムカリング。
- XMLエンジン構成。
- シェーダーの
#includeディレクティブのサポート。 - シェーダーベースのワイヤーフレームオーバーレイ。
- 物理ベースのレンダリング。
wip
- 分散シャドウマッピング(ソフトシャドウ)。
- 深度バッファ最適化(https://outerra.blogspot.ca/2012/11/maximizing-depth-buffer-range-and.html)。
ロードマップ
- 影のボリューム(http://www.alexandre-pestana.com/volumetric-lights/、https://www.slideshare.net/benjaminglatzel/volumetric-lighting-for-lights-in-lords-of-pallen)。
- 材料アレイごとのテクスチャ:
- (https://www.gamedev.net/forums/topic/662654-best-practise-texture-atlas-38-vbo/?do=findcomment&comment=5191703)
- (https://www.khronos.org/opengl/wiki/array_texture)
- フォワード+の再実装。
- より多くの後処理効果:
- FXAA(http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html)。
- クロマティック異常(https://gamedev.stackexchange.com/a/58412/74957)。
- サンプラーオブジェクトに切り替えます。
- ある種のGUI。
- 大気散乱:(https://github.com/korgan00/tfg-atmospheric-scattering)または(https://ebruneton.github.io/precomputed_atmospheric_scatter/)
パイプドリーム
- cdlod地形。
- 惑星レンダリング。
- グローバル照明(カスケード光伝播容積)。
サードパーティのコード
- assimp。
- GLM。
- 嬉しい。
- glfw。
- stb_image。
- pugixml。
- GLM AABBラッパー:( https://github.com/iauns/cpm-glm-aabb)。
使用した研究
- ワールドビュープロジェクションマトリックス(http://www.cs.cs.tago.ac.nz/postgrads/alexis/planeextraction.pdf)からの視聴面の抽出。 Gribb、Hartman(2001)。
- フォワード+:延期された照明を次のレベルに持ち込む(https://takahiroharada.files.wordpress.com/2015/04/forward_plus.pdf)。先来、マッキー、ヤン(2012)。
- ソリッドワイヤーフレーム(http://developer.download.nvidia.com/sdk/10/direct3d/source/solidwireframe/doc/solidwireframe.pdf)。 Nvidia(2007)。
- 物理ベースのレンダリング(https://learnopengl.com/#!pbr/ibl/specular-ibl)
- バリアンスシャドウマッピング(http://developer.download.nvidia.com/sdk/10.5/direct3d/source/varianceshadowmapping/doc/varianceshadowmapping.pdf)
- ダイナミックロッドを使用したテッセレーションテレインレンダリング(http://victorbush.com/2015/01/tessellated-terrain/)