五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

簡(jiǎn)述47種Shader Map的渲染原理與制作方法

2020-07-20 09:36 作者:unity_某某師_高錦錦  | 我要投稿

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

1. Albedo

2. Diffuse(Photographic)

Diffuse(Photographic)


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

3. Alpha Map

注意:jpg沒(méi)有alpha通道,png也沒(méi)有alpha通道,顯示的alpha是根據(jù)rgb計(jì)算的灰度作為alpha使用。另外安卓平臺(tái)ETC1也沒(méi)有alpha通道。

4. Bump Map

5. Height Map

基于高度的潮濕地面

Height Map


6. Normal Map

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

7. Mask Map

Mask用途比較多,常用來(lái)標(biāo)識(shí)不同物體,比如標(biāo)識(shí)建筑上反光的窗戶、地面的積水、皮膚上汗水等。

Mask Map


8. Light Map(圖來(lái)源)

Light Map


9. Lut

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

10. Emission Map

?Emission Map

如果要表現(xiàn)更好的效果,自發(fā)光還要配合HDR/ToneMap/Bloom。

11. Metallic Map/Roughness

12. Specular Map/ Smoothness

Specular Map/ Smoothness


圖來(lái)源

高光工作流可以不受限于PBR,能做非真實(shí)渲染,而金屬工作流則對(duì)入門者更友好,限制在物理渲染的框架中,不至于渲染的太糟,當(dāng)然金屬工作流也可以做風(fēng)格化的渲染。如果是用Substance Painter或者M(jìn)armoset Toolbag制作,這兩種方式都支持導(dǎo)出的。

13. Gloss Map

14. Smothness Map

15. Roughness Map

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

16. pbr(sbsar)

pbr

17. Ramp Map

Ramp Map常用于卡通渲染,可以用于手工調(diào)節(jié)漫反、高光、陰影等,但是這比較依賴美術(shù)畫圖的功力,道理簡(jiǎn)單,渲染的好看卻不容易。

圖來(lái)自米哈游的技術(shù)解說(shuō)米哈游極樂(lè)凈土的卡通渲染

Ramp Map


18. Detail Map(Albedo Emission Specular Normal 等)

Detail Map主要解決相機(jī)靠近模型時(shí)貼圖精度不足的問(wèn)題,比如地面、皮膚、樹木等等靠近看會(huì)很模糊,用一張尺度更小的坑坑洼洼的圖來(lái)增加細(xì)節(jié)。左上是模糊的地面,右上是細(xì)節(jié)圖,最下面是增加細(xì)節(jié)后的地面。

Detail Map


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

Gradient Map

20. Jitter Map/Sparke Map/Glitter Map

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

Jitter Map


21. Noise Map

Noise有很多種:白噪聲、藍(lán)噪聲、perlin噪聲、simplex噪聲、Voronoi噪聲。另外推薦個(gè)噪聲圖編輯器:numberflow

Noise Map


22. Splatting Map

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

Splatting Map


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

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

Lens Map

24. CubeMap

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

CubeMap


25. MatCap Map

Matcap的原理將法線轉(zhuǎn)換view坐標(biāo)系,取XY作為UV采樣一張貼圖,原理如下圖

MatCap Map


對(duì)于場(chǎng)景色調(diào)比較統(tǒng)一、不要求精準(zhǔn)光照的情況,這是種運(yùn)行效率非常高的渲染方式。


26. 3D Texture

3d紋理最常用于體渲染,比如云、高度霧等。Unity不支持3d紋理的文件格式,但是支持動(dòng)態(tài)創(chuàng)建Texture3D,這樣可以自己保存為asset格式或者自定義格式,在運(yùn)行時(shí)轉(zhuǎn)換為Texture3D。因?yàn)轶w渲染比較常用的方式是raymatching,步進(jìn)次數(shù)少效果很難表現(xiàn)出來(lái),在移動(dòng)端效率比較低。圖來(lái)HorizonZeroDawn

3D Texture


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

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

Translucency Map


28. Ambient Occlusion Map

AO的計(jì)算方法是從頂點(diǎn)的半球發(fā)出射線,檢測(cè)射線是否與網(wǎng)格相交,下圖的遮擋值是5/7。圖來(lái)源

Ambient Occlusion Map


因?yàn)锳O圖噪點(diǎn)較多,即使增加射線的數(shù)量效果也不是很好,而體遮擋法能很好解決這個(gè)問(wèn)題。AO如果作為后處理的話,SSVO、SSDO是比較流行的方法。

29. DUDV Map

DuDv圖看上去像蚯蚓爬過(guò)的法線圖,一般用RG兩個(gè)通道存儲(chǔ)數(shù)據(jù),是根據(jù)法線求導(dǎo)后再模糊處理存儲(chǔ)的數(shù)據(jù),類似與Parallax Map的用途,它也用于扭曲,比如下圖用于扭曲水面倒影。圖來(lái)源

DUDV Map

30. Flow Map

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

Flow Map

31. Ripple Map

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

Ripple Map

32. Distort Map

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

Distort Map

33. Displacement Map

34. Vector Displacement Map

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

Vector Displacement Map

35. Radiosity Normal Map

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

Radiosity Normal Map


36. Cavity Map

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

Cavity Map


37. Curvature Map

曲率圖和縫隙圖不同的是它主要用于表現(xiàn)邊緣、凹凸等效果,用于耳朵、眉骨、鼻子渲染效果會(huì)很好,利用DDX/DDY或fwidth也可以動(dòng)態(tài)計(jì)算曲率。

Curvature Map

38. Anisotropic Map

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

Anisotropic Map

39. Derivative Map

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

Derivative Map

40. Foam Map

泡沫貼圖、浪花貼圖用于水面超過(guò)一定值時(shí)泡沫會(huì)和水面顏色混合,水面頂點(diǎn)越高泡沫透明度越大。

Foam Map


41. Caustics Map

水紋貼圖:因?yàn)樗嫫鸱?、焦散?dǎo)致水底某些地方會(huì)比周圍更亮,可以用Projector渲染水紋,也可以參考GPU Gems的反向計(jì)算折射光線來(lái)采樣太陽(yáng)環(huán)境圖的方法(Rendering Water Caustics),還有一個(gè)制作水紋的工具(水紋生成器+Unity Demo)

Caustics Map


42.Bent Normal Map (經(jīng)大神王滕昊提醒補(bǔ)充加上)

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

Bent Normal Map

43. Depth Map

44. Camera Depth Map

45. Camera Depth Normal Map

相機(jī)深度圖可以用于渲染水、霧、掃描、半透物體等,這里有個(gè)不錯(cuò)文章有關(guān)深度法線圖的:深度與法線圖

Camera Depth Normal Map


46. Grab Pass Texture

GrabPass可以用于熱浪扭曲、半透冰塊、沖擊波等需要背景用于渲染的情況,在移動(dòng)端效率不高,不要求動(dòng)態(tài)背景時(shí)可以用Cubemap來(lái)代替。

Grab Pass Texture


47. Vertex Texture Fetch

在Vertex Shader中讀取上一幀水面高度紋理,在當(dāng)前幀繼續(xù)波動(dòng),這可以用于交互式水渲染,不過(guò)頂點(diǎn)紋理拾取是比較耗費(fèi)資源的操作,不需要交互的水面是用不到的,對(duì)于海戰(zhàn)類型的游戲會(huì)比較有用。

Vertex Texture Fetch


簡(jiǎn)述47種Shader Map的渲染原理與制作方法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
四会市| 安福县| 合作市| 凉山| 彝良县| 徐汇区| 襄汾县| 鄱阳县| 安义县| 民和| 隆尧县| 静安区| 花垣县| 土默特左旗| 齐河县| 龙泉市| 马龙县| 湟中县| 都安| 建平县| 凤凰县| 铜陵市| 宝鸡市| 襄城县| 莎车县| 疏勒县| 佛教| 瑞安市| 晴隆县| 休宁县| 海淀区| 镇雄县| 罗甸县| 蓝田县| 西昌市| 崇州市| 大悟县| 乐平市| 颍上县| 翼城县| 孝感市|