続・LumberyardのShaderを覗いてみた


前回に続いて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という関数で補正してるところとか個人的に見どころ。

まとめ

 こんな短いのにまとめも無いですが、時間がなくてちょっとしか書けませんでした。
 こんなんでもアドカレが途切れるよりは良いかなと思ったので、恥ずかしながら投稿させていただきました。
 シェーダーコード見てるだけで時間は過ぎていくのですが、記事としてまとめられる事って思ったほど無いものです。