天天看點

Blender - Subsurface Scattering(次表面散射) - 實作比較好的奶酪材質參數說明什麼是次表面散射模組化、添加 SSS 材質

文章目錄

  • 什麼是次表面散射
  • 模組化、添加 SSS 材質

什麼是次表面散射

Subsurface Scattering - 次表面散射,簡寫 SSS

以前沒去了解過,但是發現,如果要制作光通透效果,還是要了解實作原理,對于參數調整也會得心應手

Subsurface Scattering (SSS) 的說明,我參考了一篇寫得很不錯的:【插播002】Subsurface

我自己總結了解為:光波在射入物體後,部分光波在物質中穿透,最後從他物體内多次散射後射出,然後我們的眼睛(相機)捕抓到這些光波的顔色。

  • Radius(光通透距離)

光波在射入物體後,部分光通透性一般的媒體,如:我們的手,耳朵、大理石、蠟燭等,這些物質,大概弄個1~2厘米,都有中等的光通透性,這些光波都比較容易穿透這些物質。

是以也就有:光通透距離,不同媒體(材質)該系數不一,有些叫:光自由程(光波射入後,還能自由行程的距離)

(很多渲染系統都叫:Surface Scattering Radius,用半徑來描述這個距離)

  • Radius Channel(光通透的 RGB 分量)

    就是對白光的 RGB 複合光的每個通道的光通距離,數值越大,那麼能同透的顔色分量就可能越大

如果我們要設定我們的皮膚光通透距離分量的 R 總是偏高的,因為很多時候都是散射出紅光(你可以自己用手機開啟手電筒光,然後用單個手指擋住光源,你會發現你的手指非常的紅)

模組化、添加 SSS 材質

使用了 Vertex Group(頂點組) + Weight Paint(筆刷調整 Vertex Group 權重) + Displace(置換)+ NoiseTex(噪點紋理)+ Bool(布爾挖空)就可以模組化成功

在了解了參數的用意後,我們就可以添加材質,并調整參數

先來張效果圖,與參數的截圖

Blender - Subsurface Scattering(次表面散射) - 實作比較好的奶酪材質參數說明什麼是次表面散射模組化、添加 SSS 材質
  • Base Color - 是奶酪的基礎反射率的顔色值(如果要自己用 Unity 或是 C++ 中的 OpenGL,也可以隻用紋理)
  • Subsurface - 是調整次表面散射的放大強度,可以說是一個縮放值,對 Radius 的縮放值
  • Subsurface Radius - 值為:(20, 20, 0.05),就是我們上面所說的光通透距離分量(RGB),因為奶酪本身偏黃,透出來的光也就偏黃色,是以你可以看到 RG 通道值都比較高
  • Subsurface Color - 值為:(255,255,255),就是它能透出來的光的顔色分量系數,白色,就是說每個通道量都有透光性(是以透光計算時,計算散射出來的顔色,需要使用光源顔色與這個 Subsurface 相乘後,才是後續用于與 Radius 透光距離計算次散射的顔色)

用我自己的 E-Name 來弄一張 SSS 效果:

Blender - Subsurface Scattering(次表面散射) - 實作比較好的奶酪材質參數說明什麼是次表面散射模組化、添加 SSS 材質

這個實作,後面如果有空我會嘗試在 Unity 或是 C++ + OpenGL 中實作,但也隻能實作效果一般的模拟版本,如果要實作比較好的,還是隻能光追方式的版本