Hello . 大家好!今天給大家分享一下unreal中的pbr檢測,我是木偶心沒。
我們在使用pbr流程的時候都根據項目要求有一些顏色值範圍,比如說substance的30/50-240。我們在painter或者designer裏麵畫貼圖的時候如果顏色值不在正確的範圍內,導入到引擎裏麵效果就會有問題,所以就需要一些在引擎裏麵檢查顏色值或者粗糙度值是否規範的工具。下麵就介紹一些這款朋友提供的檢查basecolor的工具。
1、非金屬
首先這個tool的功能是檢查整個場景的basecolor在不在我們規定的範圍內,所以最好的方式是直接添加一個後處理材質,這樣就能作用到整個場景。所以首先新建一個材質球命名為mat_PbrValidate,然後設置Material Domain為Post Process,現在整個材質就隻有一個Emissive Color屬性暴露出來了,我們隻需要把我們的檢查連接到這個屬性上麵。

然後,需要獲取場景中的basecolor,右鍵添加節點SceneTexture,然後選擇節點的Scene Texture Id屬性為BaseColor(for lighting)才能得到整個場景的base color。

我們給輸出的base color添加一個desturation節點來降低base color飽和度,將0-255的顏色值範圍轉化到0-1的範圍,方便檢測。

獲取到場景中顏色值以後,我們就可以直接用if來進行判斷。如果我們項目規定顏色值範圍需要在50-240範圍內的話,我們就要用兩個if分別判斷是不是大於50和小於240。
由於unreal裏麵默認的顏色使用的是linearsrgb,所以判斷之前我們需要將50和240從srgb轉化成linear srgb。轉化公式如下:Linear = Pow((srgb/255+0.55)/1.055, 2.4)
我們可以直接在引擎裏麵算,也可以在外麵算好了最後的值再放進來。這裏我們直接在引擎裏麵寫,因為需要計算冪函數不用一些特殊手段不太好整。下麵是最高值和最低值的線性轉換,可以把範圍暴露出來,方便不同的項目需求。

然後開始連接到if語句上麵,對於最低範圍bc_low(50),如果輸入的值A>=50,則輸出1;否則就是在範圍之外的錯誤值,輸出0。

同樣,對於最高值bc_high(240),如果輸入的值A>=240,則是超出範圍的錯誤顏色值,輸出1;否則是<240的正確值輸出0。
這裏最高值的判斷和最低值的判斷相反(最低值正確為1,最高值正確為0),是因為我們可以利用兩者之間的減法來lerp不同的顏色區分錯誤和正確的顏色區域。
所以接著我們把兩個if相減,然後和表示錯誤的紅色以及表示正確的綠色進行lerp。

所以假設一下,如果輸入的顏色值是40,則上麵的if輸出0,下麵的if輸出0,相減得0,則輸出紅色;
如果輸入的顏色值是100,上麵if輸出1,下麵輸出0.相減得1,輸出綠色;
如果輸入顏色值250,則上麵if輸出1,下麵if也輸出1,相減得0,輸出紅色。
2、金屬
但是,上麵討論的都是非金屬的basecolor,如果檢測的模型中有金屬,那basecolor可能超過240,所以我們需要在最後的輸出中排除這種金屬的情況。即如果得到的紅色部分中的金屬度有大於0的,則這塊區域的顏色值是正確的。
同樣先用SceneTexture獲取場景中的金屬,然後去飽和度,再用if判斷

如果得到的值>0,則是金屬,輸出0,將輸出值與樓上紅綠顏色相乘,如果樓上的金屬那部分的顏色值是大於240的則相乘以後等於0黑色,符合pbr規定範圍。
我們將最後的輸出放到Emissive Color中。然後保存整個材質。

然後將這個材質加入到我們要檢測的場景中。
首先給我們需要檢測的場景拉一個post process volume,放大到你想要檢查的區域。

在postprocess的屬性中找到renderingfeatures屬性,並在Array中點加號新加一個AssetReference,把我們的mat_PbrValidate材質的instance放進去。


然後在場景中移動攝像機到post process的範圍內,就可以看到不在範圍內的紅色和符合範圍的綠色啦。

來源:Thepoly
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答在廣州這座繁華的都市中,數字創意產業正蓬勃發展,廣州視頻剪輯培訓成為許多影視愛好者的理想起點。隨著短視頻平台和影視製作需求的激......
在北京這樣一座充滿創意活力的都市,UI設計培訓正成為無數年輕人追逐職業夢想的跳板。隨著數字經濟的蓬勃發展,UI設計行業在北京展......
在當今創意經濟蓬勃發展的浪潮中,北京平麵設計培訓成為眾多職業追求者的理想起點。這座城市的活力與機遇吸引著無數人投身視覺藝術領域......
在影視和設計行業蓬勃發展的今天,虛幻引擎作為核心技術工具,正引領著視覺創作的革命。越來越多的人渴望掌握這門技能,而專業的培訓成......
在北京這座文化創意中心,平麵設計培訓行業蓬勃發展,為渴望入行的學員提供了豐富機遇。隨著數字媒體和影視產業的崛起,掌握視覺傳達技......
在上海這座充滿活力的城市,影視和設計行業正迎來前所未有的發展機遇,數字技術的進步讓3D建模成為創意產業的核心驅動力。參加專業的......
同學您好!