ID Mask 分離陰影的方法是由 Andrew Price 分享,消除 ID Mask 毛邊的方法來自於 Blender Compositing and Post Processing 一書。
如下圖,場景包含汽車(圖層1)、地板(圖層2)、燈光(圖層11)。將地板物件 ground 的 Pass Index 設為 1,汽車設為 2。
設置兩個 Render Layer : car, ground。car 的 Layer 設定如下圖(圖層1, 2, 11),且記得勾選 Object Index Pass;這個設定會算繪場景中的所有物件:
ground 的 Layer 設定如下圖(圖層 2, 11),排除(Exclude) 圖層1;這個設定只會算繪 ground 物件:
F12算繪,完成後進入節點編輯視窗。加入兩個 Render Layers 節點,一個選 car,另一個選 ground;兩個節點用 Color Divide 處理,如下圖。這個處理的目的應是把陰影以外的地面顏色變為純白色:
加入一個 ID Mask 節點,Index 選 1,如下圖。我們要用這個節點遮掉汽車,只留下陰影:
加入一個 Color Multiply 節點,將 ID Mask 節點連結到 Fac 插槽,如下圖。顏色相乘讓 ID Mask 節點的黑色部份保留 Color Multiply 節點的第一個插槽顏色,白色部份則是兩個插槽顏色的相乘結果。
加入第二個 ID Mask 節點,Index 選 2,如下圖。我們要用這個節點結合汽車與新的陰影背景:
加入一個 Color Mix 節點結合汽車(顏色插槽2)與新的陰影背景(顏色插槽1),將第二個 ID Mask 節點連結到 Fac 插槽,如下圖。顏色混合讓 ID Mask 節點的黑色部份保留陰影背景(顏色插槽1),白色部份則保留汽車(顏色插槽2)。
這個方法的問題是在模型的邊緣會產生白色的毛邊,就算啟用 ID Mask 的反鋸齒(Anti-Aliasing)選項也無法改善。解決方法是在 ID Mask 節點之後增加一組 Blur 和 ColorRamp 節點來柔化邊緣,如下圖:
Cycles
Blender 學習筆記
如下圖,場景包含汽車(圖層1)、地板(圖層2)、燈光(圖層11)。將地板物件 ground 的 Pass Index 設為 1,汽車設為 2。
設置兩個 Render Layer : car, ground。car 的 Layer 設定如下圖(圖層1, 2, 11),且記得勾選 Object Index Pass;這個設定會算繪場景中的所有物件:
ground 的 Layer 設定如下圖(圖層 2, 11),排除(Exclude) 圖層1;這個設定只會算繪 ground 物件:
F12算繪,完成後進入節點編輯視窗。加入兩個 Render Layers 節點,一個選 car,另一個選 ground;兩個節點用 Color Divide 處理,如下圖。這個處理的目的應是把陰影以外的地面顏色變為純白色:
加入一個 ID Mask 節點,Index 選 1,如下圖。我們要用這個節點遮掉汽車,只留下陰影:
加入一個 Color Multiply 節點,將 ID Mask 節點連結到 Fac 插槽,如下圖。顏色相乘讓 ID Mask 節點的黑色部份保留 Color Multiply 節點的第一個插槽顏色,白色部份則是兩個插槽顏色的相乘結果。
加入第二個 ID Mask 節點,Index 選 2,如下圖。我們要用這個節點結合汽車與新的陰影背景:
加入一個 Color Mix 節點結合汽車(顏色插槽2)與新的陰影背景(顏色插槽1),將第二個 ID Mask 節點連結到 Fac 插槽,如下圖。顏色混合讓 ID Mask 節點的黑色部份保留陰影背景(顏色插槽1),白色部份則保留汽車(顏色插槽2)。
這個方法的問題是在模型的邊緣會產生白色的毛邊,就算啟用 ID Mask 的反鋸齒(Anti-Aliasing)選項也無法改善。解決方法是在 ID Mask 節點之後增加一組 Blur 和 ColorRamp 節點來柔化邊緣,如下圖:
Cycles
Blender 學習筆記
留言
張貼留言