找回密碼
 注冊帳號

掃一掃,訪問微社區

延時光照渲染路徑

2015-1-7 20:41| 發布者: 楊炎| 查看: 1409| 評論: 0|原作者: 蠻牛|來自: unity3d腳本manual

摘要: 延時光照渲染路徑本頁面詳細說明了延時光照 (deferred lighting)渲染路徑。有關延時光照的技術概述,請參閱本文。延時光照 (deferred lighting)渲染路徑是具有最高光照和陰影保真度的渲染路徑。影響物體的光線數量沒 ...

延時光照渲染路徑

本頁面詳細說明了延時光照 (deferred lighting)渲染路徑。有關延時光照的技術概述,請參閱本文。

延時光照 (deferred lighting)渲染路徑是具有最高光照和陰影保真度的渲染路徑。影響物體的光線數量沒有限制,并且采用逐像素的方式評估所有光照,這意味著這些光照將全部與法線貼圖準確交互。此外,所有光照都可有 cookie 和陰影。

延時光照有這樣一個優點:無論光線照射的物體數量是多少,光照的處理開銷與屏幕上的光線尺寸成正比。因此,保持較小的光線尺寸可提高性能。延時光照還有高度一致和可預測的行為。每束光線的效果都是按逐像素光照計算的,因此不會出現在大三角形等上崩潰的光照計算。

延時光照的缺點是沒有實際的抗鋸齒支持,也不能處理半透明物體(這些必須使用“正向渲染”(forward rendering) 來渲染)。同時不支持網格渲染器 (mesh renderer) 的接收陰影 (receive shadows) 標識,并且剔除遮蔽圖的支持方式也有限。(具體而言,您最多可以使用四個剔除遮蔽圖。即:剔除層遮蔽圖必須至少包含減去 4 個任意層后的所有層,所以 32 層中必須設置 28 層。否則會得到圖形假象。)

要求

延時光照只能用于unity 專業版。延時光照要求 shader model 3.0(或更高版本)的圖形卡,并且支持深度 (depth) 渲染紋理和雙面模板緩沖區。大多數 2004 年后制作的圖形卡都支持延時光照,包括 geforce fx 或其更高版本、radeon x1300 或其更高版本、intel 965 / gma x3100 或其更高版本。然而,目前移動平臺和 flash 平臺都不支持延時光照。

性能注意事項

延時光照中實時光線的渲染開銷與光線照射的像素數量成正比,而非取決于場景的復雜性。所以微小點或者聚光燈耗費的渲染資源非常少。如果它們被場景物體完全或部分遮住,甚至會更加便宜。

當然,帶陰影的光源比不帶陰影的光源要昂貴許多。延時光照中,陰影投射物體仍需為每個陰影投射光進行一次或多次渲染。而且,產生陰影的光照著色器的渲染開銷比禁用陰影時使用的光照著色器更高。

實施細節

當使用延時光照 (deferred lighting) 時,unity 中的渲染過程分為三步,如下所示:-

基礎通道:渲染物體以生成帶有深度、法線和高光強度的屏幕空間緩沖區。

光照通道:使用上一步生成的緩沖區將光照計算到另一個屏幕空間的緩存區中。

最終通道:再次渲染物體。將已計算好的光照取出并與顏色紋理混合,然后添加任何環境/放射性光照。

帶有不能處理延時光照著色器的物體在該過程完成后會使用正向渲染路徑進行渲染。

基礎通道

基礎通道對每個對象渲染一次。視圖空間法線和高光強度被渲染進單個 argb32渲染紋理中(法線在 rgb 通道、高光強度在 a 通道)。如果平臺和硬件支持將 z 緩沖區讀取為紋理,那么深度不會進行明確渲染。如果 z 緩沖區不能以紋理的方式進行訪問,則用著色器替換在其他某個渲染通道中渲染深度。

基礎通道的結果是被屏幕內容填滿的 z 緩沖區以及帶有法線和高光強度的渲染紋理 (render texture)。

光照通道

光照通道根據深度、法線和高光強度計算光照。光照是在屏幕空間中計算的,因此所需的處理時間與屏幕復雜性無關。光照緩沖區是單獨的 argb32 渲染紋理 (render texture),紋理的 rgb 通道有漫反射光照,a 通道有單色高光光照。光照值采用對數值編碼,從而提供比 argb32 紋理通常所能達到的動態范圍更廣的動態范圍。延時渲染的唯一光照模式是 blinn-phong。

沒有跨越相機近平面的點光源和聚光燈被渲染成三維形狀,并啟用針對場景的 z 緩沖區測試。這使部分或全部遮擋住的點光源和聚光燈所耗費的渲染資源很少。跨越近平面的方向燈或點光源/聚光燈被渲染成全屏四邊形。

如果光源開啟陰影,則這些光源會在此通道中加以渲染和應用。請注意陰影并不是“免費”的,需要渲染陰影投射器并運用更加復雜的光線著色器。

可用的唯一光照模式為 blinn-phong。如果想要不同的模式,可以通過將內置著色器中修改后的 internal-prepasslighting.shader 文件版本放置到“資產”文件夾中名為“資源”的文件夾來修改光照通道著色器。

最終通道

最終通道生成最終渲染圖像。所有物體都將用著色器再次渲染,其中著色器將采集光照,將光照與紋理混合,并添加任何放射性光照。光照貼圖也會應用到最終通道中。靠近相機時使用實時光照,并只添加烘焙反射光照。這樣做可交叉淡化成遠離相機的全烘焙光照。

相關閱讀

文章點評
相關文章
女校游泳队彩金 福彩3d走势图综合版彩宝网 天空彩票与你同行 31选7开奖结果今天福建今天r 福彩福建快3走势图 3d组六怎么算中奖 澳洲幸运10开奖走势加微 微信多有什么赚钱方法如下 网络点赞赚钱龙 dnf简单赚钱方法 福彩18选7开奖号 河南快3走势图带连线 黑龙江p62开奖号码 c29彩票下载app注册 最新老k棋牌游戏大厅 彩票开奖26选5 做废铜的商家是怎么赚钱的