// 応用カーペイントシェーダの作り方

ということで、前回のメタルシェーダの応用編。
今回は"mi_car_paint_phen_x"と似たようなマテリアルを自前で作ります。
見た目的にはこんな感じになります。


今回使用する主なノードは以下の6つ。
・layeredShader(下記5つのノードをまとめる役割をします)
・phong(車の塗装のトップコートの役割をします)
・blinn(車の塗装のベース部分の役割をします)
・samplerInfo(擬似的なBRDFを再現するために使います)
・remapValue(擬似的なBRDFのふるまいを制御するために使います)
・bump2d(トップコート層の下の、"フレーク"の再現に使います)

『え?なんで?車でしょ?ただのblinnでいいんじゃないの?』
そうじゃないんです。
実は車の塗装というのは思いのほか複雑で、ただ単純に金属に色がついてるだけじゃないのです。
車の塗装の構造については、 こちらこちらを参考にしました。
本当はもっと細かくすべきなのかもしれませんが、
ある程度簡略化したところ6つあたりが妥当だろう、という判断です。

ちなみに今回は一応mental rayの使用を前提としていますが、
"mi_car_paint_phen_x"との決定的な違いは、
Maya Software Renderでも割りとなんとなくそれっぽい見た目が再現できる点です。

では早速はじめましょう。
まず最初に、layeredShaderとblinn、そしてphongを作ります。


blinnとphongを、layeredShaderにDefaultで接続します。


layeredShaderのアトリビュートを開き、最初から入っている緑色のレイヤを削除します。
そして、phongを左側・blinnを右側に配置します。
phongのTransparencyをBreak Connectionし、スライダを一番右(つまり白にする)に移動させます。


Hypershade上でこういう風な表示になっていればokです。


では、色をつけていきます。

blinnのColorを、
H:360
S:1.0
V:0.8
にセットします。

Specular Shadingロールアウト内の、Reflectivityを0.100にセットします。
mental rayロールアウト内のMi Reflection Blurを5.0にセットします。
Mi Reflection Blur Limitを16に、Reflection Raysも16にセットします。

phongのColorを完全な黒にします。
Specular Shadingロールアウト内のCosine Powerを200にセットします。
以下の見た目になっていればokです。


samplerInfoとremapValueを作成し、互いに接続します。
(方法はこちらを参照)
remapValueのoutValueを、blinnのdiffuseに接続します。
blinnに接続されているremapValueのアトリビュートを開きます。
Value値のグラフを以下のように設定します。


それが終わったら、samplerInfoと接続されたremapValueをもうひとつ作成し、
以下の通りにアトリビュートを設定します。
(samplerInfoノードはすでにあるものをそのまま流用します)


新しいremapValueのoutColorを、phongのIncandescenceに接続します。
そしてoutValueを、phongのreflectivityに接続します。
以下の状態になっていればokです。


最後にbump2dノードを作成します。
Noise TypeをWispyにセットしたnoiseノードを作成し、bump2dへ接続します。
noiseのplace2dTextureノードを開き、Repeat UVを共に200にセットします。
bump2dのBump Depthを0.005にセットします。
bump2dノードを、blinnのBump Mappingに接続します。
以下の状態になっていればokです。


おつかれさまです、これでカーペイントシェーダのシェーディングネットワークが完成しました。
あとは適当なモデルに、適当なライティングでレンダリングしてみてください。
(一番上の参考画像は、sphereにHDRレンダリングしただけです)
比較的簡単な操作で、なかなか説得力のあるマテリアル作成ができたかと思います。
samplerInfoは他にもいろんな使い道があるので、特に覚えておくべき強力なノードのひとつです。

今回のtipsのサンプルデータはこちらからどうぞ。

HDRファイルは自前のものではなく、
sIBL Archiveさんの"Helipad GoldenHour"を使用しましたので、
お手数ですが個別にダウンロードしてご使用ください。