[Shade3D] DOKI for Shade3D(OSPRay)でのSSS風の表現

DOKI for Shade3D ( http://www.ft-lab.ne.jp/shade3d/DOKI/ )を使ったレンダリングでのSSS風の表現です。
ここでは、Shade3D ver.17 Standardと
その上で動作するプラグインとして
DOKI for Shade3D ver.1.1.1.2を使用しています。
レンダリング環境は以下になります。

OS : Windows 10
Mem : 16 GB
CPU : 4 x Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz
Shade3D : Shade3D Standard ver.17.1.0

チェスのコマに対して、細い円柱を差し込むことで中が詰まってるような表現を行っています。
5本の円柱のうち、一番下の円柱は発光(Luminous)するマテリアルを割り当てています。

チェスのコマの形状のサイズ

57(mm) x 86(mm) x 57(mm)の大きさにしました。
透明がある場合は、このサイズとマテリアルで指定する「透明度の減衰距離」や「厚み」が表現を左右することになります。
そのため、形状のサイズを知っておくことは大事な確認事項になります。

厚みを付ける

なお、透明+屈折表現または荒さ(Roughness)は、厚みがある形状でないと影響が出ません
例えば、1枚板のガラスが存在する場合、背景が荒さでぼやけたり屈折を表現することはできません。
以下の画像の左は、透明の形状としては適切な表現が行われません。
右のように厚みを付けると、荒さや屈折が反映されます。

これは、OSPRayでの性質になります。Shade3D標準のレンダリングでは、一枚板でも荒さや屈折は表現可能です。

マテリアルの指定

チェスのコマは、DOKI for Shade3DでのPBRマテリアルを指定しています。

マッピングは未使用です。
「拡散反射」0.8、白色。透明の影響が大きいため、拡散反射要素はあまり使われません。
「反射」0.0。
「透明」0.9、透明色はわずかに黄色に近い白にしています。
「屈折」は1.3。屈折率が大きくなるほど形状内部の濁りが大きくなります。
「荒さ」は1.0。これは、後々クリアコートで表面の荒さを調整するため、ベースは最大にざらついた感じにしてます。
SSSっぽい表現は、この「透明」がほとんどだけどわずかに不透明+屈折がある+ラフネスが強い、のが必要な要素となります。

表面材質の「情報」より「マテリアル情報(DOKI)」を選択、追加パラメータを調整します。

「マテリアルの種類」を「PBRマテリアル」にしています。
「透明度の減衰距離」を3(mm)としました。
この値が大きいと(形状自身が通過する場合の距離で相対的に考えるようにします)、透明色が薄くなっていきます。
試しにこの値を50(mm)とすると、以下のように透明色(少し黄色を入れている)が薄まってしまいます。

クリアコートの指定

ベース部分は荒さ(Roughness)を1.0としてました。これはざらつきが最大になります。
表面部はクリアコートを与えてマテリアルを変えています。
「クリアコート」値を0.8。これが大きいほどクリアコートがかかる影響が大きくなります。
「屈折率」を1.5。これはクリアコートでの表面での屈折率です。
「色」は白色。
「厚み」5(mm)。クリアコートの影響を与える大まかな厚みを指定します。
「ラフネス」0.1。表面はざらつきが少なくなるようにしてます。

下画像の左はクリアコート0(クリアコートの指定なしと同等)。
右はクリアコート0.8です。

右はクリアコートの効果により光沢が出ています。

上記はクリアコートの色は白色を指定しています。
試しにクリアコートの色を水色にすると以下のようになりました。

内側が若干黄色で外側が水色になっています。

レンダリングの指定

今回のような内部で拡散するような表現を行う場合は、ノイズが出やすいです。
OSPRayのDenoiseはそれを滑らかにするため、サンプリング数が少ないとのっぺりとしてしまうことになります。
そのため、DOKIのレンダリング設定で「ピクセルサンプリング数」をデフォルトの2から4に上げています。

ピクセルサンプリング数を2/4/8にして比較してみました。

分かりにくいですが、サンプリング数でディテールが上がるのと
地面に落ちる(おそらく)コースティクスがサンプリングが上がると出てくるのを確認できます。

今回はここまでです。
DOKI for Shade3DのTipsがあれば書き溜めていきます。