Blender 3D:從新手到專業/迷霧 - 使物體不透明
如果您在 Blender 的迷霧中渲染物體,它們會與背景顏色混合。
因為 Blender 透過增加迷霧強度和離相機的距離來降低物體的 Alpha 值。
如果您的場景具有始終不變的背景顏色,這將是一個不錯的選擇,但是
如果是真實的背景或世界紋理,它看起來就不那麼令人信服。
所有物體看起來都像是幽靈。
此頁面將向您展示兩種解決此問題的方法。
主要思想是用不透明的顏色與物體混合,而不是使它們透明。
透明度越高,新增的不透明顏色就越多。
因為 Blender 在啟用迷霧的情況下提供了一個(動態)Alpha 值,
我們可以使用此值作為係數來增加或減少物體混合
與某種顏色(甚至增強或降低材料的對比度等)

第一個解決方案是使用外部合成程式
不會深入解釋,因為我們想專注於如何解決
Blender 中的問題,因為它是開源的。
只需使用 Alpha 通道分別渲染您的背景和物體。
然後將這些檔案匯入到兩個圖層的合成程式中。
(一個用於物體,一個用於背景)。
在這些圖層之間,您設定一個新的“顏色圖層”,顏色為固體灰色藍色
(因為這適合大氣顏色)並建立一個剪下蒙版。
“剪下蒙版”意味著“顏色圖層”僅在頂層物體存在的地方可見。
在沒有物體的地方,您可以看到背景。
由於物體是部分透明的(因為 Blender 的迷霧),
您將看到灰色藍色發光。
物體越遠,透明度就越高,
顏色圖層就越能透過物體發光。
由於解決方案 1 似乎不是什麼大問題,因為我們負擔不起昂貴的軟體包,因此我們也可以
透過 Blender 內建的合成節點來實現這種“混合技術”。
要繼續閱讀,您最好對 Blender 的合成節點有所瞭解。
現在,本教程最有趣的部分是節點編輯器中的節點圖
描述
在“渲染設定”選項卡中,您為不想透明的物體分配渲染層 1。
有關如何處理渲染層的說明,請參閱 http://wiki.blender.org/index.php/Doc:Manual/Render/Layers。
重要的是您要關閉“天空”,並開啟“索引通道”。(“迷霧”選項與節點渲染層 1 中的 Alpha 輸出提供相同的值)
“索引通道”將在步驟 5 中解釋。
此圖層僅渲染背景,即天空。在我的例子中,我還必須啟用其他元素,因為否則地面平面不會渲染。
我不知道為什麼,但這在我們的例子中無關緊要。
節點渲染層 1 的“影像輸出”提供 RGB+A,這有點令人困惑,
因為您也可以看到 Alpha 輸出。在節點編輯器視窗中選擇“新增”->“顏色”->“分離 RGBA”。
現在,分離的 RGB 再次組合成 RGB,但這次使用步驟 5 中的新的 Alpha。
好訊息是,Blender 的物體 ID Alpha 值會忽略迷霧。
因此,我們可以新增一個 ID 蒙版節點,將物體的 Alpha 匯入到新影像中。
在這裡,您必須將物體的 ID 設定為與 ID 蒙版節點中相同的數字。
選擇物體並設定其 ID 通道索引!
旁邊是設定物體 ID 的截圖。

在此,您新增一個混合節點來將物體與“地平線顏色”混合。
顏色應設定為明亮的灰藍色,因為這是大氣層內部空氣的顏色。
任何顏色都是可能的,您可以想象在火山口中是深紅色,或者在外太空是黑色。
由於霧的存在,Blender 會為物體提供一個 Alpha 值。
如果一個物體離得很遠,或者霧的強度很高,
物體的 Alpha 值會降低,這意味著 Alpha 值會更接近黑色。
而如果物體很近,它相應的 Alpha 值就會很高,這意味著它會接近白色。
黑色意味著 RGB 值為 0-0-0,白色意味著 RGB 值為 1-1-1。
由於我們要使用這些值作為將物體與“地平線顏色”混合的比例因子,
我們需要將該值反轉。
(近距離物體 = 高 Alpha 值 = 接近 1 的比例因子 - 但我們需要將混合比例因子設為接近 0,因為我們希望在物體靠近時霧氣較少)
所以讓我們新增一個“反轉顏色節點”。
獲取該節點的節點圖設定。
該節點將黑色反轉為白色,深灰色反轉為淺灰色,等等。
我們現在使用這個反轉的 Alpha 值(或霧氣值)
作為將地平線顏色與物體混合的比例因子。
現在您新增一個 Alpha Over 節點,該節點將我們的物體疊加到天空背景上。
請注意使用截圖中顯示的設定,以及 Alpha Over 節點的兩個影像輸入的順序
非常重要。
第二個輸入始終疊加在第一個輸入之上。
最後,您需要一個輸出節點,並在渲染設定中啟用“執行合成”。
以下是我專案中如何實現的示例。
-
近距離 - 幾乎沒有霧氣
-
遠距離 - 低霧氣或大氣透明度
-
更遠距離 - (!) 物體甚至被縮放了
-
最遠距離 - 在原始尺寸下,物體太小而不可見 - 只是為了使邏輯清晰
確保您正確執行了每個步驟 - 然後一切都會正常工作。
更重要的是,您要理解其背後的邏輯,
這樣您就可以瞭解 Blender 的合成節點和 01 邏輯;)
由於“Mist”(霧)在德語中類似於“Bullsh**”(胡說八道),所以我一直不相信它在 Blender 中真的是這樣,
而且事實並非如此!Blender 是一個非常棒且強大的工具。
希望它永遠是開源的。

