[V-Ray] alSurface シェーダーのメモ

2016-10-07_144858

ChaosGroup Labo ブログに alSurface SSSシェーダーの記事が掲載されています。
https://labs.chaosgroup.com/index.php/rendering-rd/v-rays-implementation-of-the-anders-langlands-alsurface-shader/

VRaySkinMtl と alSurface SSSシェーダーの違いが簡単にまとめられていたので紹介致します:

Diffuse:

VRay Skin Mtl: DiffuseとSub-Surfaceは異なるマップで定義され、Diffuse amount で双方がブレンドされます。

alSurface: DiffuseとSub-Surfaceは同じマップで定義され、ランバート拡散に対してサブサーフェスがどれくらい影響するかによって混合されます。

サブサーフェススキャッタリング:

VRay Skin Mtl: 均一に一緒に混合される3レベルの深度別マップで定義されます。SSSは標準ダイポールモデルを使用します。

alSurface: VRaySkin同様に3レベルの深度マップがありますが、各レベルにウェイトコントロールを持っています。また複数のSSSモデルを選択できます。現在のVRayalSurfaceでは2つのSSSモデルが実装されています。”Diffusion”モデルは標準ダイポール・モデルと比較してよりディテールを保持します。”Directional”モデルはシングルスキャッターの近似でさらに詳細なディテールを保持します。

リフレクション(スペキュラ):

VRay Skin Mtl: 鋭い反射とぼかした反射の組み合わせでBRDFモデルはPhongです。Phongモデルは視射角(エッジ付近)でSSS効果をカットアウトし反射が暗くなる傾向があります。これはフレネル効果が視線とサーフェス法線に基いてのみ計算され、サーフェスに入射する光の方向は無視される事が原因です。

alSurface: VRay Skin Mtl同様に鋭い反射とぼかした反射の組み合わせを使用します。しかしBRDFはmicrofacet系のBRDFが使用されます。フレネルがBRDFの一部として計算され視線とサーフェス法線、光の入射方向が考慮されます。(別名”glossy Fresnel”とも呼ばれます)
ユーザーはBRDFとしてGGXとBeckmannを選択できます。このBRDFはmicrofacet(表面の微細な構造)を近似する物で、Phongモデル等で起こる視射角(エッジ付近)で暗くなる効果を回避する事ができます。
またmicrofacet系BRDFを使用する事で視射角(エッジ付近)のSSSをカバーする事ができます。

他の注目すべき違い:

フレネルで使用されるIORはVRaySkinMtlとalSurfaceでは異なった計算方法で使用されます。同じIOR値を両方に入力した場合、alSurfaceは強く反射するように見えるでしょう。

VRaySkinMtlのglossinessは高い値になる程、ぼかしが無くなります。つまり鋭い反射になります。一方でalSurfaceのroughness は高い値程ぼかしが強くなりマット(つや消し)になります。従ってVRaySkinMtlのglossinessマップとalSurfaceのroughnessマップは逆にする必要があります。

VRay Skin MtlにてDiffuse amountを 1.0 にする事は 100% diffuseマップを意味します。alSurfaceでのSSS blends 1.0 は 100% SSS を意味します。Single Scatter Mapマップ等は VRaySkinMtlとalSurfaceで値を反転する必要があります。

alSurfaceのインストール方法等はこちらの記事を参照してください。