作者oopFoo (3d)
看板GameDesign
标题[程式] Cel/Toon Shading 闲聊
时间Sat Aug 22 12:51:18 2020
https://www.youtube.com/watch?v=mnxs6CR6Zrk
那天看到他解释任天堂的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
这样景深变化
https://i.imgur.com/kq94G8W.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://webptt.com/cn.aspx?n=bbs/GameDesign/M.1598071883.A.63B.html
1F:推 dreamnook: 08/22 18:38
2F:推 dklassic: Arc 的做法很难参考就是 XD 08/22 19:13
3F:→ dklassic: 基本上就跟暴力人工处理没有太大的差异了 08/22 19:13
4F:→ dklassic: 所以对应地每名角色开发速度都超慢 08/22 19:14
arc太坚持他的作法,其实很多地方不需要花这麽多时间,他细节作太细,当然效果是有出来没错。
例如说用normal map也尽量不要调整normal只调threshold应该就有90%的效果,然後他坚持tint texture,其实这自动用(HSV/HSL/HSB)来算应该也有90%的效果。
然後超花时间的特效。确实没人可跟他一样。
※ 编辑: oopFoo (101.136.38.249 台湾), 08/22/2020 20:05:06