国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

作業(yè)三筆記

2023-04-09 13:03 作者:絕劍結(jié)城  | 我要投稿

phong:視角方向和光反射方向越重合,越亮。

前面這里是求視角方向和光反射方向的重合程度,首先對光方向求反(因為默認(rèn)是指向光源)然后用反射節(jié)點求出光關(guān)于法線方向的反射方向,然后點積視角方向得出重合程度。

這一大串節(jié)點其實可以萎縮成下面這三個,原因一目了然。

上面求出重合程度后,還需要做兩個處理輸出,一個是去掉負(fù)值,一個是改變高光范圍。power節(jié)點取大于一的冪的時候,值越大,暗處會越暗(0-1時)(具體看上上篇筆記)。

blinn phong:視半角方向和法線方向越重合,越亮。

節(jié)點和上面差不多,重合,處理。

兩者差別,phong質(zhì)量更高,尤其逆光處,但開銷會比bphong大一些。

左phong右b

下面的內(nèi)容是oldschool(即蘭伯特加布林馮的shader)的代碼實現(xiàn)。并以此,我講一下個人目前對代碼的理解。

首先是暴露參數(shù),這個ppt講得很清楚,不多說。

然后排除掉模板部分,剩下有四大部分,首先是輸入結(jié)構(gòu)和輸出結(jié)構(gòu)(可以理解為java的類(因為我對java比較熟一點,下面我都用java來類比吧))輸入類里面的成員變量寫的是要從模型中取讀什么數(shù)據(jù)。然后輸出類就是經(jīng)過頂點著色器方法后,返回的輸出類中的成員變量有啥。

頂點著色器就可以理解為一個返回值為輸出類,輸入值為輸入類的方法。在下面例子中,輸入類從模型中取讀了頂點和法線信息。然后把輸入類傳入頂點著色器方法,方法中首先新建一個對象o,然后給o這個輸出類對象的三個屬性賦值。比如o.posWS,表示物體的頂點世界位置。(注意雖然叫做輸入類輸出類,但實際上他們代表的對象都是物體。)這個物體的頂點世界位置需要用物體的自身頂點位置信息,乘以一個變換矩陣,才得到,然后賦給輸出類的posWS屬性。其他也是一樣,通過對輸入類的信息或者unity自帶的信息處理,給輸出類定義的變量賦值。

頂點著色器返回的o會進(jìn)入像素著色器,然后連連看里面節(jié)點的功能,也是在這里實現(xiàn)。這個代碼應(yīng)該挺好理解的,首先吧需要用到的向量準(zhǔn)備好,然后需要的點乘也準(zhǔn)備好,最后實現(xiàn)模型。

上面的是blinnphong的代碼,稍加修改(不會的就看連連看出來的代碼)就可以實現(xiàn)馮的。

兩者背面差別

然后是上次腦花的復(fù)現(xiàn)。

目標(biāo)

我看了下老師的解析后,做了些自己的改動。

最終總結(jié)出來節(jié)點分為五個部分:

第一部分是很熟悉的布林馮部分,就是布林馮光照模型。

第二部分我稱為腦花部分,UVcood節(jié)點記錄了采樣的UV坐標(biāo),乘以不同的值后再連到texture節(jié)點就可以對貼圖進(jìn)行不同大小的采樣,這里采了一大一小兩個樣然后乘起來。(我中間加oneminus節(jié)點是因為我的貼圖太黑了,我想要以白為主,線條為黑的,power節(jié)點則是為了加深黑色線條,因為直接乘出來后的黑色線條太淺了,總之都是因為我的貼圖找得不夠好而做出的修改節(jié)點,不是必要的)之后lerp灰色,來讓腦花圖變灰。

最終效果

腦花部分乘以布林馮部分,得到一個結(jié)合版腦花

第三高光部分,round四舍五入取出高光,然后乘以顏色改變高光顏色。

第四部分是底色部分,這里完全是我自己寫的。雖然說幾乎是純色節(jié)點,但直接賦予純色的話會看不出模型輪廓,這里我用取綠通道(差不多獲得一個光從上往下照的模型)后,用類似半蘭伯特的方法,把亮的部分變得很大(加的時候不是加0.5而是多加點),乘以顏色后獲得底色。

第五部分是造出二層底色,首先把上面的結(jié)合版腦花power一個值改變高光范圍,然后再round,然后加一個值讓他變灰而不是純黑白,然后再clamp(因為上面加后會出現(xiàn)超過1的部分)

得到這樣一個灰色的第二色階范圍,用它乘以第四部分,就可以得到兩層底色

然后再加上第三部分的高光,即可得結(jié)果。

最終效果

油漆效果

目標(biāo)

我這里用了莊懂大佬優(yōu)化的方法,還是分部分來解釋。

第一部分,是alpha部分,這里用一個噪點圖,然后縮放uv后取黑白兩色,營造出這種駁雜的alpha。這里取黑白兩色可以用round節(jié)點,也可以用step節(jié)點,但是round節(jié)點只能四舍五入,而step節(jié)點可以取截取的范圍,從而調(diào)節(jié)駁雜的斑紋的大小。

這里尤其需要注意的一點是,一定要用單色通道而不是RGB通道,否則由于分通道截取結(jié)果不同,會導(dǎo)致結(jié)果有雜色。

第二部分,前面都是熟悉的phong,但是在調(diào)整高光值的地方,連的是一個lerp節(jié)點,這個lerp節(jié)點以alpha為根據(jù),輸出兩個不同的高光值(黑的地方輸出B值,白的地方輸出A值),由此可以調(diào)節(jié)油漆和金屬本身的不同的高光。

第三部分是底色部分,也是熟悉的蘭伯特光照,然后乘以兩個顏色節(jié)點附加不同的顏色,再通過lerp節(jié)點,調(diào)節(jié)油漆和金屬顏色。

最后把光照部分和高光部分相加后輸出,即可得到結(jié)果。


作業(yè)三筆記的評論 (共 條)

分享到微博請遵守國家法律
汽车| 南江县| 当阳市| 德州市| 新平| 同心县| 宜宾县| 宁阳县| 丰都县| 平利县| 连山| 大田县| 林周县| 南澳县| 玛多县| 博野县| 洪洞县| 普定县| 邳州市| 锡林浩特市| 周口市| 丰城市| 东城区| 隆安县| 永州市| 台北县| 宣城市| 乐清市| 镇赉县| 新邵县| 金溪县| 乌海市| 内黄县| 吉林省| 遂平县| 大庆市| 洛浦县| 石渠县| 泽普县| 喜德县| 安多县|