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

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

MatCap:低成本PBR的原理與實(shí)現(xiàn)

2022-09-07 17:15 作者:獨(dú)立游戲人-老雷  | 我要投稿

MatCap是Material Capture的縮寫(xiě),意為“材質(zhì)捕獲”;?

Matcap Shader是一種在某些層面能替代甚至超越PBR的次時(shí)代渲染方案;?

它的效率極高、計(jì)算成本極低,顯示效果極佳,卻能完美運(yùn)行于不同的移動(dòng)平臺(tái),并兼容AR、VR設(shè)備,所以極具研究與實(shí)用價(jià)值;?

但Matcap也有很多局限性和缺點(diǎn),在今天的課程中,我就將給大家分享講解Matcap的實(shí)現(xiàn)原理和并實(shí)現(xiàn)matcap渲染,以及如何在以較低成本渲染的同時(shí),解決它的一些效果上的缺陷。

版權(quán)聲明

  • 本文為“優(yōu)夢(mèng)創(chuàng)客”原創(chuàng)文章,您可以自由轉(zhuǎn)載,但必須加入完整的版權(quán)聲明

  • 學(xué)習(xí)更多技術(shù)干貨,請(qǐng)加qq:1517069595或vx:alice17173(企業(yè)級(jí)性能優(yōu)化/熱更新/Shader特效/服務(wù)器/商業(yè)項(xiàng)目實(shí)戰(zhàn)/每周直播/一對(duì)一指導(dǎo))

  • 點(diǎn)贊、關(guān)注、分享可免費(fèi)獲得配套學(xué)習(xí)資源

  • 詳細(xì)內(nèi)容可參考文末完整視頻

為什么要用MatCap

  • 左邊:

    • 每一個(gè)公式都對(duì)應(yīng)了一段Shader代碼,這里展示的是局部光照,而且這里并沒(méi)有把這些公式的計(jì)算過(guò)程展開(kāi),大家就已經(jīng)看到這么多公式了,展開(kāi)后對(duì)應(yīng)的渲染指令會(huì)更多,因此大家可以想象到這里的計(jì)算開(kāi)銷是比較大的。

    • 這里還僅僅是采用了局部光照計(jì)算模型,如果我們采用更真實(shí)的基于物理的光照,也就是所謂的PBR,那么,計(jì)算的開(kāi)銷會(huì)更大!

  • 右邊:

    • 為什么要用MatCap?一句話說(shuō)就是:性能省、效果佳。

    • 為什么性能省?是因?yàn)樗菑囊粡埣y理貼圖去采樣光照計(jì)算的結(jié)果

    • 為什么效果佳?是因?yàn)檫@張貼圖直接來(lái)自于PBR光照渲染的結(jié)果,貼圖質(zhì)量高,渲染出來(lái)的光照質(zhì)量自然就高!

  • 精確計(jì)算matcap節(jié)省的指令數(shù)那是另一個(gè)話題了,先說(shuō)結(jié)論:

    • 大體上估算,一個(gè)較為完善的光照計(jì)算過(guò)程需要幾十條以上的圖形指令

    • 而matcap只需要幾條,而且很多計(jì)算都可以在頂點(diǎn)階段完成,這樣就大大節(jié)省了性能

    • 在我們學(xué)完了matcap原理后,相信大家也能理解這其中究竟省了多少渲染開(kāi)銷

MatCap原理

MatCap的基本原理比較簡(jiǎn)單:就是:

  • 用一張MatCap貼圖作為渲染好的漫反射貼圖

  • 用物體表面的法線對(duì)該貼圖進(jìn)行采樣

但是,說(shuō)起來(lái)簡(jiǎn)單,網(wǎng)上也有不少M(fèi)atCap實(shí)踐的文章,但是對(duì)于MatCap原理的介紹都囫圇吞棗,這里我們結(jié)合實(shí)戰(zhàn),給大家列舉一些MatCap容易被大家忽視的細(xì)節(jié),通過(guò)這些細(xì)節(jié),真正做到了解MatCap貼圖技術(shù)!

MatCap實(shí)戰(zhàn)

Step 1:建立正常物體表面貼圖

通常,一張貼圖可以表示物體表面細(xì)節(jié),如上圖所示,但是該圖不能表現(xiàn)物體的漫反射光照情況,因此我們把物體表面貼圖換成用于表示漫反射光照的自發(fā)光貼圖

Step 2:替換為MatCap貼圖

這張MatCap貼圖本來(lái)用于表現(xiàn)物體的邊緣光,但是我們注意到物體的中心位置也有邊緣光效果,因此這是錯(cuò)誤的!

換成球體可能更能發(fā)現(xiàn)問(wèn)題:MatCap貼圖的十字中心應(yīng)位于球體中部!

Step 3:為此我們用物體表面法線對(duì)物體進(jìn)行采樣

似乎更正確一點(diǎn)了,但是MatCap貼圖被重復(fù)了四次,因?yàn)榉ň€坐標(biāo)是介于【-1,-1】~【1,1】,相當(dāng)于把uv坐標(biāo)橫豎各重復(fù)了一次


Step 4:重新映射法線坐標(biāo)到【0,0】~【1,1】

上圖是從【-1,1】重映射到【0,1】

效果不太正確,從視角方向觀察到的MatCap貼圖應(yīng)當(dāng)是一致的!

Step 5:采用視圖空間法線

我們需要采用“視圖空間”法線進(jìn)行MatCap貼圖的采樣,具體原理較為復(fù)雜,可以參考Unity小白的TA之路

效果對(duì)了!都是邊緣發(fā)光:

那么問(wèn)題來(lái)了:法線跟MatCap貼圖是如何對(duì)應(yīng)的呢?如何制作一張正確的MatCap貼圖?

這里用文字描述會(huì)不太容易理解,建議配合視頻進(jìn)行學(xué)習(xí)(視頻地址見(jiàn)文末)

答案就在圖里!

拓展

用MatCap進(jìn)行卡通渲染

結(jié)合固有色貼圖獲得角色細(xì)節(jié)(有些額外細(xì)節(jié),可以觀看視頻)

替換材質(zhì)和MatCap Shader算法可以獲得更豐富的質(zhì)感:

  • 文末掃碼領(lǐng)取MatCap材質(zhì)

MatCap的缺陷

MatCap Shader代碼實(shí)現(xiàn)

  • Shader Graph通常只適合用來(lái)做效果原型,在這里我們把它轉(zhuǎn)換為Shader代碼

文末加好友進(jìn)群學(xué)習(xí)如何手寫(xiě)Shader代碼,以及URP Shader

關(guān)于代碼的思考

  • 同學(xué)們可以在文末跟帖討論:

MatCap進(jìn)階

  • 這里只做總結(jié),具體技術(shù)詳解請(qǐng)見(jiàn)文末視頻(手打酸了,打不動(dòng)字了~~)

  • 也可以加文末好友進(jìn)TA專屬訓(xùn)練營(yíng)

面試和作品要點(diǎn)解析

  • Matcap相比于PBR的性能優(yōu)化

  • Matcap各類問(wèn)題的解決思路

雷蒙德老師會(huì)針對(duì)游戲公司近年來(lái)的作品和招聘要求,給各位同學(xué)一對(duì)一指導(dǎo)作品創(chuàng)作,幫助各位同學(xué)創(chuàng)作與眾不同的作品效果~


寫(xiě)在最后

  • 學(xué)習(xí)更多技術(shù)干貨,請(qǐng)加qq:1517069595或vx:alice17173(企業(yè)級(jí)性能優(yōu)化/熱更新/Shader特效/服務(wù)器/商業(yè)項(xiàng)目實(shí)戰(zhàn)/每周直播/一對(duì)一指導(dǎo))

  • 點(diǎn)贊、關(guān)注、分享可免費(fèi)獲得配套學(xué)習(xí)資源

  • 詳細(xì)內(nèi)容可參考下方完整視頻


MatCap:低成本PBR的原理與實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
古浪县| 琼结县| 昌吉市| 三穗县| 梅河口市| 江油市| 花莲县| 西丰县| 鄂伦春自治旗| 团风县| 玉溪市| 苗栗市| 阿巴嘎旗| 奎屯市| 呼图壁县| 军事| 合川市| 叙永县| 涪陵区| 东兰县| 根河市| 永平县| 甘孜县| 梁平县| 南漳县| 福鼎市| 瓦房店市| 六盘水市| 乐至县| 钦州市| 临安市| 昌黎县| 耒阳市| 偃师市| 伊金霍洛旗| 玉龙| 浮梁县| 阿拉善左旗| 宣汉县| 穆棱市| 泸水县|