以前LWのノードの勉強用に作った大域光シェーダを久しぶりに改良してみました。
改良点はambientノードをambientⅡノードに変更したりmixerノードを極力少数の
Gradientノードに置き換えるなどして高速化させたり、後はSSS機能を追加させたり、
ノードでフォグを表現していた部分をLW標準のフォグを使用するようにしてみました。
ちなみに前のノードを使用した画像は現在この日誌のヘッダ画像としてそのまま
使用しているのですぐに比較できますね笑。今回雲計算をしなかったのですが、
せっかくなので前回のシェーダのレンダリング時間もとってみると以下のようになりました。
・今回のシェーダ :1分30秒
・前回のシェーダ :4分30秒
・前回のシェーダ(ShadowシェーダOFF) :3分10秒
・前回のシェーダ(ShadowシェーダOFF,AOをAOⅡに変更) :2分00秒
このような結果となりました。前回のシェーダは何故かDP-KitプラグインのShadow
ノードを利用していたのですが;これはAOシェーダと同じくらい重いみたいですね。
そしてAOシェーダは重いですがAOⅡシェーダに変更すれば処理は軽くなります。
他にもAO系のシェーダプラグインはいくつかありますが、自分は互換性を考慮
したいタイプなので極力標準のノードを使うようにしています。…変ですね苦笑。
他のオブジェクトを参照するシェーダはGI計算時間がものすごく延びることは前から
薄々気づいてましたが、今回の結果ではっきりと分かったので良かったでした。
それでもノードが増えるだけで30秒の違いがでています。前回のシェーダの
ノード数は今回の約2倍程度あるので2倍で30秒程度ならとも思えますが、、
極力ノード以外の方法で実装できるならそれに越したことは無い感じです。
せっかくなのでノードの画像もアップしてみます(クリックで拡大)。これ位のノード数で
あれば、「ノードの上部分がSSS処理で下部分がambient処理だな」といった
感じで、一目で大体の処理が分かる感じですね。以前のノードだと久しぶりに見ると、
「な、、なんじゃこりゃ」状態です。訳が分かりません笑。
XSIのようにノードをコンパウンド化したり、コメントを付加できたらいいのになあ。
追記:
Node Image Filterで彩度差が大きい部分にブラーをかけるフィルタを作ってみた
ので画像を差し替えてみました。微妙な効果なので分かりにくい感じですが、画像
左下や右下の明るい部分の輪郭周りがオレンジ色に滲んでいる部分等がそうです。
本当はもう少し彩度が高くなってほしいんですけどね。ブラーで色がくすむので
効果が薄れてしまいました。。後で修正が必要そうです。