最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

原神角色渲染04

2023-07-04 13:06 作者:絕劍結城  | 我要投稿

描邊

描邊這部分,感覺要吃透得花大功夫,我打算再后面學習中慢慢參悟,現(xiàn)在在原神渲染這里拖太久了。所以這部分我直接copy大佬的代碼。

不過基本原理還是要了解的。目前主要的Back facing描邊法,就是在繪制基礎色的Pass外多加一個Pass,繪制兩次,一次繪制基礎效果,一次專門繪制描邊。繪制描邊這次,把頂點根據(jù)法線外擴,并剔除正面,以此實現(xiàn)描邊效果。

(但是他是怎么區(qū)分正面和描邊的呢?)使用cull front,這樣描邊和角色重疊的部分會因為不能通過深度檢測而cull掉,保證描邊不會遮擋角色。

但是在URP管線里面,通常使用Render feature 來實現(xiàn)多pass。具體步驟如下:1.寫一個描邊的shader,這里我直接copy的這位大佬的。https://zhuanlan.zhihu.com/p/361285222

用這個shader創(chuàng)建一個材質,然后再Renderer文件中新建一個Render Objects,把Overriders里面的材質選中之前創(chuàng)建那個材質,然后Layermask可以選擇這個材質應用的層。差不多就相當于在之前渲染的畫面上,對指定層內的物體,再用這個shader渲染一次。

最終描邊效果如下,其實這個方法還很粗糙,一個是描邊顏色我現(xiàn)在只能指定一種顏色,如果想用alpha圖來控制的話,頭發(fā)和身體是不一樣的圖,但是它們位于同一個組件同一層里面,也就是說,它們用Render feature的話只能共用同一個材質(至少我目前只能)。但其實原神本身的描邊顏色是分5層的。第二是很明顯的描邊斷裂,這個通常使用平滑法線的辦法解決。

參考這個大佬:https://zhuanlan.zhihu.com/p/109101851

我用了它的工具,下面是使用方法:把這段代碼保存為一個文件,比如PlugTangentTools.cs,然后放到你的Unity項目的Assets/Editor文件夾下。這樣就可以在Unity的菜單欄中看到Tools/模型平均法線寫入切線數(shù)據(jù)的選項。你可以選擇一個或多個包含MeshFilter或SkinnedMeshRenderer組件的游戲對象,然后點擊這個選項,就可以把它們的模型的平均法線寫入切線數(shù)據(jù)了。注意,這個操作會修改你的模型的數(shù)據(jù),所以最好先備份一下你的模型文件。

我使用這個工具后,再把原來根據(jù)法線擴張改為根據(jù)切線擴張。很簡單,改這一行就可以。但是效果還是不太理想,我猜測是因為這個工具計算的平均法線是直接算術平均,沒有根據(jù)面大小等因素加權平均。

而且這個方法把平均法線存進切線,我在采樣法線貼圖部分也調用了切線,不懂這樣會對采樣法線貼圖有什么影響,不過我剛剛用rgb顯示法線看了一下,至少沒看出什么大問題。

邊緣光

大家主要用的是等寬屏幕空間邊緣光。下圖是它和菲涅爾的對比。(來源:https://zhuanlan.zhihu.com/p/551629982)原理和介紹下面這些連接都說得很清楚。

https://zhuanlan.zhihu.com/p/365339160

https://zhuanlan.zhihu.com/p/552098339

但是我從昨天到現(xiàn)在卡了很久還是無法實現(xiàn)這個效果。首先深度圖的采樣就花費了超級多的時間。不管是加pass還是直接采樣,在截幀工具里面都看不到它的身影。

但是我把代碼套上去,他似乎又是生效的,但是這個效果在scene窗口里非常不對。在game窗口里都是好像有邊緣光效果了。但也很不對。而且還是看不到深度圖在frame debugger里。

這個大佬說要寫一個Pass,但是我把另一個大佬寫的DepthOnly Pass復制過來,也還是和上面效果一樣,看不到深度信息。結果很詭異。

然后b站這個大佬的用的又不是URP,我也用不了SampleSceneDepth這個函數(shù)。

唉中間反正還問了AI也問不出什么??彀盐腋惚罎⒘?。其實原理理解起來也不算難,但是就是這個深度,我按那些大佬的來根本搞不了,自己搜了半天也搞不了。

游戲相機我也設置了使用管線設置,然后scene的攝像機我不懂去哪里調,好像也調不了。

受不了了這種感覺,放棄的話又感覺好憋屈,不放棄的話又仿佛無頭蒼蠅,找不到路。我感覺其實只是少了一些簡單的步驟,但是想要懂這些簡單的步驟,又需要我目前沒掌握的很多知識。

而且有些錯誤真的很搞人心態(tài),明明全部代碼只有這個一個ST,它給我報錯重定義了,我刪掉后又說缺少。

好吧,后面問AI好像是和系統(tǒng)的一個變量重名了。。。唉以后別取這種名了。

算了,邊緣光暫時放棄了,我后面學習更多儲備知識后再搞。

補充

剛剛法線描邊又不對了,然后又運行一次平滑法線那個工具才又好了,感覺是每次重啟,切線信息都會恢復默認。

總結

非常遺憾,花了快一周時間,結果也沒能還原得很好。我做了錯飯。最后得描邊和邊緣光部分慘不忍睹。而且包括前面的陰影也很粗糙,多層級陰影還有陰影mask都沒用。而且還有些技術沒有用。比如tonemapping,似乎可以用來營造那種朦朧而清晰的氛圍。(下面鏈接講有)

https://zhuanlan.zhihu.com/p/511540455

https://www.cnblogs.com/yaoling1997/p/16029385.html

不過,這算是之前學莊懂的一個階段作業(yè)吧,經過這個經歷,我也是大開了眼界,看到了很多高端的東西,深感自己還有很多需要學的。我打算之后自己邊學邊繼續(xù)完善這個shader吧。

比如把大部分參數(shù)開放,畢竟據(jù)說TA最本職的工作,就是開放shader參數(shù)方便美術調整嘛。

然后后面還有個想法,學了PBR之后,把之前的寶可夢渲染成真實質感的。

不過要說具體的完善思路,我現(xiàn)在甚至也說不出來,只能說繼續(xù)學吧,學到一定階段后,再回過頭來看,也許很多東西就明了了。謝謝。

階段性成果


原神角色渲染04的評論 (共 條)

分享到微博請遵守國家法律
都江堰市| 义马市| 合水县| 太白县| 上饶县| 武威市| 凉城县| 商水县| 镇江市| 盐城市| 中牟县| 绥宁县| 贵德县| 虎林市| 方山县| 东乡族自治县| 西乌珠穆沁旗| 乐都县| 江陵县| 保定市| 连平县| 沂水县| 中西区| 景德镇市| 南木林县| 通州区| 莒南县| 香港 | 永登县| 新津县| 泗洪县| 谢通门县| 浏阳市| 福清市| 正安县| 凌源市| 西丰县| 吕梁市| 泸州市| 绵阳市| 新闻|