UE4_照亮環境_光束light beam

學習筆記,不喜勿噴,侵權立刪!祝愿生活越來越好!

光束:模擬大氣中散射的光線。利用定向光源模擬真實曙暮光效果或大氣散射的陰影,即可生成?光束?。這些光線為場景添加深度和真實度。

一:一些參數介紹:

定向光源在其屬性中擁有一個光束?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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12199.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12199.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RabbitMQ部署指南.md

RabbitMQ部署指南 1.單機部署 我們在Centos7虛擬機中使用Docker來安裝。 1.1.下載鏡像 方式一:在線拉取 docker pull rabbitmq:3.8-management方式二:從本地加載 在課前資料已經提供了鏡像包: 上傳到虛擬機中后,使用命令加載…

ASP.NET銀行大廳自助信息系統的開發與實現

摘 要 本畢業設計在基于銀行業務大廳現有業務的基礎上,針對自助銀行的概念和其獨有特點,通過.NETSQL技術,開發一個簡單的銀行大廳自助信息系統,完成一些自助銀行的業務需求如帳戶信息查詢、帳戶掛失、自助交費、留言、新聞查詢…

jmeter中java請求,解決不支持協議和元件,實現自定義元件

目錄 java請求 作用場景 JavaTest類源碼分析 編寫java請求樣例 新建java工程,導入jmeter主要依賴。 編寫java請求類,繼承AbstractJavaSamplerClient, 導入工程為jar包,放置jmeter安裝目錄下lib/ext目錄 重啟jmeter,添加ja…

3D,點云下采樣

文章目錄 一、隨機采樣1、算法原理2、步驟二、格點采樣格點采樣的特點三、均勻采樣1、類似體素網格采樣2、固定間隔采樣3、最遠點采樣四、曲率采樣曲率采樣的特點:參考資料:對于大規模點云處理而言,直接對點云進行特征提取能較好地保留三維結構信息。但由于點云的無序性,直…

flutter開發實戰-log日志存儲zip上傳,發送釘釘機器人消息

flutter開發實戰-log日志存儲zip上傳,發送釘釘機器人消息 當我們需要Apk上傳的時候,我們需要將日志打包并上傳到七牛,上傳之后通過釘釘通知我們日志下載地址。 這里我使用的是loggy來處理日志 一、引入loggy日志格式插件 在工程的pubspec.…

【經驗總結】超算互聯網服務器 transformers 加載本地模型

1. 背景 使用 超算互聯網 的云服務,不能連接外網,只能把模型下載到本地,再上傳上去到云服務。 2. 模型下載 在 模型中 https://huggingface.co/models 找到所需的模型后 點擊下載 config.json pytorch_model.bin vocab.txt 3. 上傳模型文…

Flutter 中的 CupertinoAlertDialog 小部件:全面指南

Flutter 中的 CupertinoAlertDialog 小部件:全面指南 在Flutter中,CupertinoAlertDialog是用于在iOS風格的應用中顯示警告或提示信息的模態對話框。它以其圓角卡片和模糊背景為特點,為用戶提供了一個簡潔而直觀的交互界面。CupertinoAlertDi…

IT行業找工作十面十敗,不妨試試鴻蒙開發崗~

近期某脈上看到這樣一則帖子,討論的非常激烈! 相信也有不少人有和他這情況類似,像他這種失業的狀態,近兩年大家或多或少都深有體驗。由于互聯網行業進過了十幾年的快速發展,從2G→3G→4G→5G,在這個期間人們…

c++ 獲取機器碼

看到網上代碼代碼都沒什么好的&#xff0c;自己備用一個 #include <iostream> #include <string> #include <sstream> #include <iomanip> #include <Windows.h> #include <iphlpapi.h> // 包含這個頭文件以獲取 PIP_ADAPTER_INFO #inclu…

elasticsearch-head 源碼運行

1、下載安裝nodejs 地址&#xff1a;Node.js — Run JavaScript Everywhere 2、git下載 elasticsearch-head 源碼 地址&#xff1a;GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster 3、使用cmd 進入 elasticsearch-head 目錄 4、依次執…

嵌入式學習-M4的基本定時器

基本介紹 框圖分析 時鐘選擇 計數器結構 開啟重裝載值寄存器的影子寄存器的工作時序圖 未開啟重裝載值寄存器的影子寄存器的工作時序圖 更新事件以及中斷 相關寄存器 相關庫函數

Cesium+山海鯨:可視化技術的完美融合

在當今數字化浪潮中&#xff0c;可視化技術已經成為各個行業提升效率和優化決策的關鍵。特別是在地理信息系統&#xff08;GIS&#xff09;和數字孿生領域&#xff0c;這種技術的重要性更加凸顯。而山海鯨可視化與Cesium的融合&#xff0c;無疑是這一領域的重大突破。 首先&am…

【Spring】BeanFactory源碼翻譯

package org.springframework.beans.factory;import org.springframework.beans.BeansException; import org.springframework.core.ResolvableType; import org.springframework.lang.Nullable;/*** The root interface for accessing a Spring bean container.* 用于訪問Spri…

量化交易:Dual Thrust策略

哈嘍&#xff0c;大家好&#xff0c;我是木頭左&#xff01; Dual Thrust策略起源于20世紀80年代&#xff0c;由美國著名交易員和金融作家Larry Williams首次提出。這一策略的核心思想是通過捕捉市場中的短期波動來實現盈利。Larry Williams通過多年的研究和實踐&#xff0c;發…

智能EDM郵件群發工具哪個好?

企業之間的競爭日益激烈&#xff0c;如何高效、精準地觸達目標客戶&#xff0c;成為每個市場戰略家必須面對的挑戰。在此背景下&#xff0c;云銜科技憑借其前沿的AI技術和深厚的行業洞察&#xff0c;匠心推出了全方位一站式智能EDM郵件營銷服務平臺&#xff0c;重新定義了郵件營…

[ECE] SRAM DRAM

SRAM&#xff08;Static Random-Access Memory&#xff0c;靜態隨機存取存儲器&#xff09;和DRAM&#xff08;Dynamic Random-Access Memory&#xff0c;動態隨機存取存儲器&#xff09;是兩種主要的隨機存取存儲器技術&#xff0c;它們在計算機和其他電子設備中扮演著重要的角…

2024OD機試卷-字符串序列判定 (java\python\c++)

題目:字符串序列判定 題目描述 輸入兩個字符串 S 和 L ,都只包含英文小寫字母。S長度 ≤ 100,L長度 ≤ 500,000。判定S是否是L的有效子串。 判定規則:S 中的每個字符在 L 中都能找到(可以不連續),且 S 在L中字符的前后順序與 S 中順序要保持一致。(例如,S = ” ace…

StringBuilder

demo1 描述&#xff1a; 主要演示了StringBuilder類的使用。 首先創建一個空的StringBuilder對象s。 使用System.out.println()方法打印對象s&#xff0c;輸出結果為""&#xff08;空字符串&#xff09;。 調用StringBuilder的append()方法多次&#xff0c;將字符串…

半小時搞懂STM32面經知識——RCC

1. 時鐘的概念 時鐘是由電路產生的具有周期性的脈沖信號&#xff0c;相當于單片機的心臟&#xff0c;要想使用單片機的外設必須開啟時鐘。 時鐘對單片機有什么作用&#xff1f; 1. 驅動外設的本質是寄存器&#xff0c;而寄存器需要時鐘觸發才能改寫值。 2. 時鐘頻率越高&#…

安全風險 - 如何解決 setAccessible(true) 帶來的安全風險?

可能每款成熟的金融app上架前都會經過層層安全檢測才能執行上架&#xff0c;所以我隔三差五就能看到安全檢測報告中提到的問題&#xff0c;根據問題的不同級別&#xff0c;處理的優先級也有所不同&#xff0c;此次講的主要是一個 “輕度問題” &#xff0c;個人認為屬于那種可改…