Simulate Solid Surface
光的行為
????當(dāng)光和物體相遇時(shí),光會(huì)有三種行為:被物體反射、穿過(guò)物體(物體是透明或半透明的)或者被吸收。
高光反射和漫反射
????高光反射(Specular Reflection)會(huì)在表面光滑且反光的物體上看到,比如鏡子,不銹鋼球等,此時(shí)光線在物體表面是直接“彈”到了反射方向。還有一種反射叫做漫反射(Diffuse Reflection),此時(shí)光線被吸收并反射到了四面八方。下圖白色箭頭表示高光反射,紅色箭頭表示漫反射:

漫反射系數(shù):Base Map
????在Unity中,URP/Lit Shader需要Base Map來(lái)表示漫反射系數(shù)。其他Shader通常稱(chēng)這個(gè)屬性為Albedo或Diffuse Map(從技術(shù)上嚴(yán)格地來(lái)講,它們并不是完全相同的東西)。
????Albedo這個(gè)詞描述了漫反射的度量值。通常就是指顏色值,通過(guò)RGB三通道值表達(dá)。RGB值可以轉(zhuǎn)換為Hue(色調(diào)),Saturation(飽和度)和Luminosity(亮度)。Albedo的luminosity對(duì)應(yīng)于漫反射的量,hue和saturation描述了從表面出來(lái)的光的質(zhì)量。
Specular workflow
????日常生活中有許多金屬物體比如鋼筆,不銹鋼球等,在光源下它們會(huì)產(chǎn)生高光反射。在Shader中,高光又是怎么和漫反射進(jìn)行描述和區(qū)別的呢?
????讓物體表面看起來(lái)像是金屬一樣的屬性叫做高光度(Specularity)。高光度和光滑度(smoothness)是不同的。我們可以將一顆蘋(píng)果擦到很光滑,但沒(méi)辦法將它擦成金屬外觀。但是光滑的物體是有一些高光度的。
????下圖中的蘋(píng)果,smoothness都一樣,但specularity從左至右依次增強(qiáng)。

???????和漫反射表面一樣,金屬表面會(huì)吸收光。在陽(yáng)光下放置一個(gè)金屬物體,過(guò)一段時(shí)間后,它會(huì)變燙。
????????Specular workflow
????????有兩種workflow可供我們使用來(lái)指定材質(zhì)中的金屬外觀(metallic apperance)。當(dāng)使用URP/Lit Shader中的Specularity屬性時(shí),用到的是Specular workflow(后面筆記再解釋Metallic workflow)。
????? ? 在Specular workflow中:
????????閃亮的金屬表面擁有高Specularity以及高Smoothness。
????????閃亮的非金屬表面擁有低的Specularity和高Smoothness。
????????Smoothness控制高光反射的范圍,Specular Map控制了高光反射的量的大小以及高光反射的顏色。
????????Specular Map可使用RGB顏色值
????????下面通過(guò)實(shí)驗(yàn)來(lái)說(shuō)明:
????????在Unity場(chǎng)景中選擇一個(gè)物體,比如蘋(píng)果,選擇蘋(píng)果的材質(zhì)

????????Inspector中將其Workflow Mode設(shè)置為Specular

????將其Smoothness進(jìn)行調(diào)整,比如設(shè)置為1。

????接下來(lái),設(shè)置Specular Map,然其看起來(lái)像是一顆金屬蘋(píng)果,帶鏡面反射效果。

Metallic workflow
????????在Unity中,Specular workflow是更加科學(xué)的讓物體有金屬感的方式。另一種方式,metallic workflow是一種更加簡(jiǎn)單的方式,但這種方式并不嚴(yán)格遵循物理光學(xué)的規(guī)則。
????????Metallic workflow中:
????????閃亮的金屬表面擁有高M(jìn)etallic和高Smoothness
????????閃亮的非金屬表面使用0或者低的Metallic和高Smoothness
????? ??Smoothness控制高光反射的范圍
????????Metallic map值使用灰階值
????????之前的蘋(píng)果的例子中,我們將Metallic Map設(shè)置為1,Smoothness設(shè)置為1,可以得到和Specular workflow類(lèi)似的效果。
Specular workflow和Metallic workflow對(duì)比

????????具體應(yīng)用中改如何選擇哪種workflow呢?在導(dǎo)入資源的時(shí)候,我們可能會(huì)看到有一些資源使用Specular workflow,另外一些資源使用Metallic。實(shí)際上我們也不必糾結(jié),只要能達(dá)到想要的效果即可。Metallic workflow通常來(lái)說(shuō)更常見(jiàn),因?yàn)樗褂闷饋?lái)更加簡(jiǎn)單,但其是一種經(jīng)驗(yàn)性的近似。Specular workflow基于真實(shí)世界中反射的物理規(guī)則,但Specular Map用起來(lái)是很有挑戰(zhàn)的事情。
Smoothness
????? ?也稱(chēng)作gloss或glossiness。它影響高光的范圍。光滑的表面上,光線會(huì)反射到統(tǒng)一的方向上,因此我們能夠從物體表面看到光源的形狀。對(duì)于一個(gè)粗糙的表面,仍然有高光反射存在,但反射光的方向是分散的。
????????下圖的五顆蘋(píng)果,Metallic都是0.5,但Smoothness從左至右依次增加。

????