什么是基于物理的著色呢卧土?
基于物理的著色(簡稱PBS)就是以某種方式模擬現(xiàn)實(shí)中材質(zhì)和光照的相互作用惫皱。直到最近PBS才可以應(yīng)用在實(shí)時(shí)圖形渲染中。這種方法在需要光照和材質(zhì)更加直觀和逼真地協(xié)同工作的場(chǎng)合下優(yōu)勢(shì)非常明顯夸溶。
基于物理著色的想法是創(chuàng)建一種友好的方式來實(shí)現(xiàn)在不同的光照條件下的逼真效果逸吵。它模擬光線在現(xiàn)實(shí)中的行為,而不是使用多個(gè)特定的模型來模擬缝裁,因?yàn)楹笳呖赡軙?huì)在一些情況下失效扫皱。
為實(shí)現(xiàn)這種效果它要遵循物理原理,包括能量守恒(也就是物體反射出去的光量不可能超過所接收的光量)捷绑,F(xiàn)resnel反射(所有表面反射在掠射角處更加強(qiáng)烈)韩脑,以及物體表面如何自我遮擋(幾何術(shù)語)等。
Unity 5包含了若干標(biāo)準(zhǔn)著色器(Standard Shader)粹污,它們共同組成了一個(gè)完整的PBS光照明模型段多,且非常易于使用。標(biāo)準(zhǔn)著色器(Standard Shader)主要是針對(duì)硬質(zhì)表面(也就是建筑材質(zhì))而設(shè)計(jì)的壮吩,可以處理大多數(shù)現(xiàn)實(shí)世界的材質(zhì)进苍,例如石頭加缘、陶瓷、銅器觉啊、銀器或橡膠等拣宏。但它也可以非常出色地處理一些非硬質(zhì)表面的材質(zhì),例如皮膚杠人、頭發(fā)或布料等勋乾。
跟“我的”游戲內(nèi)容有何關(guān)聯(lián)?
需要注意的是:基于物理的著色器并不一定意味著“真實(shí)”嗡善,單純地施加限制也不一定就能完全決定游戲表現(xiàn)辑莫。基于物理的著色器適用于多種不同的美術(shù)風(fēng)格和美學(xué)效果罩引,例如從精確掃描(Accurately Scanned)各吨,到傳統(tǒng)拍照(Traditionally Photographed),再到手工繪制(Hand-painted)的各類紋理袁铐。
對(duì)于編寫無需特殊光照表現(xiàn)的2D游戲的人們來說,PBS不是必需的選項(xiàng)绅你。但是,如果你想玩轉(zhuǎn)PBS昭躺,即基于Standard Shader來創(chuàng)建出酷炫的效果忌锯,在這里我們將提供一些有用的使用經(jīng)驗(yàn)。
一窺究竟
當(dāng)我們談及中的光照時(shí)领炫,不妨引入兩個(gè)概念偶垮,即Context和Content:Context是指Unity原生的一些內(nèi)容;而Content則是用戶創(chuàng)造的內(nèi)容(類似于UGC)帝洪。
關(guān)于CONTEXT
當(dāng)給一個(gè)對(duì)象添加光照時(shí)似舵,了解該對(duì)象周邊的環(huán)境是非常重要的。Unity的先前版本中已經(jīng)提供了一些經(jīng)典的輔助工具葱峡,例如光照探頭砚哗,它能夠?qū)δ硞€(gè)位置上的漫反射光照進(jìn)行采樣。而在Unity 5中砰奕,我們將提供用于描述周圍環(huán)境信息的更加有效的方式蛛芥。
縱覽全局
HDR信息是PBS中一個(gè)非常重要的元素。它能夠更加有效地描述環(huán)境信息军援,例如仅淑,太陽的明亮度可能會(huì)超過藍(lán)天10倍。Unity5中提供了一個(gè)原生的通道來處理HDR格式的文件胸哥,你可以直接導(dǎo)入后綴為.hdr和.exr的圖片資源涯竟。
添加發(fā)光效果
反射探頭(Reflection Probe)表達(dá)了某個(gè)確定位置的反射情況。Unity5的場(chǎng)景中會(huì)默認(rèn)包含一個(gè)反射探頭(你可以依次點(diǎn)擊Edit->Scene Render Settings->Default Reflection來查看它)。你可以對(duì)其設(shè)置進(jìn)行修改庐船,或者干脆依賴于天空盒且不設(shè)置具體位置银酬。
當(dāng)然,你也可以創(chuàng)建自己的反射探頭(Reflection Probe)筐钟。只需依次點(diǎn)擊GameObject->Light->Create Reflection probe即可.
然后你就可以進(jìn)行如下操作:
你可以將反射探頭(Reflection Probe)拖動(dòng)到場(chǎng)景中的任意位置捡硅,它就開始主動(dòng)獲取周圍環(huán)境的光照信息了。
每個(gè)反射探頭(Reflection Probe)都有其作用域(就是探頭周圍顯示的黃色包圍盒)盗棵。作用域內(nèi)的物體將從反射探頭上獲取其反射信息。
更多的逐像素著色:
由于Unity5提供的動(dòng)態(tài)全局光照特性北发,光照探針也包含了間接的光線反射信息纹因,并通過標(biāo)準(zhǔn)著色器作用于每個(gè)像素奢方。這樣再芋,不管光線是直接或間接地作用于法線貼圖,它的效果看起來都會(huì)更棒瓢喉。
動(dòng)態(tài)全局光照
全局光照是PBS支持環(huán)境中Context層面的重要組成部分狱庇。為了對(duì)Unity5中的全局光照有一個(gè)全面的理解惊畏,最好的方法是查看我們發(fā)表的有關(guān)動(dòng)態(tài)全局光照的博客文章。
顏色空間
PBS和標(biāo)準(zhǔn)著色器都工作在線性和Gamma模式密任。HDR編碼颜启、反射探針的數(shù)據(jù)以及其他Content都會(huì)與你選擇的顏色空間相適應(yīng)。但無論何時(shí)浪讳,為了達(dá)到最佳的(最讓人舒適的)視覺效果缰盏,你應(yīng)該盡可能保持在線性顏色空間。
內(nèi)容
內(nèi)容是你直接創(chuàng)建的數(shù)據(jù)淹遵,標(biāo)準(zhǔn)著色器確實(shí)針對(duì)Unity中傳統(tǒng)的材質(zhì)工作流程進(jìn)行了的一些改進(jìn)口猜,希望你能接受并喜歡。
材質(zhì)編輯器
標(biāo)準(zhǔn)著色器還引入了一個(gè)新的材質(zhì)編輯器透揣,它使PBS的材質(zhì)編輯工作比以前的非PBS材質(zhì)更簡單济炎。
新編輯器更加精簡,但卻提供了材質(zhì)的所有可能選項(xiàng)辐真。在新編輯器中须尚,我們不需要選用不同的著色器來改變紋理通道;不會(huì)再出現(xiàn)“texture unused, please choose another shader” 這樣的提示侍咱;不再需要通過切換著色器來改變混合模式恨闪。
你會(huì)有一些備選的紋理通道,無需強(qiáng)制使用放坏,任何一個(gè)閑置通道的相關(guān)代碼都會(huì)在編譯時(shí)被優(yōu)化掉咙咽,因此不用擔(dān)心效率問題。Unity會(huì)根據(jù)你輸入到編輯器中的任何數(shù)據(jù)來生成正確的代碼淤年,使它以最高的效率運(yùn)行钧敞。
小貼士:你可以用ctrl+點(diǎn)擊紋理的方式預(yù)覽大圖蜡豹,并且還可以分別查看顏色和Alpha通道。
按你預(yù)想的方式點(diǎn)亮一切溉苛!
PBS當(dāng)然和Unity5的動(dòng)態(tài)全局光照工作流程是兼容的镜廉,全局光照系統(tǒng)完全了解標(biāo)準(zhǔn)著色器的工作方式,并在渲染場(chǎng)景時(shí)將其考慮在內(nèi)愚战。
PBS和全局光照的合璧娇唯,使得快速改變整個(gè)場(chǎng)景的光照條件變成可能,效果也更逼真寂玲。
對(duì)下圖中的這個(gè)小鎮(zhèn)塔插,你會(huì)注意到它和本文開頭的那幅圖有不同的光照設(shè)置。靜態(tài)物體看起來更有質(zhì)感和層次感拓哟,整個(gè)場(chǎng)景錯(cuò)落有致想许。這正是PBS的魔力所在。一旦材質(zhì)加以PBS方式構(gòu)建断序,它就會(huì)變得和光照條件完全獨(dú)立流纹,從而大大減少工作量!
這就是我們喜歡它的理由违诗,也是我們認(rèn)為你們也會(huì)喜歡它的理由漱凝!
轉(zhuǎn)自:http://www.manew.com/thread-31111-1-1.html