嚴格來說,布光是增強渲染真實感最重要的部分,因為只有恰如其分的布光才能展現材質的質感,甚至可以通過描述視覺重點的方式來規避掉一些不想讓觀眾注意到的瑕疵。如果你本身平時就熱愛攝影,尤其是棚拍的話,這個部分對你來說應該是如魚得水,但Blender最大的優點就是高自由度,布光可以是多燈源的組合,也可以是單燈源的巧妙設置,而本期我們要聊的,就是利用節點功能,讓單燈源也實現有趣的效果。
在制作一個水下模型效果時,我曾嘗試過想要模擬光線在水中的不規則折射效果,但純粹的物理模擬對Blender而言有一定的難度,所以,利用燈源的節點功能來實現這一效果就成了最佳方案。
首先,我們要刪掉默認的方塊和燈源,新建一個平面和聚光燈,可以得到如圖1的效果。這時候進入渲染模式你會發現,燈光就是常規的燈光,而我們要做的就是想辦法給它加上“濾鏡”,而這時候就需要切換渲染器,因為在默認的EEVEE渲染器下是不支持燈光節點的,當你選擇Cycles渲染器之后再回到燈源的物體數據屬性面板,就能在下方找到“使用節點”功能,這時候點選它,再切分一個工作區作為著色器編輯器,就能看到如圖2的燈源節點模塊了!


其實燈源節點跟其他非發光材質的著色器編輯器是一回事,其目的也就是輸出一個你想要的紋理,不過差別在于燈源會以此紋理進行發光,而其他材質則是受光。首先我們在發光模塊前加入一個沃羅諾伊紋理,以距離進行輸出,并在前方跟一個紋理坐標,這里記得一定是用法向或反射來進行連接,否則無法得到正確的輸出,再在沃羅諾伊紋理后面加一個顏色漸變來調整反差。
此時預覽輸出可以看到模糊的形狀,想要相對銳利的邊緣就需要改變光源的直徑,因為在距離不變的情況下,光源面積越大,影子邊緣就越模糊。當然也可以把光源放得非常遠,但記得亮度也一定要很大才行,具體設置可參考圖3。

接下來我們需要給沃羅諾伊紋理添加一些不規則的“干擾”,畢竟真實的水下光線就是隨機的,而不是一個個的圓。這時候需要在紋理坐標后方再接一個噪波紋理,并將其與原有的法向通過混合RGB的線性光來進行混合,調整混合參數和顏色漸變,就能得到一個相對真實的光線分布。
但這單獨的一層光顯然并不能反映出真實的質感,所以我們還需要用至少額外兩個漸變紋理來實現亮度從紋理中心到邊緣的遞減效果。方法也比較簡單,我們現在已有的漸變紋理就是高亮部分,復制它,調整一下黑白位置,獲得一個灰度過渡的區間,利用混合RGB把它們混合起來,就能看到一個真實感明顯更強的光照效果。這時候我們再復制漸變紋理,讓它作為最外層、接近黑色的過渡,讓它跟第二個漸變紋理相加,系數可以小一點。通過調整數值,不難得到如圖4的效果。

這時候只需要將沃羅諾伊紋理切換為4D模式,并為W值添加“#frame/500”修改器,就能實現水波蕩漾下的光照效果了。
新建一個方塊,讓它大到足以完全覆蓋整個場景,然后進入它的著色器編輯器,為它添加一個原理化體積模塊,并連接到材質輸出的體積選項上,適當調整密度值和燈源亮度,這時候可以看到光線穿透了這個方塊并形成了所謂的“上帝光”效果,效果如圖5所示。其實就是在方塊中填充了大量的小顆粒,模擬了光線在這些小顆粒上的漫反射效果。


本文所使用的燈源節點全覽
Blender的節點功能非常實用,不僅是單個的燈源可以使用節點,環境照明也能使用節點,并通過HDR全景圖片來實現全局光照,玩法非常豐富。就本次教程的效果來看,基本上是水下或森林單燈照明最好的方案,比起需要大量復雜建模來實現物理陰影的方案,利用節點來制作光影效果可以大量節省渲染時間,提高工作效率,而且也是非常有趣的玩法。