Unity-內(nèi)置著色器變量
Unity 的內(nèi)置文件包含著色器的全局變量:當(dāng)前對(duì)象的變換矩陣、光源參數(shù)、當(dāng)前時(shí)間等等。就像任何其他變量一樣,可在著色器程序中使用這些變量,但如果已經(jīng)包含相關(guān)的 include 文件,則不必聲明這些變量。
有關(guān) include 文件更多信息,請(qǐng)參閱內(nèi)置 include 文件。
變換
所有這些矩陣都是?float4x4
?類(lèi)型,并且是列主序的。

攝像機(jī)和屏幕
這些變量將對(duì)應(yīng)于正在渲染的攝像機(jī)。例如,在陰影貼圖渲染中,它們?nèi)詫⒁脭z像機(jī)組件值,而不是用于陰影貼圖投影的“虛擬攝像機(jī)”。

時(shí)間
時(shí)間以秒為單位,并由項(xiàng)目?Time 設(shè)置中的時(shí)間乘數(shù) (Time multiplier) 進(jìn)行縮放。沒(méi)有內(nèi)置變量可用于訪問(wèn)未縮放的時(shí)間。

光照
光源參數(shù)以不同的方式傳遞給著色器,具體取決于使用哪個(gè)渲染路徑, 以及著色器中使用哪種光源模式通道標(biāo)簽。
前向渲染(ForwardBase
?和?ForwardAdd
?通道類(lèi)型):

延遲著色和延遲光照,在光照通道著色器中使用(全部在 UnityDeferredLibrary.cginc 中聲明):

為?ForwardBase
、PrePassFinal
?和?Deferred
?通道類(lèi)型設(shè)置了球諧函數(shù)系數(shù) (由環(huán)境光和光照探針使用)。這些系數(shù)包含由世界空間法線求值的三階 SH 函數(shù)(請(qǐng)參閱?UnityCG.cginc?中的?ShadeSH9
)。 這些變量都是 half4 類(lèi)型、unity_SHAr
?和類(lèi)似名稱(chēng)。
頂點(diǎn)光照渲染(Vertex
?通道類(lèi)型):
最多可為?Vertex
?通道類(lèi)型設(shè)置 8 個(gè)光源;始終從最亮的光源開(kāi)始排序。因此,如果您希望 一次渲染受兩個(gè)光源影響的對(duì)象,可直接采用數(shù)組中前兩個(gè)條目。如果影響對(duì)象 的光源數(shù)量少于 8,則其余光源的顏色將設(shè)置為黑色。

光照貼圖

霧效和環(huán)境光

其他
