Lumen による GlobalIllumination(GI)は簡単で便利ですが、ごく稀に色を拾ってほしくない、または別の色を出したいことがあります
今回はメインパスと Lumen パスで別の色を出力する方法について記述します
※Lumen そのものについての説明はしません
UE4 のときのやり方 #
UE4 のときは、 GIReplace
というノードを使えば、Lightmass での GI を別の色に置き換えることができました
UE5 では殆どの場合で Lumen と動的ライティングを使ったワークフローになると思うので、今後はあまり使われないかなと思います
Lumen 環境下でのやり方 #
UE5.0.3 時点では、Lumen 用の Replace ノードは存在していません
なので、Custom ノードを使用して HLSL で場合分けする必要があります
Lumen パスのとき、 LUMEN_CARD_CAPTURE
というフラグが ON になっています
これを利用し、色を出し分けてみましょう
Custom ノードのコードはこのようになります
#if LUMEN_CARD_CAPTURE
// Lumen用の出力
return Lumen;
#else
// メインパス用の出力
return Default;
#endif
置き換え結果はこのようになります
LumenScene の Overview によるプレビューです
差し替えなし
差し替えあり
参考記事 #
Lumen の技術的詳細
https://docs.unrealengine.com/5.0/ja/lumen-technical-details-in-unreal-engine/
Lumen - Material Pass Replace Node
https://forums.unrealengine.com/t/lumen-material-pass-replace-node/231883