目錄
一、Lit著色器
1. Surface Options
2. Surface Inputs(表面輸入)
3. Transparency Inputs
二、HDRP渲染優(yōu)先級
目錄
一、Lit著色器
1. Surface Options
2. Surface Inputs(表面輸入)
3. Transparency Inputs
4.?Emission Inputs(自發(fā)光輸入)
二、HDRP渲染優(yōu)先級
???????我們可以把現實世界中的物體分成不透明物體和透明物體(其中包括透明或者半透明)。在實時渲染時,其實我們模擬的就是物體的表面。當然在模擬透明物體時我們還要考慮光透過物體時發(fā)生的吸收和折射現象。
一、Lit著色器
1. Surface Options
- Surface Type(表面類型)
????????在Lit中把表面類型分成了兩類:Opaque(不透明)和Transparent(透明)。
- Rendering Pass(渲染通道)
????????這一選項在選擇Transparent(透明)表面類型下出現,我們可以為當前材質選擇以下渲染通道:
- Before Refraction:在渲染折射效果之前渲染當前材質所關聯的物體。這也就意味著HDRP會在渲染折射效果時,將當前材質所關聯的物體考慮進折射的計算中。
- Default:在默認渲染階段參與渲染。
- Low Resolution:在默認渲染階段完成以后,以一半的分辨率渲染當前材質所關聯的物體。
- Blending Mode(混合模式)
????????這一選項在選擇Transparent(透明)表面類型下出現。該選項用于確定通過何種混合方式,把當前透明材質表面每個像素的顏色與背景顏色相混合,從而獲得透明材質上每個像素的最終顏色值。
????????如果指定了Base Map并且Base Map的Alpha通道是純黑色(代表完全透明),這時我們再調節(jié)顏色選擇器中的A(Alpha)值就沒有意義了。如果沒有指定Base Map或者Base Map中沒有包含Alpha通道,則玻璃材質的透明度就由顏色選擇器的A(Alpha)值來控制。(如下圖,Base Map的Alpha通道周圍不是純黑色,所以調整顏色選擇器中的A(Alpha)值還會影響物體的周邊。)
- Preserve specular lighting(保持高光光照信息)
這一選項在選擇Transparent(透明)表面類型下出現。進行Alpha混合以后會導致高光的強度減弱。啟用此選項可以讓透明表面保持高光的強度,適用于表現光線在玻璃或者水面上的反射效果。
- Receive Fog(獲取霧效)
????????這一選項在選擇Transparent(透明)表面類型下出現。啟用此選項可以讓場景中的霧效影響透明表面。如果禁用此選項,HDRP則不會在計算場景霧效時將當前材質考慮在內。
- Back Then Front Rendering(從后往前渲染)
????????(需要在HDRP配置文件中啟用Transparent Backface選項):這一選項在選擇Transparent(透明)表面類型下出現。啟用該選項以后HDRP會用兩個Draw Call來渲染當前材質關聯的物體。HDRP會使用第一個Draw Call渲染物體背面的三角面,使用第二個Draw Call渲染正面的三角面。
- Transparent Depth Prepass(透明深度預處理)
????????(需要在HDRP配置文件中啟用Transparent Depth Prepass選項):這一選項在選擇Transparent(透明)表面類型下出現。啟用該選項后,HDRP會把透明表面的多邊形數據添加到深度緩沖(Depth Buffer)中。使用這些深度緩沖中的多邊形數據可以優(yōu)化渲染排序。這一過程會在處理光照之前完成,因此有助于提升GPU的性能。注意,在渲染透明通道之前,這些深度信息會被寫入一個單獨的渲染通道中,然后被用于處理渲染排序。
- Transparent Depth Postpass(透明深度后處理)
????????(需要在HDRP配置文件中啟用Transparent Depth Postpass選項):這一選項在選擇Transparent(透明)表面類型下出現。啟用該選項后,HDRP會把透明表面的多邊形數據添加到深度緩沖(Depth Buffer)中,以供后處理(Post Processing)使用。這一過程會在處理光照之前完成。如果你想進行Motion Blur(運動模糊)和Depth of Field(景深)這類需要用到深度信息的后處理,可啟用此選項,它對這些后處理效果的正確計算很有幫助
- Transparent Writes Motion Vectors(透明寫入運動矢量)
????????(需要在HDRP配置文件中啟用Motion Vectors選項):這一選項在選擇Transparent(透明)表面類型下出現。啟用該選項后,HDRP會寫入使用此材質的透明物體的Motion Vector(運動矢量)數據,這樣HDRP才能計算使用當前材質的透明物體的Motion Blur(運動模糊)這類后處理效果。
- Cull Mode(剔除模式)
????????用于決定是剔除透明物體網格的正面(Front)還是背面(Back)。
- Alpha Clipping(透明度剪裁)
????????啟用此選項,我們可以用材質的Alpha通道來控制渲染表面上哪些區(qū)域,不渲染哪些區(qū)域,從而在透明部分和不透明部分之間創(chuàng)建明顯的邊界。
????????Threshold:使用Threshold數值控制Alpha的臨界值。如果把Threshold數值設置為0.05,那么Alpha值小于等于0.05的區(qū)域會被渲染,Alpha值大于0.05的區(qū)域則不會被渲染。
- Material Type(材質類型)
- Standard(標準)材質類型可用于模擬大部分材質。
- Specular Color:使用這一材質類型可以在物體表面生成帶顏色的高光效果。因為Specular Color使用的不是Metallic工作流,而是Specular工作流,所以在下方的Surface Inputs(表面輸入)中不再有Metallic滑塊。
- Iridescence:彩虹色,用于制作肥皂泡。
- Receive Decals(顯示貼花)
????????啟用此選項可以讓當前材質顯示貼花,比如玻璃上的白色圓點。
- Receive SSR(顯示在屏幕空間反射中)
????????啟用此選項時,HDRP會在計算屏幕空間反射時把與當前材質關聯的物體考慮進去。
- Displacement Mode(置換模式)
????????置換模式和高度圖用于為模型的網格增加細節(jié)表現。當設置了置換模式時,下方Surface Inputs(表面輸入)部分會出現Height Map(高度圖)選項。(高度圖見下文詳解)HDRP提供兩種置換模式。
- Vertex displacement(頂點置換):根據高度圖來置換網格上的頂點。
- Pixel displacement(像素置換):根據高度圖來置換模型表面的像素。
2. Surface Inputs(表面輸入)
????????Surface Inputs中的參數用于控制物體表面的各種屬性,比如顏色、透明度、高光、表面細節(jié)、紋理所用的UV等。
- Base Map(基礎紋理)
????????用于控制表面的顏色和透明度。如果不指定紋理,物體會使用顏色選擇器中的顏色作為表面顏色;如果指定了紋理,物體表面的最終顏色由紋理和顏色選擇器所選的顏色一起決定。
- Mask Map(遮罩貼圖)

?????????在Red、Green、Blue和Alpha四個通道中保存的貼圖其實都是灰度圖?;叶葓D提供的是對應最終紋理上每個像素點的數值(每張灰度圖控制著不同的參數)。純白色對應最大值1(有效果),顏色越黑數值越小直到為0(無效果)。
????????在同一張Mask Map中保存四張貼圖的好處是:因為這四張貼圖的UV坐標相同,所以渲染器只需要采樣一次就能拿到最多四張貼圖的信息。請注意,使用Mask Map時并不需要每次都使用4個通道。你完全可以按照自己的需求選擇一個或者多個通道使用。
?????????如果我們沒有指定Mask Map,這時的Metallic和Smoothness兩個選項的數值都在0~1之間。Metallic數值越高,物體表面的金屬反光越強烈。Smoothness數值越高,物體表面越平滑,越像一面鏡子;反之物體表面看上去越粗糙。
????????如果我們指定了Mask Map,Metallic Remapping、Smoothness Remapping和Ambient Occlusion Remapping選項會出現滑塊。
- Metallic用于控制金屬表面的反光度,數值越高,金屬反光越強烈。它的數值在0~1之間。因為我們添加了Mask Map,所以HDRP會獲取Red通道中Metallic貼圖的灰度圖信息用于計算物體表面各處的金屬反光強度:純黑色對應數值0,純白色對應數值1,其他灰度對應0~1之間的數值。如上圖,我們想要模擬的是陶瓷杯子,紅色通道中是純黑色的貼圖,因為控制的是Metallic的數值,并且純黑色對應數值0。所以無論你如何調節(jié)材質界面上Metallic滑塊,數值始終為0。如果把紅色通道中的貼圖顏色改為白色,那么貼圖所提供的Metallic數值則為1。這時可以利用Metallic滑塊將數值調整到0~1之間(這時會看到瓶子會有金屬反光。不過我們想要模擬的是陶瓷,有了金屬反光其實就不對了)。
- Smoothness Remapping滑塊可以把從Mask Map的Alpha通道中獲取的灰度信息,映射到滑塊對應的最小值和最大值區(qū)間內,用于控制物體表面的光澤度。
- Ambient Occlusion Remapping滑塊可以把從Mask Map的Green通道中獲取的灰度信息,映射到滑塊對應的最小值和最大值區(qū)間內,用于控制物體表面的環(huán)境光遮蔽。
- Normal Map Space(法線貼圖空間)和Normal Map(法線貼圖)
????????在Normal Map Space中可以選擇TangentSpace(切線空間)或者ObjectSpace(物體空間)。兩種法線貼圖空間的區(qū)別是:
- TangentSpace可應用于任何類型的網格上,包括動畫時網格會變形的角色模型。
- ObjectSpace可應用于使用Planar-mapping的靜態(tài)物體上(網格不會變形的物體)。這一類法線貼圖上除了包含切線空間法線貼圖信息,還包含方向數據。而且因為Unity不需要對它做Transform的計算,所以它相比切線空間法線貼圖更省性能。
????????我們可以為Normal Map關聯一張法線貼圖,用于為物體表面增加細節(jié)信息??梢酝ㄟ^滑塊來控制細節(jié)信息的強度大?。〝抵翟?~8之間)。法線貼圖為物體表面增加細節(jié)的原理是,使用保存在法線貼圖中的信息,通過改變物體表面的光照信息讓表面“看上去”多了一些細節(jié)。但是本質上物體表面并沒有發(fā)生真正的形變。
- Height Map(高度圖)
????????當設置了置換模式時會出現該選項。高度圖本質上就是一張黑白顏色的灰度圖。白色區(qū)域代表了受影響表面高的地方;顏色越深,受影響的表面就越低。與法線貼圖不同,高度圖會改變受影響表面的區(qū)域,從而增加更多的細節(jié)。一般高度圖和法線貼圖配合使用。
- 參數Amplitude(幅度)
????????當設置置換模式為Pixel displacement(像素置換)時會出現該選項。用于控制高度圖置換效果的強度。
- Iridescence Mask(彩虹色遮罩)
????????使用 Iridescence 這一材質類型時出現??梢栽谶@里使用一張灰度圖控制彩虹色的強弱。0代表沒有彩虹色,1代表彩虹色效果最強。我們也可以直接使用固定數值(0~1之間)來控制整個表面的彩虹色強弱。
- Specular Color(高光顏色)
????????使用Specular Color這一材質類型時出現。此選項可以讓你手動設置高光顏色(Specular Color)。這里關聯的紋理使我們可以在像素級別定義高光顏色。如果你在顏色選擇器中選擇一個顏色,HDRP會將此顏色和紋理上的每一個像素相乘從而得到最終的高光顏色。
- Energy Conserving Specular Color(能量守恒高光顏色)
????????使用Specular Color這一材質類型時出現。如果啟用這一選項,HDRP會在高光效果太強烈時降低材質的漫反射色,這可以讓材質看上去更加“物理正確”。因為PBR(基于物理的渲染)的能量守恒(Energy Conservation)守則對于物體表面的正確渲染非常重要。這一守則認為,反射和散射光的能量必須小于物體表面接收到的光能量。?
3. Transparency Inputs
????????以下是所有與折射相關的參數。
- Refraction Model(折射模型)
????????在此可以選擇HDRP處理折射的方式:
- None:透明材質沒有折射行為。
- Box:算法使用的是正方體形狀的模型。光線入射時進入一個平面,光線出射時也是通過一個平面。適用于我們講解的中空玻璃瓶之類的物體。
- Sphere:算法使用的是球狀的模型,可以生成類似放大鏡的折射效果。適用于模擬實心的透明物體,比如放大鏡鏡片、玻璃球等。
- Thin:算法使用的是長方體形狀的模型。與Box模型不同的是,Thin模型的厚度被定義為5cm??捎糜谀M窗戶上的玻璃。
- Index Of Refraction(折射率)
????????用于控制折射效果的強度。數值越大,折射效果越強。(折射率=光在真空中的速度/光在當前透明材質中的速度)各種物質的折射率可以參考:https://zh.wikipedia.org/zh-cn/折射率。
- Thickness(物體厚度)
????????可以使用一張厚度貼圖(Thickness Map)來控制透明物質的厚度(基于像素級別的)。如果不使用厚度貼圖,也可以使用滑塊來控制透明物體的總體厚度。注:此選項在Thin折射模型下不出現,因為在Thin模型下厚度被規(guī)定為5cm。
- Transmittance Color(透射顏色)
????????具有折射性質的透明物體可以對穿過物體的光線進行染色。可以在這里指定一張貼圖(基于像素級別的)給經過的光線染色,也可以單獨使用顏色選擇器選擇一個總體的顏色。如果這兩種方式都使用了,那么最終光線的顏色由貼圖的顏色和從顏色選擇器中選擇的顏色共同決定。
4.?Emission Inputs(自發(fā)光輸入)
????????可以把網格轉變成由自發(fā)光材質控制的光源。
二、HDRP渲染優(yōu)先級
????????渲染管線會先渲染離相機最遠的物體,最后渲染離相機最近的物體。在HDRP中會按照材質(Material)的Sorting Priority(排序優(yōu)先級)和渲染組件(Mesh Renderer)的Priority值來排序場景中物體的渲染排序。數值越大,渲染越靠后,離相機越近。文章來源:http://www.zghlxwxcb.cn/news/detail-519535.html
????????HDRP對透明物體進行渲染排序時所用的優(yōu)先級:(由強到弱)材質從Depth Write中獲得的深度信息→材質的Sorting Priority數值→Mesh Renderer組件的Priority數值→相機離開物體的距離。文章來源地址http://www.zghlxwxcb.cn/news/detail-519535.html
到了這里,關于Unity | HDRP高清渲染管線學習筆記:材質系統(tǒng)Lit著色器的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!