車燈(關于車燈的基本詳情介紹)

在計算機圖形領域,正確平衡直接和間接照明有助于提升場景的逼真度。

想象一下:在炎炎夏日中,您徒步到湖畔并坐在樹蔭下,凝視著因陽光照耀而閃閃發光的湖面。

在這個場景中,光和影兩個不同效果分別對應直接照明和間接照明。

陽光灑在湖面和樹上,水面呈現波光粼粼的效果,樹葉則顯得更加翠綠,這就是直接照明產生的效果;雖然樹木投下了陰影,但陽光仍能從地面和其他樹木處反射回來,將光線投射到周圍的陰影區域,這就是間接照明的過程。

為使觀眾能夠沉浸式體驗逼真的環境,需在計算機圖形處理過程中準確模擬光線傳播行為,以達到直接照明和間接照明的正確平衡。

什么是直接照明和間接照明?

燈光直接照射物體被稱為直接照明。

直接照明能夠確定從光源到達物體表面的光線顏色和數量,但忽略了能通過其他方式到達物體表面的光線,比如經過反射或折射的光線等。直接照明還能決定被物體表面吸收和反射的光量。

來自太陽和天空的直接照明。

光線經物體表面反射,而后照亮其他物體的過程被稱為間接照明。間接照明是指從除光源以外的其他地方到達物體表面的光線。換言之,間接照明決定了到達物體表面的所有其他光線的顏色和數量。間接光常常從一個表面反射到其他表面。

由于發光體和觀察者之間存在大量路徑,因此間接照明通常比直接照明更難計算且成本更高。

同一環境中的直接和間接照明。

什么是全局照明?

全局照明是計算場景中可見表面上所有光線(包括直接和間接)的顏色和數量的過程。

實現所有類型間接光的精確模擬非常困難,尤其是當場景中包含復雜的材質,如玻璃、水、有光澤的金屬等,或者在場景中存在云、煙、霧或其他被稱為體積介質的散射。

因此,一般而言,用于全局照明的實時圖形解決方案只限于計算間接光的一個子集,通常用于漫反射(又稱啞光)材質的表面。

如何計算直接照明和間接照明?

當前有許多可用于計算直接照明的算法,這些算法各有優劣。例如,如果場景中只有一盞燈且沒有陰影,那么計算直接照明就會很簡單,但這類場景的逼真程度不太高。但當一個場景有多個光源時,若要處理位于各個表面的所有光線,會產生十分高昂的成本。

為解決這些問題,技術提供商開發了經過優化的算法以及著色技術,如延遲著色或集群著色等。這些算法有助于減少需要計算的表面和燈光相互作用的數量。

陰影則可以通過陰影貼圖、模板陰影體和光線追蹤等技術進行添加。

陰影貼圖分為兩個步驟。首先,從燈光的角度而言,場景將被渲染成一個稱作陰影貼圖的特殊紋理。而后,該陰影貼圖會被用于測試屏幕上的可見表面從光源角度是否是可見的。陰影貼圖存在許多限制和偽影,而且隨著場景中光線數量的增加,其成本會迅速增高。

毀滅戰士 3(2004)(Doom 3)中的模版陰影,圖片來源:維基百科。

模板陰影體是從燈光中提取出的場景幾何體所渲染成的模版緩沖區,該模版緩沖區的內容可用于檢查屏幕上的特定表面是否處于陰影中。模板陰影的邊緣總是很銳利且不自然,但是不會出現常見的陰影貼圖問題。

在引入NVIDIA RTX技術之前,將光線追蹤用于計算陰影的成本十分高昂。光線追蹤是一種圖形渲染方法,可模擬光線的物理行為。通過追蹤屏幕中的表面所反射的光線,可以計算出陰影,但是如果光線來自一個點,這便十分具有挑戰性。此外,如果場景中有許多光源的話,使用光線追蹤陰影技術的成本會迅速增加。

于是,廠商開發了一種更高效的采樣方法,可減少在計算由多個光源生成的軟陰影過程中所需的光線數量。其中有一種叫做ReSTIR的算法,以交互式幀速率進行光線追蹤,并對由數百萬個光線和陰影組成的直接照明進行計算。

使用 ReSTIR 創建的直接照明和光追陰影與以往算法的比較。

什么是路徑追蹤?

而對于間接照明和全局照明來說,可以使用的計算方法則更多。其中最直接的方法是路徑追蹤,即模擬每個可見表面的隨機光路。其中,部分路徑能觸達光線且有助于完成場景構建,而其他路徑則不具備該能力。

路徑追蹤能以最精確的方式產生能完全表示場景照明的結果,并能與用于材質和光線的數學模型實現精確匹配。路徑追蹤的計算成本雖然很高,但于實時圖形學領域而言仍是一項最佳方法。

比較路徑追蹤之不完整的光追算法和光柵化。

直接照明和間接照明對圖形學領域的影響?

應用于場景中的光照貼圖。圖片來源:Reddit。

直接照明可用于構建逼真的基本外觀,間接照明則能使場景看起來更加豐富、自然。

大量的視頻游戲制作中也會用到間接照明,以構建無處不在的環境光。這類燈光可以恒定不變;也可以基于網格形式排列的燈光探測器在空間上進行變化;還可以被渲染成紋理格式,包裹場景中的靜態物體,這種方法則被稱為光照貼圖。

在大多數情況下,環境光會被環繞表面的被稱作環境光遮蔽的幾何函數所遮蔽,這種現象有助于提高畫面的真實感。

森林場景中的直接照明與全局照明。

直接照明、間接照明和全局照明示例

20 世紀 90 年代以來,幾乎所有 3D 游戲都基于某種形式使用了直接照明和間接照明。以下是一些熱門游戲在實現照明中所取得的里程碑:

毀滅戰士(Doom)的地圖區域具有不同的燈光強度。

1993 年:毀滅戰士(Doom)是第一批實現動態照明的游戲。在該游戲中,每個區域的燈光強度都是可變的,能夠使紋理貼圖實現或明或暗的變化,并對昏暗和明亮的區域以及閃爍的光等場景效果進行模擬。1995 年:雷神之錘(Quake)引入了光照貼圖,并預先計算了游戲中的各個關卡所需的光照貼圖。光照貼圖可用于調節環境光的強度。1997 年:雷神之錘 II(Quake II)為光照貼圖添加了顏色及來自射彈和爆炸的動態照明。2001 年:寂靜嶺 2(Silent 2)采用了逐像素照明和模板陰影。怪物史萊克(Shrek)使用了延遲照明和模版陰影。2007 年:孤島危機(Crysis)采用了動態屏幕空間環境光遮蔽技術,通過像素深度的改變實現照明的變化感。2008 年:雷神戰爭:光線追蹤版(Quake Wars:Ray Traced)是第一個使用光追反射的游戲技術演示。2011 年:末日之戰 2(Crysis 2)是第一個采用屏幕空間反射(SSR)技術的游戲,即重新利用屏幕空間數據進行計算反射的熱門技術。2016 年:古墓麗影:崛起(Rise of the Tomb Raider)是第一個使用基于體素的環境光遮蔽的游戲。2018 年:戰地 5(Battlefield V)是第一個使用光追反射的商業游戲。2019 年:Q2VKPT是第一個應用路徑追蹤的游戲,該技術后來在雷神之錘 II RTX 版(Quake II RTX)中得到了完善。2020 年:采用 RTX 的游戲我的世界(Minecraft),借助 RTX 實現了路徑追蹤。

孤島危機(Crysis),圖片來源:MobyGames.com。

支持 RTX 的我的世界(Minecraft)。

實時圖形學的未來發展方向是什么?

實時圖形學未來的發展方向是能在日益復雜的場景中,實現更加完整的光線模擬。

ReSTIR 拓寬了藝術家能夠在游戲中使用多個燈光的可能性。其新版本ReSTIR GI將同樣的理念應用于全局照明,實現了反射更多、更精確的路徑追蹤,同時還能以更快的速度渲染出噪點更少的圖像。目前,技術提供商正在開發更多新的算法,以使路徑追蹤更快且更方便。

雖然使用光線追蹤可實現完整的模擬照明效果,但這也意味著渲染后的圖像可能包含一些噪點。當前,減少噪點(降噪)也屬于熱門研究領域。

技術提供商正在開發更加豐富的技術,以幫助游戲開發者能夠在實時幀率下,對復雜且細節豐富并包含大量運動行為的場景進行有效的降噪。目前,技術人員主要從兩方面著手,以解決該問題:噪點較少的高級采樣算法以及能夠處理愈加棘手情況的高級降噪器。

《賽博朋克 2077》使用 NRD 去噪。

NVIDIA 的直接照明和間接照明解決方案的詳情請見:

https://developer.nvidia.cn/zh-cn/rtx/ray-tracing/rtxdihttps://developer.nvidia.cn/zh-cn/rtx/ray-tracing/rtxgi

點擊https://developer.nvidia.com/zh-cn/blog/,在NVIDIA 技術博客上深入了解圖形學和渲染。

轉載注明出處:華峰博客網

內容版權聲明:除非注明,否則皆為本站原創文章。