解思璐 普金花 徐貴飛 張志翼
本文對Unity引擎的實時渲染技術進行了簡要介紹,針對實時渲染技術在游戲領域的應用進行分析,并對實時渲染技術的優缺點進行了總結。
Unity引擎的實時渲染技術
與傳統影視動畫的瀑布流式制作方式不同,Unity可以讓團隊中不同的角色同步進行開發制作,不用相互等待。實時渲染工作流程所見即所得,導演可以在預演階段直接進行場景中物體和攝像機的擺位,在Unity的Timeline中就可進行鏡頭的動態切換等工作。Unity還內置了功能豐富的后期處理模塊,制作人員可以直接在Unity中進行動態模糊、景深、暈光、抗鋸齒以及影視工業級畫面調色的操作。某些版本的Unity還支持傳統影視動畫制作中所需的分層輸出功能。
實時渲染技術在游戲領域的應用
隨著游戲種類越來越多,傳統的渲染管線難以滿足游戲的需求。平時可以看到很多3D、光照非常多的游戲,也有2D的卷軸游戲,這些游戲用一條管線很難兼顧到的性能。因此,為了解決這些問題,Unity推出了可編程的渲染管線,讓用戶可以自定義渲染流程。例如一些裁剪或者繪制物體等,這些流程都可以按照自己的需要進行控制。該渲染管線有非常好的擴展性,針對原來的渲染管線有了很大提升,其中保留了經典的C++內核,提供了更多的接口,幫助用戶盡可能實現自己的功能。該渲染管線還提供了2套模板分別是Lightweight和High模板。
Lightweight主要針對移動和XR平臺,提供了非常方便的材質升級工具,渲染也和原來有所不同,采用了Single-Pass Forward Rendering,可以支持8盞像素光在一個批次進行渲染。
High分成六大功能,首先它的渲染管線有一個比較大的改變,渲染管線相對之前采用了新的模型,物理計算更精確。它在定制渲染管線時對用戶更為透明,用戶只要關注設置的屬性,而不用關注選擇什么樣的管線。調試方面,提供了新的可以觀察調試的窗口。
對于Unity推出的渲染管線不用再去選擇配置,用戶可根據自己的需求來設置渲染管線。一是增強了光照配置,能根據色溫來控制顏色,支持更多的形狀、支持光線顏色的效果;二是新增了區域光類型,支持實時區域光,區域光形狀包括了矩形、圓形等形狀。此外還新增了非常多的材質,包括彩虹色加透明漆材質、雙面透明的效果等。
Unity推出的渲染管線中漸進光照烘焙同樣也做了很大提升。實時渲染場景有很多燈光是在靜態烘焙上取得,尤其是像間接光照,都是烘焙上去的。而漸進烘焙可以實時看到烘焙的過程,而且可以優先看到視圖窗口顯示的效果,給大家工作流就帶來了非常大的便利和效率的提升。
實時渲染技術應用在游戲畫面中,因為每一幀都要響應玩家輸入帶來的變化,所以游戲必須是實時渲染。因為每一幀的時間非常短暫(30幀的話,每幀就只有33 ms),所以實時渲染對計算的速度要求非常高,通過犧牲部分精確度來達到肉眼看起來不太假的效果即可。實時渲染一般是用并行計算能力很強的GPU來進行處理。
實時渲染技術的優缺點
實時渲染技術可以使游戲畫面更加真實,給玩家一種身臨其境的感覺,帶給玩家不一樣的視覺體驗。
但是缺點也很明顯,游戲中的實時光照、陰影、反射可以讓效果看起來更真實,但是它們的性能消耗非常大,使用這些特效可以讓objects渲染多次,會極大地影響性能,游戲渲染路徑的選擇也會影響這些特性對性能的消耗。
通過以上論述,可以知道Unity將相關項目技術不斷應用在內部團隊所制作的演示項目中,其中Unity的實時渲染技術在游戲領域應用非常廣泛,除此之外Unity引擎的實時渲染技術同樣也被好萊塢的導演大量使用,由此可以看出Unity實時渲染技術的實用性以及廣泛性。