最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity--URP渲染管線核心機制分析(3)URP渲染管線光照機制剖析

2022-08-26 16:56 作者:博毅創(chuàng)為  | 我要投稿

前言

上一節(jié)通過剖析URP 攝像機了解攝像機的機制,本節(jié)來分析URP的光照的主要機制,并通過與內(nèi)置的向前渲染管線做對比,來比較它們的與不同。

1: URP渲染管線重新定義了光源

不出意外,UPR渲染管線重新定義了光源組件, 接下來看下相比向前渲染管線攝像機機制的核心變化,如圖1.3-1與1.3-2對比:

(圖1.3-1) URP平行光組件

(圖1.3-2) 普通平行光組件

由上圖對比我們發(fā)現(xiàn)了UPR 平行光源組件相比向前渲染管線,多了Bias設(shè)置,少了Cookie光暈這些。Bias設(shè)置的為”Use Pipeline Settings”,我們?nèi)ipeline Settings里面去看下與光相關(guān)Bias設(shè)置,如圖1.3-3:

(圖1.3-3) URP平行光組件

先來講URP光源的幾個核心變化:

(1) 采用主光源MainLight+附加光源 Additional Lights模式,代替向前渲染管線里面的Import光源與No Import光源。主光源只能是平行太陽光,Additional Light可以是其它類型的光源。游戲引擎把所有主光源的顏色值疊加好以后,傳遞給URP的Shader,把所有Additional Lights的光源數(shù)據(jù)傳遞給 URP的Shader, URP Shader 獲取光源數(shù)據(jù),用來做光照計算,來著色, 而向前渲染管線是每個重要光源經(jīng)過一次pass計算,來疊加到最后得顏色,這樣做得有點是可以任意數(shù)目的光源與光照計算,缺點是多次繪制性能受影響。相反URP 是一次pass, 處理多個光源, 但是支持的光源的數(shù)目不是任意的,當然對于做手機游戲來說這點可以打破,正是打破了這一點,使得很多手機游戲開始用URP了。Additional Light的數(shù)目URP做了”Per Object Limit”限制,如圖1.3-3

(圖1.3-4) URP光源的數(shù)目限制

?

(2) 傳統(tǒng)渲染管線,采用是逐頂點光照,還是逐像素光照,都是由Shader的實現(xiàn)來決定,而URP把這個開關(guān)放到了光源這邊,這樣方便我們進行響應(yīng)的配置與調(diào)整。

(圖1.3-5) URP光源的逐頂點+逐像素配置

?

(3) URP 和普通模式向前渲染管線一樣,可以支持靜態(tài)光照與烘培,用法一致。

(4) URP 渲染管線的光照策略,在有限光源數(shù)目前提下相比傳統(tǒng)的獲得更好的性能和更容易配置的選項。

還有一些差別,后續(xù)還可以結(jié)合URP Shader講解來進一步體會。

2: URP Shader中如何獲取 URP渲染管線中的光源

光照上色的本質(zhì)就是,渲染Shader拿到光照的數(shù)據(jù),根據(jù)光照計算,最后決定片元的顏色,上色到屏幕中。URP渲染管線中游戲引擎通過CPU把光源數(shù)據(jù)傳遞給GPU,GPU就可以獲取到,在URP渲染管線中,Shader庫把它封裝成了特定的Shader API函數(shù),如下:

URP Shader獲取主光源數(shù)據(jù):GetMainLight

URP Shader 獲取附加光源數(shù)據(jù):?GetAdditionalLightsCount/ GetAdditionalLight

這里截圖了URP PBR Shader中的代碼如何獲取光源數(shù)據(jù),一次性完成光照計算,如圖1.3-5:


今天的分享就到這里,關(guān)注我們,下一節(jié)繼續(xù)剖析URP渲染管線的其它核心機制。

附:視頻教程

Unity / 框架設(shè)計

50K架構(gòu)師面試必備:向前渲染管線詳解

https://www.bycwedu.com/promotion_channels/266338810?

Unity--URP渲染管線核心機制分析(3)URP渲染管線光照機制剖析的評論 (共 條)

分享到微博請遵守國家法律
建平县| 永年县| 江山市| 澄迈县| 乐都县| 宜昌市| 洞口县| 新源县| 桐乡市| 铁力市| 富平县| 正蓝旗| 金阳县| 法库县| 桂东县| 府谷县| 公主岭市| 紫阳县| 翼城县| 松江区| 且末县| 乌海市| 杭锦旗| 永新县| 昭觉县| 舟山市| 德保县| 宜州市| 衡阳市| 南阳市| 开平市| 永福县| 衢州市| 会泽县| 陕西省| 防城港市| 阿拉善左旗| 离岛区| 泽库县| 蛟河市| 资兴市|