王者荣耀孙尚香被ⅹ漫画|王者荣耀兰陵王秒人连招
開啟輔助訪問

QQ登錄

注冊 找回密碼
查看: 1471
回復: 59
打印 上一主題 下一主題

Shader 簡述47種Shader Map的渲染原理與制作方法

 

TA的畫板

26萬

元素幣

3084

活躍度

694

貢獻值

界王

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

積分
427898

元素銅幣元素銀幣元素金幣元素秘幣元素之鎧結界玄晶裁決原始之火【元素晶石】不死鳥羽翼水晶礦赤晶礦守望者【天使】守望者【烏鴉鈦鋼】擴散者之握

主題
199
精華
17
擴散
86
首發
0
土豪金
5807
神石
320
在線時間
2600 小時
跳轉到指定樓層
樓主-元素創造者
發表于 2019-5-25 13:47:15

馬上注冊成為元素者,獲取海量元素資源,結識各路大神級人物

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
本帖最后由 大西幾 于 2019-5-25 13:47 編輯

在Shader中會使用各種不同圖參與渲染,所以簡單地總結下各種圖的渲染原理、制作方法,最后面幾種是程序生成圖。

1. Albedo

2. Diffuse(Photographic)



從上圖可以看出來,Albedo是去掉Diffuse的光照和陰影生成的,而在pbr工作流下必須要用Albedo。轉換方法:How to Make an Albedo Texture from a Diffuse Texture

3. Alpha Map

注意:jpg沒有alpha通道,png也沒有alpha通道,顯示的alpha是根據rgb計算的灰度作為alpha使用。另外安卓平臺ETC1也沒有alpha通道。

4. Bump Map

5. Height Map

基于高度的潮濕地面


6. Normal Map

Bump Map是凹凸貼圖,常用的有兩種:一種是Emboss Bump Map(浮雕凹凸貼圖,使用的Height Map),另一種是Dot3 Bump Map(點乘凹凸貼圖,使用的是Normal Map)

7. Mask Map

Mask用途比較多,常用來標識不同物體,比如標識建筑上反光的窗戶、地面的積水、皮膚上汗水等。


8. Light Map(圖來源)


9. Lut

Lut(查找表lookup table)可以用于優化復雜光照的渲染,比如lambert blinn-phong可以把(NL,NH)作為uv坐標,將光照計算存儲在一張貼圖中,這樣渲染時復雜的計算過程就優化為紋理采樣了。另外皮膚、毛發之類復雜計算都可以用此方法優化。

10. Emission Map


如果要表現更好的效果,自發光還要配合HDR/ToneMap/Bloom。

11. Metallic Map/Roughness

12. Specular Map/ Smoothness



高光工作流可以不受限于PBR,能做非真實渲染,而金屬工作流則對入門者更友好,限制在物理渲染的框架中,不至于渲染的太糟,當然金屬工作流也可以做風格化的渲染。如果是用Substance Painter或者Marmoset Toolbag制作,這兩種方式都支持導出的。

13. Gloss Map

14. Smothness Map

15. Roughness Map

光澤貼圖和高光貼圖是不同的,它類似平滑貼圖/粗糙貼圖,表示物體表面的平滑粗糙程度,而高光貼圖存儲的是高光的強度,金屬貼圖存儲的是金屬度。

16. pbr(sbsar)


17. Ramp Map

Ramp Map常用于卡通渲染,可以用于手工調節漫反、高光、陰影等,但是這比較依賴美術畫圖的功力,道理簡單,渲染的好看卻不容易。
圖來自米哈游的技術解說米哈游極樂凈土的卡通渲染


18. Detail Map(Albedo Emission Specular Normal 等)

Detail Map主要解決相機靠近模型時貼圖精度不足的問題,比如地面、皮膚、樹木等等靠近看會很模糊,用一張尺度更小的坑坑洼洼的圖來增加細節。左上是模糊的地面,右上是細節圖,最下面是增加細節后的地面。


19. Gradient Map(用于Color Gradient顏色分級、顏色校正等)


20. Jitter Map/Sparke Map/Glitter Map

這種閃爍的噪點主要用于沙子、雪等渲染,主要用于表現顆粒感。這可以用噪聲圖來用于渲染,也可以用函數生成,一般類似frac(a*sin+b)這樣形式,可以搭配WorldPos、ViewPos、Time來組合成函數。


21. Noise Map

Noise有很多種:白噪聲、藍噪聲、perlin噪聲、simplex噪聲、Voronoi噪聲。另外推薦個噪聲圖編輯器:numberflow


22. Splatting Map

最常用于地形渲染,單獨一張control texture作為多層貼圖的混合系數,既可以用于顏色混合,也可以用于法線混合。


23. Lens Map(Rain/Snow/Freeze/Glare/Flare/Flash/Gleam/starburst)

做鏡頭效果會需要很多類似雨滴、雪花、臟跡、冰凍、炫光、星星等貼圖。比如下面鏡頭雨滴。

24. CubeMap

Arm公司做的Ice Cave把CubeMap用在反射、折射、陰影,效果很贊(ice cave)


25. MatCap Map

Matcap的原理將法線轉換view坐標系,取XY作為UV采樣一張貼圖,原理如下圖


對于場景色調比較統一、不要求精準光照的情況,這是種運行效率非常高的渲染方式。


26. 3D Texture

3d紋理最常用于體渲染,比如云、高度霧等。Unity不支持3d紋理的文件格式,但是支持動態創建Texture3D,這樣可以自己保存為asset格式或者自定義格式,在運行時轉換為Texture3D。因為體渲染比較常用的方式是raymatching,步進次數少效果很難表現出來,在移動端效率比較低。圖來HorizonZeroDawn


27. Translucency Map(Thickness Map、反向AO、單散射)

主要用于半透明物體,比如闊葉植被、玉等


28. Ambient Occlusion Map

AO的計算方法是從頂點的半球發出射線,檢測射線是否與網格相交,下圖的遮擋值是5/7。圖來源


因為AO圖噪點較多,即使增加射線的數量效果也不是很好,而體遮擋法能很好解決這個問題。AO如果作為后處理的話,SSVO、SSDO是比較流行的方法。


29. DUDV Map

DuDv圖看上去像蚯蚓爬過的法線圖,一般用RG兩個通道存儲數據,是根據法線求導后再模糊處理存儲的數據,類似與Parallax Map的用途,它也用于扭曲,比如下圖用于扭曲水面倒影。


30. Flow Map

Flow map存儲的是向量場數據,可以用于控制水面UV,比如下圖石頭周圍一圈一圈水紋,制作工具有很多,比如flowmap制作工具


31. Ripple Map

常用于雨滴水紋、物體落入水中的水紋等,可以算是flowmap的一種。


32. Distort Map

扭曲圖比較常用于半透物體,用于扭曲背景。比如下圖冰塊。


33. Displacement Map

34. Vector Displacement Map

這兩種圖常用鑲嵌,不過Displacement Map相當于高度圖,而Vector Displacement Map存儲的是三維向量,可以更好地細分模型。比如用地面蘑菇、地衣、耳朵等。


35. Radiosity Normal Map

半條命首先引入的光照貼圖方式,具體參考:Radiosity Normal Map,另外抵抗:人類隕落也有使用這種方法:抵抗中的光照


36. Cavity Map

縫隙圖存儲的是比普通AO更小的AO信息,主要用于表現裂縫。制作方法參考:縫隙圖筆記


37. Curvature Map

曲率圖和縫隙圖不同的是它主要用于表現邊緣、凹凸等效果,用于耳朵、眉骨、鼻子渲染效果會很好,利用DDX/DDY或fwidth也可以動態計算曲率。


38. Anisotropic Map

有些物體的光照會呈現各向異性,比如頭發、金屬等,下圖是三種頭發渲染的方式(環形、kajiya、Scheuermann)都用到各向異性的貼圖用于高光偏移。


39. Derivative Map

這是由頑皮狗大神Morten Mikkelsen首先提出法線圖的衍生方式(Bump Mapping Unparametrized Surfaces on the GPU),因為用法線圖一般在切線空間用于光照計算,而這種方法則不需要切線空間的參與,效率和效果都會更好,不用法線圖,而是表面梯度圖,和高度梯度圖是不同的。不過這文章讀起來挺心累的,最好參考Jim Blinn大神的凹凸貼圖原理


40. Foam Map

泡沫貼圖、浪花貼圖用于水面超過一定值時泡沫會和水面顏色混合,水面頂點越高泡沫透明度越大。



41. Caustics Map

水紋貼圖:因為水面起伏、焦散導致水底某些地方會比周圍更亮,可以用Projector渲染水紋,也可以參考GPU Gems的反向計算折射光線來采樣太陽環境圖的方法(Rendering Water Caustics),還有一個制作水紋的工具(水紋生成器+Unity Demo)


42.Bent Normal Map (經大神王滕昊提醒補充加上)

Bent Normal 常用于離線AO渲染中,是對原始法線修改后的向量,考慮周圍遮擋情況使其指向光線傳入的主方向,如下圖Bend Normal 比原始法線偏右。用于光照計算或者環境光采樣用Bend Normal在模型邊緣處會得到更好的AO和光照效果。


43. Depth Map

44. Camera Depth Map

45. Camera Depth Normal Map

相機深度圖可以用于渲染水、霧、掃描、半透物體等,這里有個不錯文章有關深度法線圖的:深度與法線圖


46. Grab Pass Texture

GrabPass可以用于熱浪扭曲、半透冰塊、沖擊波等需要背景用于渲染的情況,在移動端效率不高,不要求動態背景時可以用Cubemap來代替。


47. Vertex Texture Fetch

在Vertex Shader中讀取上一幀水面高度紋理,在當前幀繼續波動,這可以用于交互式水渲染,不過頂點紋理拾取是比較耗費資源的操作,不需要交互的水面是用不到的,對于海戰類型的游戲會比較有用。


轉至知乎:馮委

Snipaste_2019-05-25_13-46-04.jpg

評分

參與人數 3元素幣 +36 活躍度 +31 收起 理由
七瀨丸 + 10 【點贊】這很有大網氣質!
橫豎 + 16 + 11 太強了啊
玨銘 + 20 + 10 我只能看懂一部分

查看全部評分

本帖被以下畫板推薦:

還沒有設置簽名!您可以在此展示你的鏈接,或者個人主頁!

使用道具 舉報

回復 論壇版權

盤 TA

已拜讀

使用道具 舉報

回復

盤 TA

感謝分享

使用道具 舉報

回復

盤 TA

懵逼的看完,現在已經忘了

使用道具 舉報

回復

盤 TA

初學者想先對,這些名詞有個印象。

使用道具 舉報

回復

盤 TA

66666

使用道具 舉報

回復

盤 TA

感謝分享

使用道具 舉報

回復

盤 TA

路過看看 感謝分享

使用道具 舉報

回復

盤 TA

路過看看 感謝分享

使用道具 舉報

回復

盤 TA

感謝大佬分享!

使用道具 舉報

回復

盤 TA

感謝分享!!!!!

使用道具 舉報

回復

盤 TA

很好的資源,感謝分享

使用道具 舉報

回復

盤 TA

感謝分享

使用道具 舉報

回復

盤 TA

謝謝樓主的分享

使用道具 舉報

回復

盤 TA

帶你賺幣帶你飛,元素里面有正妹

使用道具 舉報

回復

盤 TA

謝謝分享

使用道具 舉報

回復

盤 TA

樓主真強。

使用道具 舉報

回復

盤 TA

使用道具 舉報

回復

盤 TA

每日元素 必成大觸

使用道具 舉報

回復

盤 TA


感謝分享

使用道具 舉報

回復

盤 TA

使用道具 舉報

回復

盤 TA


每日元素 必成大觸

使用道具 舉報

回復

盤 TA

使用道具 舉報

回復

盤 TA


首發必發微元素,榮耀加身裝備酷

使用道具 舉報

回復

盤 TA

想要成大觸,天天上元素

使用道具 舉報

回復

盤 TA

元素帖子強,滿滿正能量

使用道具 舉報

回復

盤 TA

資源甚好,發帖艱辛,且閱且珍惜

使用道具 舉報

回復

盤 TA

多謝樓主分享了,正需要呢

使用道具 舉報

回復

盤 TA

帶你賺幣帶你飛,元素里面有正妹!

使用道具 舉報

回復

盤 TA

拜見大神,有些看不懂

使用道具 舉報

回復

盤 TA

帶你賺幣帶你飛,元素里面有正妹!

使用道具 舉報

回復

盤 TA

地形渲染的功能實在是太強大了。

使用道具 舉報

回復

盤 TA

資源哪里好,肯定元素找!

使用道具 舉報

回復

盤 TA

11234 紫玉 維持幫

使用道具 舉報

回復

盤 TA

路過看看 感謝分享

使用道具 舉報

回復

盤 TA

路過看看 感謝分享

使用道具 舉報

回復

盤 TA

帶你賺幣帶你飛,元素里面有正妹

使用道具 舉報

回復

盤 TA

使用道具 舉報

回復

盤 TA


從業不識微元素,做遍項目也枉然

使用道具 舉報

回復

盤 TA

感謝分享。。。

使用道具 舉報

回復
12下一頁
快捷回復:
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

關閉

元素推薦-友情提示上一條 /1 下一條

快速回復 返回頂部 返回列表
王者荣耀孙尚香被ⅹ漫画