反射だけレンダリングする方法。
反射だけなんかAOVsでいいじゃないかってのもありますが、実写に載せる場合にAlphaが必要なことが多いです。
そのためのAlpha付き反射の出し方…だけどなんで動くのか???
以下のレンダリングの反射だけをアルファ付きで出す方法
レンダリングすると以下のようになる。
Nukeでとりあえず重ねると以下のようになり、Alphaが存在するのがわかる。
嘘でレンダリングしているため輝度が低めでレンダリングされている。
レンダリング時かコンポジットでの調整が必要。
反射を受けるオブジェクトの設定
画像でハイライトされているGridが今回の影を受けるオブジェクト
次の項目で作成するシェーダーを受けるオブジェクトにアサイン
反射用シェーダー
mat階層でMaterial Builderを作成し、中に潜って以下のように組む。
反射のボケ具合等はPBR Reflectの箇所で変更
Multiplyの箇所は輝度調整用
「PBR Reflect」、「Compute Lighting」を作成し、「PBR Reflect」のfを「Compute Lighting」につなぐ。
ここはなくてもいいが、「Compute Lighting」のout_Fを「Surface Output」のFにつなぎ、同様にout_OfもOfにつなぐ。
「Compute Lighting」のCfをrgbtohsvにつなぎ、hsvを「Vectort to Float」につなぐ。
「Vectort to Float」のfval3を「Compare」のinpu1につなぎ、CompareのTestをEqualに変更。
「Compare」のboolを「Two way」のConditionにつなぎ、「Two Way」のInput1,2にそれぞれ「Constant」の値を0,1にしたものをつなぐ。
「Two Way」のresultを「Surface Output」のAfにつなぐ。
レンダリング設定
MantraのForce Objectsに受けるオブジェクトを指定
Forced Phantomに影を落とす側のオブジェクトを指定する。
ライトは必要なものをCandidate Lightsで指定する。
反射をレンダリングするため、Reflect Limitを任意の値に変更する。
反射の方のレンダリング設定は以下のような方が設定が簡単になる。
Ray Variance Antialiasingのチェックをオフにし、
Pixel Samplesと、Min Ray Samplesを上げて精度を上げる。
特にMin Ray Samplesはある程度上げないとメッシュがずれたように見えるので注意。
反射を受けるオブジェクト自身の反射とライトの反射を消す
自身の反射と周りのライトからの反射をレンダリングしないようにするため、以下の設定が必要
受けるオブジェクトのRender Visibilityをprimaryに変更。
Light Maskをなしにする。