學習筆記,不喜勿噴,侵權立刪!祝愿生活越來越好!
光束:模擬大氣中散射的光線。利用定向光源模擬真實曙暮光效果或大氣散射的陰影,即可生成?光束?。這些光線為場景添加深度和真實度。
一:一些參數介紹:
定向光源在其屬性中擁有一個光束?Light Shaft?類目,
以下是這些屬性的參考。
屬性 | 描述 | |
---|---|---|
定向光源 | ||
Enable Light Shaft Occlusion | 確定此光源是否對霧氣和大氣散射形成屏幕空間模糊遮擋。 | |
Occlusion Mask Darkness | 確定遮擋遮罩的顏色深度。數值 1 為無深色調。可使用大于 1 和小于 0 的數值,構成更為專業的效果。 | |
Occlusion Depth Range | 在此距離到攝像機之間的物體均會對光束構成遮擋。 | |
Enable Light Shaft Bloom | 確定是否渲染此光源的光束光暈。就定向光源而言,光源方向周圍的顏色將呈放射性模糊,然后重新添加至場景中。 | |
Bloom Scale | 調整光暈的加色,使其更明顯/不明顯。 | |
Bloom Threshold | 場景顏色必須大于此閾值方可在光束中形成光暈。 | |
Bloom Tint | 與場景顏色一同構成光暈顏色。它為光束光暈效果著色。 | |
Light Shaft Override Direction | 可使光束來自光源實際方向以外的其他位置(必須在非零時使用,無需進行標準化)。 |
下面是編譯器翻譯:
遮擋法
遮擋法從屏幕上物體的深度創建遮罩,將其從光線中模糊掉,并將其用于霧氣和大氣的遮罩。它和現實生活中的光束類似 - 光束由霧氣的陰影所生成。請注意:這也意味著光束的強弱度只能和霧氣/大氣相同。它用于游戲中,旨在獲得更真實的效果。
太陽定向光源可稍微偏離屏幕并產生遮擋光束。然而與太陽之間的角度接近 90 度時,光束將逐漸淡出。
光暈法
光暈法將在世界空間中的光源周圍捕捉場景顏色(包括半透明度和霧氣散射),并從光源進行放射性模糊。此法并非對真實世界中發生的一切進行模擬,但可控性較高(不受霧氣密度限制),視覺效果震撼。太陽周圍存在突出的明亮區域(如明亮的云朵)時光暈法的使用效果最佳。明亮的太陽過小,因此將形成一定程度的鋸齒,而模糊是一個圖像空間操作。
GPU 消耗
這些效果(遮擋和光暈)存在單獨的消耗,因此只啟用必要的效果方為上策。使用 680GTX 顯卡運行 1080p 畫面時,遮擋為 .5ms,單個光源上的光暈為 .68ms。
二:一些實現方法:
1、使用幾何體和材質的方法來創建
這種方法的GPU開銷最低,但是得需要創建幾何體和材質,但無法保證所有角度或情況下都擁有良好的效果,并且無法精確的模擬物理效果,這種技術最適合低端設備,例如手機。
2、使用光束:
這種方法會用到光束,光束的GPU開銷更高,并且只能用于特定的定向光源,只能用于屏幕空間,意味著定向光源必須位于屏幕中,你才能看見光束,有兩種方法可以生成光束:一種是使用泛光bloom讓屏幕變亮來實現另一種是使用遮蔽讓屏幕變暗來創建光束。可以同時使用2種方法,但這也會導致性能開銷變大。
3、體積霧
體積霧的GPU開銷更高,場景中的光源越多尤其是如果光源會生成體積陰影那么開銷就越大。好處在于體積霧可以與點光源、聚光源、矩形光源、定向光源一起使用。它還能與定向光源的光照函數以及動態和靜態陰影一起使用。你甚至還能使用粒子將霧效限制在特定場景區域內。體積霧的另外一個好處是它能精確模擬物理效果,并且支持半透明,但是無法準確表現ies描述文件。
三、操作步驟:
1、添加指數高度霧。
2、添加一個太陽光(平行光)。先使用第二種方法,找到細節面板-光束,同時啟用光束泛光和光束遮擋。
一種方法是降低亮度,另一種是調整天空球材質。天空球這里使用hdr圖片
我們可以控制圖片的亮度。我們也可以使用光束下的泛光縮放bloom scale來調整亮度。
3、我們關閉光束的光束遮擋和光束泛光,來看看體積霧制作效果
我們需要使用定向光源的體積散射強度,它控制著光束的光照強度。
我們需要開啟Atmosphere Fog Sunlight。
繼續向下,定向光源會默認開啟Cast Volumetric Shadows
選中指數高度霧,開啟體積霧Volumetric fog
如果不改動默認設置,效果看起來并不明顯,我們為了讓效果明顯我們把Volumetric Scattering Intensity改為30,效果如下:
回到指數高度霧,高度霧的密度可以有多種控制方式,首先霧密度可以控制,霧高度衰減也可以控制,霧Actor位置,這能控制霧氣中最濃密位置的起始點,可以調坐標,霧高度衰減通常以此點為起點。
調整體積霧的各個選項,首先是Scattering Distribution,基于你觀察光束的角度控制光束強度,此值為0.2時,甚至背對光源也能看見光束。
效果如圖:
當把此值設為0.9,發現攝像機對著光源才能看清光束。記得設回0.3.
接著是反射率Albedo,反射率控制著粒子在大氣中的反射程度,如果是霧、云團、迷霧或者其它由水分子構成的霧就需要盡量設為1,也就是白色,如果你降低這個值,你就能模擬出煙霧,霧霾以及其它并非由水分子構成的霧效,設為0.16,如下圖:
還可以設置霧的顏色(改變反射率顏色),
改回白色,另一個參數為Emissive自發光,如果沒有烘焙光線,可用于渲染全局光照,還能用來生成自帶關照的霧效以及其它美術效果。
接著是消光比例,它基本上就是控制霧光束的強度,它的實際作用就是控制參與媒介遮擋光線的程度。如果增加這個值,看見光束更加不透明了。
降低此數值,可讓光束更加透明,如下圖:
此外還有View Distance可視距離,它能控制霧效會在距離攝像機多遠的距離生成,距離越遠,出現渲染瑕疵的可能性越大,謹慎使用。如果數值太低,你可能在背景中的體積霧發現一些瑕疵,如下圖:
我們使用默認的6000.
靜態光照散射Static Light Scattering 控制著烘焙光照在體積霧中的貢獻,它的辦法是使用一張體積光照貼圖,體積光照貼圖會在lightmass烘焙光照時生成,我們可以可視化體積光照貼圖,顯示-可視化-體積光照貼圖。
最后一個參數,使用霧內散射顏色覆蓋光源顏色Override Light Colors with Fog in Scattering Colors,如果啟用它,我們就可以基于三種不同的設置來調整體積霧的顏色。
第一個是霧內散射顏色,第二個是內散射立方體紋理,最后是定向內散射顏色
使用內散射顏色調整效果如下:
四、總結
如果打開視口選項,點擊統計數據,advanced,勾選GPU,在GPU中我們可以看見體積霧當前渲染時間。設置-引擎可延展性,我們更改陰影設置為high,但會有瑕疵,渲染時間更少。另外一種影響體積霧效能的是在體積霧中使用點光源和聚光源,拖入聚光燈到場景,修改亮度,加大體積散射強度,啟用投射體積霧陰影,發現渲染時間邊長。如果出現光束時,霧效不是特別多,你可以降低全局霧密度,然后增加光源的體積散射強度。以便在不增加霧濃度的情況下,加強光束亮度。體積霧與光束一起使用,打開光束遮蔽,調整下面參數值,他對體積霧的光束產生了影響。
要想了解體積霧:查看以下鏈接:
視頻鏈接:
UE使用體積光制作上帝之光視頻教程_嗶哩嗶哩_bilibili