發(fā)布時(shí)間:2024-04-13 17:00:28 瀏覽量:227次

| 隨著卡通渲染的發(fā)展,這個(gè)概念在逐漸泛化。 |
文/雷宇航
Hello 大家好,我是雷宇航,知乎上寫(xiě)卡通渲染眼鏡篇和面部篇那個(gè) MIZI,目前是網(wǎng)易的技術(shù)美術(shù),非常榮幸受邀給大家?guī)?lái)卡通渲染的分享。
https://www.zhihu.com/people/zi-xie-42-53

卡通渲染在動(dòng)畫(huà)和游戲中的制作思路是不同的,動(dòng)畫(huà)中相機(jī)經(jīng)常是固定角度,可以去手動(dòng)修正瑕疵,而游戲中的卡通渲染會(huì)更加注重在不同環(huán)境與角度下效果表現(xiàn)的合理性。
因?yàn)?2D 畫(huà)面在 3D 畫(huà)面中并不是完全成立的,所以在卡通渲染中各種 trick 就是難以避免的。前半部分我會(huì)首先來(lái)概述一下卡通渲染的基本內(nèi)容,這一部分會(huì)相對(duì)比較簡(jiǎn)單。
另外因?yàn)榛?PBR 的可能仍然是現(xiàn)在的大方向之一,后半部分內(nèi)容我們就討論一下卡通渲染和 PBR 結(jié)合的問(wèn)題,以及目錄中這些 Shading Model 中存在的 trick。
讓我們開(kāi)始第一個(gè)話(huà)題,基于 trick 的卡通世界。
從 2015 年罪惡裝備在 GDC 上分享卡通渲染的方法大現(xiàn)在,卡通渲染的發(fā)展非常迅速,有基于賽璐璐的動(dòng)畫(huà)還原,比如說(shuō)《罪惡裝備》,《賽馬娘》這些,還有基于 PBR 的風(fēng)格化,像是《鹿鳴》、《奇跡暖暖》,也有不那么 PBR,但是使用了 PBR 制作,比如《碧蘭幻想》《藍(lán)色協(xié)議》等,再到更加風(fēng)格化的探索,像是《破曉傳說(shuō)》。

卡通渲染的風(fēng)格表現(xiàn)力是越來(lái)越廣,對(duì)于卡通渲染來(lái)說(shuō),不像 PBR 那樣有標(biāo)準(zhǔn)流程和衡量準(zhǔn)則,卡渲很大程度上會(huì)依賴(lài)于美術(shù)方面的造型和色彩,所以美術(shù)風(fēng)格的處理在卡通宣傳中是比較重要的。
另外卡通渲染是人們主觀審美與現(xiàn)實(shí)環(huán)境抽象的結(jié)合,不同人對(duì)卡通渲染概念理解不同,這就產(chǎn)生了各式各樣的制作流程,不過(guò)還是有一定固定思路在其中的。然后我們就來(lái)看一下游戲開(kāi)發(fā)者們?yōu)榱撕每吹目ㄍㄤ秩井?huà)面都做了哪些努力?
首先列一下概念,卡通渲染常見(jiàn)的有兩個(gè)名稱(chēng),就是 Cel Shading 和 Toon Shading,Cel 是賽璐璐 celluloid 的縮寫(xiě),而 Toon 就是 cartoon 的簡(jiǎn)寫(xiě)。最簡(jiǎn)單的我們只需要陰影、描邊和高光,就可以組合成具有卡通感的畫(huà)面。

不過(guò)就像剛剛所說(shuō)的,這些并不是必須的。隨著卡通渲染的發(fā)展,卡通渲染這個(gè)概念在逐漸的泛化,在美術(shù)上有對(duì)應(yīng)的形態(tài)和色彩表現(xiàn),就可以有卡通風(fēng)格的感覺(jué)了。
首先是卡通渲染的基礎(chǔ)表現(xiàn),下面先來(lái)快速過(guò)一遍卡通宣傳的基本技巧,這一段內(nèi)容會(huì)比較簡(jiǎn)單。
卡通渲染第一步就是修改光照模型,對(duì) NDotL 計(jì)算蘭伯特光照進(jìn)行修改,常見(jiàn)的有使用 Step 函數(shù),RampMap 貼圖的方式。

首先是 Step 階躍函數(shù)。單獨(dú)的 Step 很簡(jiǎn)單,就是給另外一個(gè) A 值,大于該值的為 1,小于該值的為 0,而 Smoohstep 就是平滑的階躍函數(shù),圖中的紫色曲線(xiàn)就是 Smoohstep 的函數(shù)圖像,右邊是對(duì)應(yīng)的光照結(jié)果,在給定的 a 值和 b 值之間會(huì)有一段平滑的過(guò)渡,蘭伯特計(jì)算結(jié)果,將蘭伯特的計(jì)算結(jié)果通過(guò) step 重新映射,我們就可以控制陰影的邊界軟硬和位置了。

然后是 RampMap,ramp 圖修改光照的方式和階躍函數(shù)類(lèi)似,將蘭伯特光照作為映射值去采用 ramp 圖就可以得到對(duì)應(yīng)的風(fēng)格化光照。中間的圖就是 ramp 圖(又稱(chēng) LUT 查找表)。陰影的軟硬和顏色變化可以通過(guò) ramp 圖的色彩過(guò)渡來(lái)實(shí)現(xiàn)。

然后是邊緣光,這是常見(jiàn)的效果之一,動(dòng)畫(huà)中的邊緣光更偏向軟硬兩層邊緣光混合的情況。常見(jiàn)的實(shí)現(xiàn)方式主要有兩種,菲涅爾和深度偏移,也有使用邊緣檢測(cè)的方式,不過(guò)不太常見(jiàn)。

基礎(chǔ)的邊緣光可以由法線(xiàn)和視角方向點(diǎn)積獲得,基于 NDotV,同時(shí)這也是 Shader Graph 中 Fresnel 節(jié)點(diǎn)的計(jì)算。

對(duì)于深度偏移的邊緣光可以獲得等寬的硬邊緣。這對(duì)于一些轉(zhuǎn)折比較少的模型,比如立方體的支持會(huì)更好一點(diǎn)。原理就是將模型頂點(diǎn)偏移,重新采樣深度,然后與原模型的深度進(jìn)行比較,深度差大于某一值域,那么就是邊緣?!对瘛分械娜宋镞吘壍牧吝厬?yīng)該就是使用了這種方式。

明暗交界線(xiàn)是動(dòng)畫(huà)中經(jīng)常會(huì)出現(xiàn)的特征,這是繪畫(huà)中常見(jiàn)的處理?;谶@些特征,不少畫(huà)師會(huì)在明暗交界線(xiàn)上做特殊的偏色處理,動(dòng)畫(huà)中也都有體現(xiàn),在物理的渲染中比較接近這些效果的是 SSS 表面散射,這一表現(xiàn)可以看作是對(duì) SSS 的夸張。

那么對(duì)于明暗交界線(xiàn)的計(jì)算,我們只需要找到明暗交界線(xiàn)區(qū)域的亮度范圍就可以了。
如果使用 ramp 圖來(lái)計(jì)算光照,就可以直接將交界區(qū)域在 ramp 圖中畫(huà)出來(lái)。另外也可以使用數(shù)學(xué)的方法,比如之前的階躍函數(shù)用兩個(gè) Smoohstep,一正一反相乘,就可以求得中間明暗交界的位置,然后填充顏色?;蛘咭部梢允褂酶咚购瘮?shù),也叫正態(tài)分布函數(shù)來(lái)選中明暗交界線(xiàn)區(qū)域過(guò)渡的位置。

最后是描邊,描邊也叫輪廓邊,早期描邊主要的作用是補(bǔ)充動(dòng)畫(huà)中色塊的細(xì)節(jié),把轉(zhuǎn)折的結(jié)構(gòu)表現(xiàn)出來(lái),所以這個(gè)時(shí)候描邊叫做輪廓邊會(huì)更合適一點(diǎn)。另外輪廓邊并不一定是黑色的,在動(dòng)畫(huà)的場(chǎng)景中輪廓邊大多以亮線(xiàn)的高光形態(tài)來(lái)表示,就像右圖中的亮線(xiàn)勾邊一樣,人物上則一般是以黑色的輪廓線(xiàn)偏多一點(diǎn)。

然后到現(xiàn)在的描邊除了強(qiáng)調(diào)主體這樣的用途之外,更多的就是承載風(fēng)格化表現(xiàn)的特征了。像《無(wú)主之地》這種就是直接將描邊作為自身的風(fēng)格。

常見(jiàn)的描邊方式有這幾種,前面說(shuō)的邊緣光,RimLight 也是可以作為內(nèi)描邊的一種,而 Backface 和邊緣檢測(cè)是游戲中最常應(yīng)用的描邊,基于輪廓邊的檢測(cè)是離線(xiàn)渲染中經(jīng)常會(huì)使用到的方式,本村氏線(xiàn)是一種特殊的描邊,我也一起加到描邊方式里面了。

先說(shuō)一下 Backface。這種描邊方式是將物體渲染兩遍,一次正面,一次背面,背面渲染時(shí)向外擠出就可以獲得邊緣描邊了,值得一提的是法線(xiàn)是否合并會(huì)影響這種描邊的連續(xù)性,所以經(jīng)常要去存一份平滑的法線(xiàn)數(shù)據(jù)來(lái)計(jì)算描邊。

邊緣檢測(cè)是圖像處理的操作,通過(guò)算子對(duì)圖像卷積就可以獲得描邊,常見(jiàn)的 Sobel 算子是行動(dòng)卷積和,這種方式在不同場(chǎng)景下的消耗比較統(tǒng)一。
另外對(duì)于卡通渲染來(lái)說(shuō),我們會(huì)想要整潔的邊緣線(xiàn),對(duì)整個(gè)圖像進(jìn)行邊緣檢測(cè)就會(huì)出現(xiàn)多余的描邊信息,所以常見(jiàn)的技巧就是會(huì)在邊緣檢測(cè)區(qū)域做不同色塊的純色填充,這樣在進(jìn)行邊緣處理時(shí),就可以得到右圖中這樣一個(gè)比較干凈的結(jié)果,就像右邊這個(gè)圖中,上面的圖是對(duì)應(yīng)區(qū)域的色塊填充,下面的圖是邊緣檢測(cè)的結(jié)果。

基于模型拓?fù)涞妮喞厵z測(cè)是離線(xiàn)渲染中經(jīng)常使用到的方式,這種方式的消耗比較高,但是可以獲得一些很風(fēng)格化的表現(xiàn)。

最后就是本村線(xiàn)了,這個(gè)裝備中分享的角色表面描邊的方法,并不是外描邊,它是將模型的 UV 打直,只繪制于垂直于 U 軸或者 V 軸的直線(xiàn),避免斜線(xiàn)線(xiàn)條的采樣問(wèn)題,從而獲得銳利的線(xiàn)條表現(xiàn),就像左圖中對(duì)比一樣,不過(guò)這種方式對(duì)模型的制作要求很高,它的制作周期會(huì)比較長(zhǎng)。

現(xiàn)在我們已經(jīng)快速過(guò)了一遍卡通渲染的基礎(chǔ)知識(shí)了,那么運(yùn)用這些知識(shí),我們就可以輕松的做出一個(gè)卡通渲染的角色了。不過(guò)想要提升角色的質(zhì)感,還需要另外一塊拼圖,那就是 PBR,這張圖是我在 Unity 中測(cè)試的效果,使用的是《少女前線(xiàn)二》閃電姐的 MMD 模型。

我們來(lái)開(kāi)始進(jìn)行第二個(gè)話(huà)題,就是基于 PBR 的卡通表現(xiàn),基于物理的光照,PBR 是對(duì)現(xiàn)實(shí)的還原,而 NPR 則是非真實(shí)感渲染。雖然它們名稱(chēng)上是對(duì)立的,不過(guò)為了效果的提升,我們可以各取相關(guān)的特征縫合起來(lái)表現(xiàn)效果。使用 PBR 的優(yōu)勢(shì)在于 PBR 是藝術(shù)導(dǎo)向的,它能讓美術(shù)同學(xué)用直觀的參數(shù),標(biāo)準(zhǔn)化的工作流,快速的實(shí)現(xiàn)大量材質(zhì)的真實(shí)感渲染,把 NPR 的特征遷移到 PPR 中,并且保留這種易用性就是我們的目標(biāo)。

但實(shí)際操作中由于卡通渲染的特征涉及非物理屬性的方面太多,這種易用性是比較難以保持的,需要根據(jù)項(xiàng)目對(duì)不同的特征的參數(shù)進(jìn)行取舍。不過(guò) PBR 所帶來(lái)的環(huán)境光照和 PBR 的質(zhì)感是比較容易保留的。
左圖是 Unlit 的材質(zhì),右圖是基于 PBR 魔改的 NPR,混合 PBR 的 NPR 就可有一部分卡通效果,同時(shí)也具有 PBR 的質(zhì)感了。

PBR 中存在的間接光照計(jì)算可以比較方便的適配不同環(huán)境下的光照表現(xiàn)。不管是夜晚、白天、森林或者是在其他的一些環(huán)境下,在不同的環(huán)境中都可以有對(duì)應(yīng)的光照反饋,這對(duì)角色與環(huán)境的適配是十分有利的。

我用 Shader Graph 做了一個(gè)典型的 PBR 材質(zhì)。
眾所周知,PBR 是由直接光照與間接光照組成,這里的黃色和橙色區(qū)域就是直接光的鏡面反射與漫反射,綠色區(qū)域是間接光的鏡面反射與漫反射,藍(lán)色區(qū)域就是數(shù)據(jù)初始化的計(jì)算。比如 NdotL 、NDotV 這些。

這是這個(gè)典型的 PBR 是在不同的粗糙度與金屬度下的表現(xiàn)。

將 PBR 與卡通表現(xiàn)混合在一起的思路并不復(fù)雜,簡(jiǎn)單的來(lái)說(shuō)將之前講述的特征插入到 PBR 的計(jì)算流程中就可以了。但是怎么混合兩者的特征,在什么節(jié)點(diǎn)去插入計(jì)算,這是一個(gè)見(jiàn)仁見(jiàn)智的事情,對(duì)于不同的風(fēng)格,不同的管線(xiàn)流程都會(huì)有不同的結(jié)論。
我將對(duì)應(yīng)的卡通特征插入到 PBR 流程中,大概長(zhǎng)這個(gè)樣子,稍微有點(diǎn)兇殘。當(dāng)然了這個(gè) shader 只是為了講解做的測(cè)試,項(xiàng)目制作中不會(huì)這樣用 ShaderGraph 直接做 PBR。

首先是魔改 NPR 特征后 PBR 整體計(jì)算流程并沒(méi)有改變,依舊是直接光與間接光的鏡面反射和漫反射疊加。下面就簡(jiǎn)單來(lái)講述一下需要修改的部分。
首先是藍(lán)色區(qū)域中數(shù)據(jù)初始化階段的處理,最主要的是對(duì)法線(xiàn)N進(jìn)行的操作,NDotL 和相關(guān)的應(yīng)用計(jì)算都可以在這里進(jìn)行重新映射和合并,比如二值化陰影,面部陰影、頭發(fā)投影、影貼圖之類(lèi)的陰影相關(guān)的操作,然后把它們合入到 NDotL 的結(jié)果之中。同時(shí) NDotV 的控制也可以改變一部分菲尼爾的效果。
之后來(lái)看黃色區(qū)域的 DFG 項(xiàng),這里效果比較明顯的更改項(xiàng)就是法線(xiàn)分布函數(shù) D 項(xiàng),比如對(duì) GGX 高光的范圍進(jìn)行重新映射,或者更改計(jì)算各項(xiàng)異性高光,并且加入遮罩偏移之類(lèi)的操作,然后是橙色區(qū)域的 diffuse 計(jì)算,這個(gè)地方進(jìn)行的操作,基本上可以當(dāng)做 emission 自發(fā)光來(lái)添加。
對(duì)于卡通渲染來(lái)說(shuō),一些色彩混合操作需要在這里加入,比如頭發(fā)、高光,如果要使用顏色疊加的方式加入到計(jì)算結(jié)果中,就像柔光、線(xiàn)性光這些操作就需要在這里加入了,雖然不那么物理,但是可以保證效果。
之后就是綠色區(qū)域的間接光部分了,間接光的加入會(huì)顯著提高模型的質(zhì)感與立體感,但是對(duì)于卡通渲染來(lái)說(shuō),立體感的提升并不一定是好事,所以最直接的修改方式就是按照不同部分減少間接光的權(quán)重,比如對(duì)皮膚、面部這些需要平面表現(xiàn)的部分去減少間接光的比例。其他還有藍(lán)色協(xié)議使用了整體向上的法線(xiàn),計(jì)算統(tǒng)一顏色的間接光也是一種方式。
最后就是紫色區(qū)域了,這里的計(jì)算是直接當(dāng)作自發(fā)光來(lái)添加的,比如說(shuō)眼睛的高光,Matcap 反射,邊緣光之類(lèi)的。經(jīng)過(guò)對(duì) PBR 整體架構(gòu)的模改,我們就可以得到混合了 PBR 的卡通表現(xiàn)。這里它長(zhǎng)這個(gè)樣子,這是 PBR 魔改后在不同粗糙度和金屬度下的表現(xiàn)(下圖中右圖)。
和默認(rèn)的 PBR 的對(duì)比,因?yàn)樽远x了陰影顏色和一些自發(fā)光的原因,它整體會(huì)更加明亮一點(diǎn),卡通渲染插入到 PBR 中,并不會(huì)完全能量守恒。

不過(guò)對(duì)于卡通渲染來(lái)說(shuō),很多不守恒的表現(xiàn)是可以接受的。所以雖然并不完全能量守恒,但是也適合于卡通渲染的表現(xiàn)。
這樣我們就有了混合 PBR 的 NPR 表現(xiàn),之后就要為不同區(qū)域去定制對(duì)應(yīng)特征的 Shading Model 了,比如頭發(fā)、眼睛、皮膚這些。

最新一期的「Unity大咖作客」分享會(huì)上,Unity 邀請(qǐng)到了來(lái)自網(wǎng)易的 TA 大咖雷宇航,為大家?guī)?lái)《走近卡通渲染-關(guān)于 Trick 的兩三事》。
本文節(jié)選「Unity大咖作客」,分享內(nèi)容為網(wǎng)易 TA 大咖雷宇航的《走近卡通渲染-關(guān)于 Trick 的兩三事》,完整內(nèi)容請(qǐng)查看:
https://developer.unity.cn/projects/cel-shading-trick
游戲葡萄招聘產(chǎn)業(yè)記者/內(nèi)容編輯,
點(diǎn)擊「閱讀原文」可了解詳情
熱門(mén)資訊
1. 動(dòng)畫(huà)制作VS影視特效!到底有什么不同?
想了解動(dòng)畫(huà)制作和影視特效的區(qū)別嗎?本文將帶您深入探討動(dòng)畫(huà)制作和影視特效之間的關(guān)系,幫助你更好地理解這兩者的差異。
2. 快影、剪映、快剪輯三款軟件對(duì)比評(píng)測(cè),哪款更適合小白?
想知道快影、剪映、快剪輯這三款軟件哪個(gè)更適合小白?看看這篇對(duì)比評(píng)測(cè),帶你了解這三款軟件的功能和特點(diǎn),快速選擇適合自己的視頻剪輯軟件。
3. 剪映專(zhuān)業(yè)版時(shí)間軌道軌道調(diào)整技巧
剪映專(zhuān)業(yè)版新增全局預(yù)覽縮放功能,可以輕松放大或縮小時(shí)間軌道。學(xué)習(xí)如何使用時(shí)間線(xiàn)縮放功能,提升剪輯效率。
4. 豆瓣8.3《鐵皮鼓》|電影符號(hào)學(xué)背后的視覺(jué)盛宴、社會(huì)隱喻主題
文|悅兒(叮咚,好電影來(lái)了!)《鐵皮鼓》是施隆多夫最具代表性的作品,影片于... 分析影片的社會(huì)隱喻主題;以及對(duì)于普通觀眾來(lái)說(shuō),它又帶給我們哪些現(xiàn)實(shí)啟發(fā)...
5. 從宏觀蒙太奇思維、中觀敘事結(jié)構(gòu)、微觀剪輯手法解讀《花樣年華》
中觀層面完成敘事結(jié)構(gòu)、以及微觀層面的剪輯手法,3個(gè)層次來(lái)解讀下電影《花樣年華》的蒙太奇魅力。一、 宏觀層面:運(yùn)用蒙太奇思維構(gòu)建電影劇本雛形。蒙...
6. 為什么漫威、DC這類(lèi)大片的電影特效如此燒錢(qián)?原因在這里
想知道為什么漫威、DC這類(lèi)特效滿(mǎn)天飛的大片花費(fèi)如此之高嗎?一秒鐘幾十萬(wàn)上百萬(wàn)的電影特效為何如此“貴”?快來(lái)了解電影特效制作的內(nèi)幕~
7. 15種電影剪輯/轉(zhuǎn)場(chǎng)藝術(shù),賦予影片絕妙魅力
15種電影剪輯/轉(zhuǎn)場(chǎng)手法,讓影片更吸引眼球!回顧電影中豐富多樣的專(zhuān)場(chǎng)技巧,比如瞬間從一個(gè)場(chǎng)景中變換到空中... 現(xiàn)在是測(cè)試技術(shù)的時(shí)候了!以下是一些常見(jiàn)剪輯手法,讓你觀影過(guò)程更加華麗動(dòng)人!
本文介紹了十款強(qiáng)大的PR視頻剪輯插件,幫助提升視頻剪輯效率,提高創(chuàng)作品質(zhì),并降低創(chuàng)作難度。
9. 《肖申克的救贖》通過(guò)鏡頭語(yǔ)言,向觀眾展現(xiàn)了安迪自我救贖的過(guò)程
以突出劇情的緊張氛圍和角色的情感變化。此外,電影的拍攝手法和剪輯方案還與影片的敘事結(jié)構(gòu)和主題緊密相連。導(dǎo)演巧妙地運(yùn)用回憶、閃回和象征性鏡頭等...
10. 干貨丨真正厲害的剪輯師都喜歡用這九大“技巧轉(zhuǎn)場(chǎng)”
想學(xué)習(xí)剪輯技術(shù)轉(zhuǎn)場(chǎng)的方法嗎?了解這九種技巧轉(zhuǎn)場(chǎng)方法,提升影片藝術(shù)感染力,讓你的視頻作品更加生動(dòng)有趣!
最新文章
同學(xué)您好!