【UE4从零开始 082】全局光照
Lightmass(全局光照) 創建具有復雜光交互作用的光照圖,例如區域陰影和漫反射。它用于預計算 static(靜態) 和 stationary(靜止) 光源的照明貢獻部分。
編輯器和全局光照之間的通信由 Swarm Agent 處理,它管理本地的照明構建,也可以將照明構建分發到遠程機器。默認情況下以最小化方式打開的 Swarm Agent 還會跟蹤照明構建進度,并讓您了解哪些機器為您工作,它們在做什么,以及每個機器使用了多少線程。
下圖是Swarm Agent的一個示例圖像(靠近底部的條形圖顯示了構建的完成程度)。
靜態和靜止光源的特性
漫反射
Diffuse Interreflection(漫反射) 是目前為止視覺上最重要的全局照明效果。在默認情況下,光源以全局光照反射,而材質的 BaseColor(基本顏色) 項控制有多少光(和什么顏色)向各個方向反射。這種效果有時被稱為滲色。漫反射是入射光在各個方向上均勻反射,即不受觀測方向或位置的影響。
這里是一個由全局光照創建的場景,只有一個方向的光,且僅顯示直接照明。光源無法直接照射的區域是黑色的。這是沒有全局照明的結果。
這是第一個漫反射全局照明反射的樣子。注意左邊椅子后面的陰影,這叫做間接陰影,因為它是間接光的陰影。漫反射的亮度和顏色取決于入射光和與之相互作用的材質的漫反射項。每次反射都比前一次更暗,因為一些光被表面吸收而不是被反射。柱子底座比其他表面得到更多的間接光,因為它們更接近直射光下的區域。
這是第二次漫反射。光線變得更弱,分布更均勻。
這是四種漫反射相結合的場景。比起手動放置補光燈,模擬全局照明可以創建更細致和現實的照明。尤其是補光燈無法實現間接陰影。
反射光照獲取基礎材質的漫反射顏色,如下所示。這就是滲色這個術語的由來。滲色最明顯的是高度飽和的顏色。可以通過在 Primitive(基元)、Material(材質) 或 Level(關卡) 上提升 DiffuseBoost 來夸大效果。
角色照明
全局光照在 Lightmass Importance Volume(全局光照重要性體積) 內以較低的分辨率將樣本放置在一個統一的三維網格體中,并以較高的分辨率將樣本放置在角色可能行走的向上表面上。每個照明示例捕獲來自各個方向的間接光照,但不包括直接光照。
第一幅圖像是放置在地板上方的照明樣本調試可視化,第二幅圖像是光照模式下的相同場景。請注意紅色掛毯上面的樣本如何獲取紅色反射光。這些樣本被可視化為單一顏色,但它們確實捕獲了來自各個方向的光線。
然后,間接照明緩存使用這些照明樣本為可移動對象插入間接照明。間接照明影響光源環境陰影的顏色,而不是方向。使用 Show(顯示)-> Visualize(可視化)-> Volume Lighting Samples(體積照明樣本) 在視口中預覽它們。
限制
- 體積樣本放置的默認設置將導致在大型貼圖中出現大量樣本。這將導致間接照明緩存插值時間非常大。使用 Static Lighting Level Scale(靜態光源等級縮放) 減少大貼圖中的樣本計數。
- 全局光照重要性體積外的可移動對象將采用黑色間接照明。
環境遮擋
全局光照會自動計算出詳細的間接陰影,但是為了藝術目的夸大間接陰影或者增強場景的接近感是很有用的。
Ambient occlusion(環境遮擋) 是從一個均勻明亮的上半球得到的間接陰影,就像陰天。全局光照支持計算環境遮擋,將其應用于直接和間接照明,然后將其烘焙成光照圖。默認情況下,環境遮擋是啟用的,可以通過取消選中 World Settings(世界場景設置) 下的 Lightmass(全局光照) 的 Lightmass Settings(全局光照設置) 中的 Use Ambient Occlusion(使用環境遮擋) 復選框來禁用。
第一幅圖是一個有間接照明但沒有環境遮擋的場景。第二幅圖是有環境遮擋的相同場景,且環境遮擋應用于直接和間接照明,注意對象聚集的地方變暗。
環境遮擋設置
| Visualize Ambient Occlusion(可視化環境遮擋) | 在構建照明時,僅使用遮擋因子覆蓋光照圖。這有助于準確地了解遮擋因子是什么,并比較不同設置的效果。 |
| Max Occlusion Distance(最大遮擋距離) | 一個對象對另一個對象造成遮擋的最大距離。 |
| Fully Occluded Samples Fraction(完全遮擋樣本比例) | 為了達到完全遮擋,必須遮擋的樣本的比例。請注意,還有一個逐基元FullyOccludedSamplesFraction,它允許控制一個對象對其他對象造成的遮擋量。 |
| Occlusion Exponent(遮擋指數) | 指數越高,對比度越高。 |
當間接照明反射次數大于0時,在照明構建時間范圍內,環境遮擋幾乎是沒有的。
限制
- 環境遮擋需要相當高的光照圖分辨率才能良好顯示,因為它在角落變化很快。
- 預覽質量構建在預覽環境遮擋方面做得不是很好,因為AO需要非常密集的光照樣本(就像間接陰影)。
遮罩陰影
全局光照在計算陰影時考慮了BLEND_Masked材質的不透明度遮罩。在編輯器視口中被剪切的部分材質也不會引起任何投影,這允許從樹和葉子進行更詳細的投影。
僅適用于靜止光源的特性
環境法線天空遮擋
當啟用 stationary(靜止) 的 Sky Light(天空光照) 時,全局光照以環境法線的形式產生定向遮擋。
距離場陰影貼圖
全局光照計算 stationary(靜止) 光源的距離場陰影貼圖。距離場陰影貼圖即使在較低的分辨率下也能很好地保持其曲線形狀;然而,它們不支持區域陰影或半透明陰影。
僅適用于靜態光源的特性
區域光源和陰影
采用全局光照時,所有 static(靜態) 光源在默認情況下都是區域光源。 Point Light(點光源) 和 Spot Light(聚光源) 使用的形狀是一個球體,其半徑是由 Lightmass Settings(全局光照設置) 下的 Light Source Radius(光源半徑) 設置的。Directional Light(定向光源) 使用一個圓盤,位于場景的邊緣。光源的大小是控制陰影柔度的兩個因素之一,因為較大的光源會產生較柔和的陰影。另一個因素是從接收位置到陰影投射物的距離。隨著距離的增加,陰影變得柔和,就像在現實生活中一樣。
第一幅圖像是一個靜態定向光源,只有靜態照明,半影大小在任何地方都是相同的。在第二幅圖像中,全局光照計算的區域陰影的清晰度由光源大小和遮擋物距離控制。注意柱子陰影在接近地面的地方如何變得更加清晰。
Point Light(點光源) 和 Spot Light(聚光源) 的半徑用黃色線框表示,影響半徑用藍綠色線框表示。在大多數情況下,需要確保光源不與任何投射陰影的幾何體相交,否則光線將在該幾何體的兩側發出。
半透明陰影
光在通過應用到靜態陰影投射網格體的半透明材質之后,將失去一些能量,導致半透明的陰影。
半透明陰影顏色
穿過材質的光稱為透射光,每個顏色通道的透射光量在0到1之間。值為0表示完全不透明,1意味著入射光可以不受影響的穿過。由于透射光沒有材質輸入,所以目前是由以下其他材質輸入得出的:
- 光照材質
- BLEND_Translucent和BLEND_Additive:透射光 = Lerp(White、BaseColor、Opacity)
- BLEND_Modulate:透射光 = BaseColor
- 無光照材質
- BLEND_Translucent和BLEND_Additive:透射光 = Lerp(White、Emissive、Opacity)
- BLEND_Modulate:透射光 = Emissive
這意味著在不透明度為0時,該材質不會過濾掉入射光,也不會有半透明的陰影。在不透明度為1時,入射光將被材質的自發光或基本顏色(取決于是否被點亮)過濾。請注意,間接照明有時會洗掉半透明的陰影,使它們比半透明材料的自發光或漫反射更不飽和。
半透明陰影清晰度
有幾個因素控制半透明陰影清晰度。
間接光源也受到半透明材質的影響。該圖像中的窗口根據光線的透射情況對入射光進行過濾,然后光線會在場景中來回反射,且顏色會發生變化。
限制
- Translucent Materials(半透明材質) 目前不散射光,所以它們不會在其周圍的對象上滲色。
- 第一個漫反射目前不受半透明陰影的影響。這意味著,通過半透明材質的第一反射間接光源不會被該材質的 Transmission(透射) 過濾。
- 目前不支持折射(透射光的焦散)。
使用全局光照獲取最佳質量
使燈光顯眼
漫反射紋理
渲染期間,光照像素顏色被確定為 BaseColor * Lighting(基本顏色 * 照明),所以基本顏色直接影響光照的可見度。高對比度或暗漫反射紋理使光照很難被注意到,而低對比度中距離漫反射紋理讓光照的細節表現出來。
比較第一幅圖像中使用中等漫反射紋理構建的場景和第二幅圖像中同樣使用全局光照但帶有噪點的黑色漫反射紋理構建的場景照明清晰度。第二幅圖像中,只有最頻繁的變化才會在場景中被注意到,比如陰影過渡。
Unlit(無光照) 視圖模式可用于查看漫反射項。第一幅圖像中的場景在無光照視圖模式下看起來更加平坦和單調,這意味著所有的工作都是由光照完成的,最終像素顏色的變化主要是由于光照的不同。(為了獲得良好的照明,在無光照視圖模式下,場景看起來單調乏味。)將照明和宏觀特征烘焙到漫反射紋理中將抵消照明。
照明設置
- 避免環境照明!像環境立方體貼圖這樣的環境照明會在關卡中添加一個恒定的環境項,從而減少間接光照區域的對比度。
- 設置光源,使直接光照區域和間接光照區域之間有鮮明對比。對比度會讓您更容易找到陰影過渡的位置,也會讓您的關卡更有深度感。
- 設置光源,使明亮區域不是太亮,黑暗區域不全黑,而仍然有值得注意的細節。檢查最終目標顯示器上的黑暗區域是很重要的。
改善照明質量
光照圖分辨率
使用高分辨率的紋理光照圖是獲得清晰、高質量照明的最好方法。使用高光照圖分辨率的缺點是占用更多紋理內存和增加構建時間,所以需要做一個權衡。理想情況下,場景中的大部分光照圖分辨率應該分配在高視覺影響區域和有高頻陰影的地方。
全局光照解算器質量
Lightmass Solver(全局光照解算器) 設置是根據 Lighting Build Options(照明構建選項) 對話框中請求的構建質量自動設置的。生產應該提供足夠好的質量,即在應用漫反射紋理時,穿幫不是很明顯。
獲取最佳照明構建時間
全局光照重要性體積
許多貼圖在編輯器中已經網格化到網格的邊緣,但是需要高質量照明的實際可玩區域要小得多。全局光照取決于關卡的大小發射光子,因此這些背景網格體將大大增加需要發射的光子數量,而照明構建時間也將增加。全局光照重要性體積控制全局光照發射光子的區域,允許將其集中在需要清晰間接照明的區域。在重要性體積之外的區域在較低的質量下只能得到一次間接照明的反射。
第一幅圖像中顯示了多玩家地圖的系統占用線框視圖。需要高質量照明的實際可玩區域是中心的綠色小團。
第二幅圖像中顯示了多玩家地圖可玩區域的近景,并正確選擇了設置 Lightmass Importance Volume(全局光照重要性體積)。全局光照重要性體積將該區域的半徑從80,000單位減少到10,000單位,照明面積小了64x倍。
要將一個 Lightmass Importance Volume(全局光照重要性體積) 添加到某個關卡中,可以從 Modes(模式) 菜單的 Volume(體積) 選項卡中將這個 Lightmass Importance Volume(全局光照重要性體積) 對象拖動到關卡中,然后將其縮放到所需的大小。
還可以通過單擊 Actor 下的 Details(細節) 面板中的 Convert Actor(轉換Actor) 下拉框,將畫筆轉換為全局光照重要性體積。
單擊該下拉框后,將出現一個菜單,可以在其中選擇要替換畫筆的Actor類型。
如果放置多個全局光照重要性體積,那么大多數照明工作將通過包含所有這些體積的邊界框來完成。但是,體積照明樣本僅放置在較小的體塊中。
世界場景設置
可在 Lightmass(全局光照) 部分下的 World Settings(世界場景設置) 窗口中調整全局光照設置。
可從 Toolbar(工具欄) 單擊圖標以訪問 World Settings(世界場景設置)。
| Force No Precomputed Lighting(強制不使用預計算照明) | 這將使全局光照無法生成光源和陰影貼圖,強制關卡僅使用動態照明。 |
| Static Lighting Level Scale(靜態光源等級縮放) | 關卡的比例相對于引擎的比例,1虛幻單位 == 1cm。這可用于確定在照明中計算多少細節,較小的比例將大大增加構建時間。對于巨型關卡,可以使用2或4左右的較大比例來減少構建時間。 |
| Num Indirect Lighting Bounces(間接照明反射次數) | 允許光從光源反射到物體表面的次數。0為僅直接光照,1為一次反射,以此類推。反射1次計算時間最長,其次是反射2次。連續的反射幾乎是不受約束的,但也不會增加太多的光,因為光在每次反射后都會衰減。 |
| Indirect Lighting Quality(間接照明質量) | 縮放全局光照GI解算器使用的樣本計數。設置越高,會導致構建時間大量增加,但解算器穿幫(噪點、斑點)變少。請注意,這不會影響由于使用光照圖(紋理接縫、壓縮假影、紋索形狀)而產生的穿幫。 |
| Indirect Lighting Smoothness(間接照明平滑度) | 數值越高,間接照明越平滑,可以隱藏解算器噪點,但也會丟失清晰的間接陰影和環境遮擋。在增大 Indirect Lighting Quality(間接照明質量) 以獲取最高質量時,把這個值降低一些是有用的(0.66或0.75)。 |
| Environment Color(環境顏色) | 錯過這個場景的光線會被染上的顏色。環境可以可視化為一個圍繞著關卡的球體,向各個方向發射這種顏色的光。 |
| Environment Intensity(環境強度) | 縮放環境顏色以允許HDR環境顏色。 |
| Diffuse Boost(漫射增強) | 縮放場景中所有材質的漫反射效果。增加 DiffuseBoost(漫射增強) 是增加場景中間接照明強度的有效方法。在應用 DiffuseBoost(漫射增強) 之后,漫反射項的亮度被限制為1.0,以保持材質的能量守恒(這意味著光在每次反射時必須減少,而不是增加)。如果提高 DiffuseBoost(漫射增強) 未導致更明亮的間接照明,漫射項正被限制,光的IndirectLightingScale應該用于增加間接照明。 |
| Use Ambient Occlusion(使用環境遮擋) | 使靜態環境遮擋可以通過全局光照計算并內置到光照圖中。 |
| Direct Illumination Occlusion Fraction(直接照明遮擋率) | 多少AO應用于直接照明。 |
| Indirect Illumination Occlusion Fraction(間接照明遮擋率) | 多少AO應用于間接照明。 |
| Occlusion Exponent(遮擋指數) | 指數越高,對比度越高。 |
| Fully Occluded Samples Fraction(完全遮擋樣本比例) | 為了達到完全遮擋,必須遮擋的樣本的比例。 |
| Max Occlusion Distance(最大遮擋距離) | 一個對象對另一個對象造成遮擋的最大距離。 |
| Visualize Material Diffuse(可視化材質漫反射) | 僅用導出到全局光照的材質漫反射覆蓋法線直接和間接照明。這在驗證導出的材質漫反射與實際漫反射匹配時非常有用。 |
| Visualize Ambient Occlusion(可視化環境遮擋) | 僅用AO項覆蓋法線直接和間接照明。這在調整環境遮擋設置時很有用,因為它隔離了遮擋項。 |
| Level Lighting Quality(關卡照明質量) | 這反映了當前關卡的照明構建質量設置。 |
光源設置
下面是可以在 Lightmass(全局光照) 部分的光源屬性中進行調整的 Lightmass(全局光照) 設置。
| Indirect Lighting Saturation(間接照明飽和度) | 0將導致間接照明完全不飽和,1將保持不變。 |
| Shadow Exponent(陰影指數) | 控制陰影半影的衰減,或區域從完全光照到完全陰影的變化速度。 |
| Light Source Angle(光源角度) | 對于 Directional Lights Only(僅定向光源),確定光的自發光面相對于接收器的延伸角度,影響半影大小。 |
基元組件設置
下面是可以在從 Modes(模式) 菜單的 Geometry(幾何體) 選項卡中添加的 Brush(畫筆) 上進行調整的 **Lightmass(全局光照)**設置。這些選項可以在 Brush(畫筆) 的 Details(細節) 面板下找到。
| Diffuse Boost(漫射增強) | 縮放應用到此對象的所有材質的漫反射效果。 |
| Fully Occluded Samples Fraction(完全遮擋樣本比例) | 為了實現對其他對象的完全遮擋,從此對象中采集的AO樣本必須被遮擋的比例。這允許控制一個對象對其他對象造成多少遮擋。 |
| Shadow Indirect Only(僅間接陰影) | 如果選中此項,則此對象只會對間接照明產生陰影。這對于草非常有用,因為渲染的幾何體只是實際幾何體的表示,并不一定會投射出精確形狀的陰影。它對草也很有用,因為產生陰影的頻率太高,無法存儲在預計算的光照圖中。 |
| Use Two Sided Lighting(使用雙面照明) | 如果選中此項,該對象將被照亮,就好像它接受來自其多邊形兩側的光照。 |
基本材質設置
下面是可以在 Details(細節) 面板下的 Base Node(基本節點) 的 Material(材質) 中進行調整的 Lightmass(全局光照) 設置。
| Cast Shadow as Masked(像在遮罩狀態一樣下投射陰影) | 對于半透明材質,將該材質視為已被遮罩的材質,以用于陰影投射。 |
| Diffuse Boost(漫射增強) | 縮放此材質對靜態照明的漫反射效果。 |
| Export Resolution Scale(導出分辨率縮放) | 縮放導出此材質屬性時的分辨率。當需要細節時,這對于提高材質分辨率非常有用。 |
總結
以上是生活随笔為你收集整理的【UE4从零开始 082】全局光照的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python时间序列预测不连续怎么办_用
- 下一篇: 实时高清渲染:全局光照(Global I