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
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答本文將為你探索室內設計需要學習的關鍵課程,並引導你如何在火星時代教育獲得專業的室內設計培訓。
本文將介紹適合學習Unreal Engine 4設計的人群,以及火星時代教育如何幫助您成為UE4設計領域的專業人士。
火星時代教育的商業廣告插畫班詳解插畫在商業廣告中的作用,以及如何提高你的插畫技巧,讓你的廣告項目得到更大的提升。
火星時代教育提供全麵的人物角色建模網絡培訓班,教您如何掌握角色建模的技巧,塑造出生動的遊戲角色。
平麵設計學習入門:火星時代教育帶你開啟設計之旅 | 引領設計未來
借助火星時代教育的專業教學,掌握平麵設計的基礎知識和技能,快速入門,開始你的設計之旅。
探究數字化虛擬人課程的重要性,以及火星時代教育如何幫助學生掌握相關知識和技能。關鍵詞:數字化虛擬人,火星時代教育。
1. 打開微信掃一掃,掃描左側二維碼
2. 添加老師微信,馬上領取免費課程資源
同學您好!