Unity預計算全域性實時GI(一) 介紹

2021-08-11 08:17:12 字數 1684 閱讀 6749

在unity中,對於預計算的全域性光照(gi)或反射光照有兩種可用但區別很大的技術可被使用:它們是烘焙全域性光照(baked gi) 和預計算實時全域性光照precomputed realtime gi。本教程主要講解預計算實時全域性光照(prgi)。

當啟用prgi時,光照預計算過程指的是在unity 編輯器模式下計算靜態幾何物件物體周圍光的反射,並存成資料在遊戲執行時使用的過程。這個過程減少了原本必須在遊戲執行時的光照計算量,可以讓專案在保持互動幀率的同時,還允許使用實時反射光照。

當啟用烘焙gi(baked gi)時,預計算的過程會離線生成傳統的光照貼圖(lightmap),這些貼圖會以資源(assets)的形式存在專案中,但是無法在執行時時被更改。而prgi則是使用不同的方法生成光照貼圖, prgi計算的結果會被存成光照資料檔案(lighting data asset),這些資料報含了在遊戲執行時需要互動地生成和更新一組低解析度光照圖的資訊。

不過,除非場景已經被合理地準備並且優化,否則完成這些計算所需的時間可能會很長。下面我們一起來看一下如何針對enlighten系統(unity中prgi以及bake gi解決方案的後台處理)來做場景優化,從而把預計算時間從幾小時縮小到幾分鐘。

本套教程我們將會講解:

*如何定義適合當前場景的光照解析度

* 了解什麼是charts,以及它是如何影響我們的預計算時間的.

* 如何開始預計算過程.

* 使用光照探頭來降低光照方案的複雜度.

* 改進由unity prgi自動拆解出的uv.

* 集群(clusters)是什麼,以及如何用它來產生全域性光照(gi).

* 如何使用光照貼圖引數來微調每個遊戲物件上的光照.

一旦我們學會並且應用了這些技術,我們就可以充分利用prgi的優點:快速的光照迭代,在光照過程中更加快速地進行試驗的能力以及在遊戲執行時的實時反射光照的能力。

在本教程所使用的lighting tutorial場景中,用沒有優化過的預設設定,在我們的測試機上預計算光照大約花了7.5個小時。對於這樣複雜的場景,顯然這是無法接受的。

預設場景: 預計算花費7.5小時.優化過的場景: 預計算花費2.25分鐘.

使用本教程所介紹的技術進行大約30分鐘的場景準備後,這個場景的預計算時間僅僅花了2.25分鐘就得到了產品等級的效果。這個技術的好處是顯而易見的:可以快速地迭代場景光照而不需要重新計算gi以及在在遊戲執行時改變gi的光照。

本教學所用的是scenes/article目錄下的範例場景:lightingtutorialoptimal、lightingtutorialnonoptimal、lightingtutorialstart。

* lightingtutorialoptimal:展示使用prgi如何能用最短預計算的時間呈現出產品等級的結果。

* lightingtutorialnonoptimal:呈現了我們在專案中常看到的問題,要麼造成無法烘焙,要麼花費無法接受的時間烘焙,這是乙個很好的錯誤配置場景的案例。

* lightingtutorialstart:這是我們將在教學過程中一直用到的場景,我們會按照步驟一步一步將它完成,變成乙個產品等級的場景。

unity預計算全域性實時gi(二)- 實時解析度

Unity預計算全域性實時GI(二) 實時解析度

當使用預計算實時全域性光照 prgi 為乙個場景設定光照時,首先要決定的是設定場景預設的實時解析度 realtime resolution realtime resolution是每個世界單位所使用的實時光照貼圖紋素 貼圖畫素 的數量。realtime resolution設定可以在lighting...

Unity實時GI與烘焙GI

在unity2019.3.8中,當我們新建乙個場景時,預設的燈光設定為 自帶的主平行光 realtime 燈光面板 baked gi light mode為shadowmask 不是distance shadowmask 新建物體的contribute gi預設是關閉的 該預設設定有乙個不足,即不能...

Unity5 新功能解析 GI 全域性光

面積光的光源有形狀,是乙個矩形區域,有位置,有方向,方向是超矩形的一面,矩形的背面沒有光,並且隨距離衰減直到沒有。它用於模擬大量的光源和在一起的效果,如街道,但是因為計算複雜,所以只用於烘焙 構成 可實時更新的lightmap 可實時更新的光照探頭 light probe 可實時更新的cubemap...