前回に続いてLumberyardのShaderを覗いてみます。
前回の記事
https://qiita.com/dgtanaka/items/7901b1b9283eaf148da0
気になるファイル名のシェーダーを適当にチョイスして覗いてみます。
-
PostAA.cfx
名前の通り、ポストプロセスにるアンチエイリアスのコードですね。
TAA,SMAA,FXAAの3種類のシェーダーが記述されていますが、SMAAはDEPRECATEDと書かれているので、使われていないようです。
標準はTAAで、FXAAも使用可能なのはUE4と同じですね。Shaderの中でApplyFilmGrainという関数があって、AntiAliasの後にFilm Grainを足しています。Film Grainはフィルム撮影独特の粒子状のノイズですね。 -
PostEffectsGame.cfx
こちらはゲーム向けのポストエフェクト、水滴、雨、雪、閃光など。KillCameraFilterなんてのも実装されています。これは周辺減光とノイズと色変換ぽいですね。 -
CommonSVO.cfi
Sparse voxel octree global illumination、Lumberyardの目玉、ボクセルベースのリアルタイムGIの実装。UE4が割りと早い段階で諦めたやつですねw
どの程度使い物になるのか興味あるので、時間ができたらじっくり触ってみたい。 -
DeferredShading.cfx
Deferred Shadingの処理がぎゅっと詰まっています。
Deferred DecalとかSSR(Screen Space Reflections)とかSSDO(Screen Space Directional Occlution)とかいろいろ入ってます。
Deferred DecalのMip LevelをgetDecalMipLevelsという関数で補正してるところとか個人的に見どころ。
まとめ
こんな短いのにまとめも無いですが、時間がなくてちょっとしか書けませんでした。
こんなんでもアドカレが途切れるよりは良いかなと思ったので、恥ずかしながら投稿させていただきました。
シェーダーコード見てるだけで時間は過ぎていくのですが、記事としてまとめられる事って思ったほど無いものです。