[Omniverse] マテリアルの割り当て その3 (OmniSurface)

前回は湯呑茶碗のお茶部分をOmniGlassで表現しました。
ただ、茶碗の内側のハイライトが気になっていました。

これはレンダリング時に実際のお茶(水)内で減衰が起こっていないから、と推測を立ててみます。
物体内部の減衰はOmniGlassでは表現できないため、マテリアルで「OmniSurface」を使用します。

GeometryのCast ShadowsをOnに戻す

お茶のMeshを選択し、PropertyウィンドウでGeometryの「Cast Shadows」「Shadow Terminator Fix」をOnに戻しておきました。

OmniSurfaceを割り当て

お茶のMeshに対して、OmniSurfaceを割り当てます。

半透明にするため、「Transmission」と「Subsurface」を調整していきます。

屈折率(IOR)を1.33に変更

OmniSurfaceのマテリアルを選択し、Propertyウィンドウの「Specular」で「IOR」(屈折率)を水の1.33に変更しました。

Transmissionの調整

Transmissionで透過の指定を行います。
Propertyウィンドウで「Transmission」の「Enable Transmission」をOnにします。
また、「Weight」を1.0としました。

Weightを1.0としているので透過は100%になります。
これで、水のような表現になりました。

隅が黒ずんでいるのは、Geometryの「Cast Shadows」「Shadow Terminator Fix」の影響になります。
この2つをOffにすると以下のようになりました。

「Color」を変更して、お茶っぽい色にしました。


ただ、まだゼリーのような質感から抜け切れていません。

Subsurfaceの調整

次に、「Subsurface」を調整します。
Subsurfaceは物体内部で散乱する表現を行います。
人間の皮膚の表面がわずかに透けていて柔らかく見えるのはこれが影響しています。
この湯呑茶碗のお茶もSubsurfaceの効果をわずかに与え、
入った光が内部で散乱/減衰するようにして、より現実に近づけるようにしました。

いったん「Transmission」の「Enable Transmission」をOffにしておきました。

「Subsurface」で「Enable Subsurface」をOn、「Weight」を1.0としました。
「Color」でお茶の緑色を指定しました。

ミルクのような柔らかい質感になりました。

Transmissionの再調整

このあと、透明度を上げるために再度「Transmission」を調整していきます。
「Enable Transmission」をOnにします。
Transmissionの「Weight」が1.0の場合はSubsurface効果はかかりません。
そのため、「Weight」を0.8としました。
また、「Color」も若干再調整しました。

8割は透過、残り2割でSubsurfaceの内部散乱が起きる表現になりました。

ストローのように入れている円柱を非表示にして、最終確認します。

なお、「Transmission」「Subsurface」を使うとレンダリング時間は増加することになります。
透過するマテリアルを与える際にOmniSurfaceの「Transmission」「Subsurface」を使うことで、内部で光の減衰や散乱が起きる表現を直感的に表現できます。
非透過はOmniPBRのままでもよいですが、透過するマテリアルの場合はOmniSurfaceを使用したほうがよいかもしれません。

今回はここまでです。
透過については厚み(Thickness)など、もう少し深く掘ったほうがよさそうなので、
次回もOmniSurfaceの表現について書く予定です。