[程式] Cel/Toon Shading 閒聊
那天看到他解釋任天堂的Cel-Shading之後,我就去看他另一篇Deeper Dive.
https://www.youtube.com/watch?v=f1sUPUGu9iw
真的講的很棒,一些任天堂的遊戲設計,而且他提到 亞克系統的木村純也 發展的Cel Shading超棒,所以我也跑去看了
http://www.ggxrd.com/Motomura_Junya_GuiltyGearXrd.pdf
https://www.gdcvault.com/play/1022031/GuiltyGearXrd-s-Art-Style-The
看完後,我超高興,因為長久以來Cel-Shading的陰影閃爍問題一直困擾我。他簡單的解決了,而且6年前就解決的很漂亮。
木村是在Visual Art而不在Programming所以我完全沒注意而錯過。
先講基本的Cel Shading.
https://i.imgur.com/cuwNOZn.jpg
就光源計算dot(Light, Normal),然後取1D texture來得到亮面,陰影。
薩爾達傳說風之律動就是用這個但多一個變化,有白天晚上,各個天氣,還有不同物件都可以有自己的1d texture,所以氣氛可以做的很好。
但這算法有幾個問題,一個是陰影長在不想要的位置
https://i.imgur.com/iPRquuE.png
但最糟糕的是,物件動起來時,陰影跟著閃爍。
但木村解決了
第一個用美術調整Normal,這沒什麼問題,很多人在做
https://i.imgur.com/p29FfAM.jpg
第二個是簡單暴力但有效的Threshold設定,這個是關鍵。
https://i.imgur.com/jilCf4B.jpg
他連陰影的每個顏色都要控制,這我覺得普通遊戲是不需要
https://i.imgur.com/My5vHmv.jpg
剛好有人做傳統npr(toon是其中的一種)跟加了木村的控制的比較。
https://www.youtube.com/watch?v=xmS5aQEA1Xw
你可以看到傳統的會一直閃爍。木村版本太棒了。
--------------------------------------------------------------------------
這幾天,我一大堆想法,就如我去年從Opengl Insights學到Programmable Pulling一樣,大突破。
例如可以改一下Threshold的方法,不要用step(threshold, dot(light,normal))。改threshold [-1,1]+dot(light,normal)再clamp至[0,1],這樣就可用1d texture來做多層次陰影。
還有2d texture也可用上
https://i.imgur.com/h22j7kN.jpg
或rim-light都可做
https://i.imgur.com/kwpLeVz.jpg
也可用CubeMap來做lighting,這樣可以更細調光源。
最後再看亞克系統的遊戲,3d做成2d,而且真的很棒。
https://www.youtube.com/watch?v=kZsboyfs-L4
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.134.64 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1598071883.A.63B.html
推
08/22 18:38,
4年前
, 1F
08/22 18:38, 1F
推
08/22 19:13,
4年前
, 2F
08/22 19:13, 2F
→
08/22 19:13,
4年前
, 3F
08/22 19:13, 3F
→
08/22 19:14,
4年前
, 4F
08/22 19:14, 4F
arc太堅持他的作法,其實很多地方不需要花這麼多時間,他細節作太細,當然效果是有出來沒錯。
例如說用normal map也盡量不要調整normal只調threshold應該就有90%的效果,然後他堅持tint texture,其實這自動用(HSV/HSL/HSB)來算應該也有90%的效果。
然後超花時間的特效。確實沒人可跟他一樣。
※ 編輯: oopFoo (101.136.38.249 臺灣), 08/22/2020 20:05:06
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章