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

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

20.Shader多類(lèi)型光源

2023-06-10 18:24 作者:機(jī)智的小草yns  | 我要投稿

目錄

????1,渲染路徑

????2,不同光源光照處理


1.渲染路徑(理論)

Unity中, 有3種渲染路徑(Rendering Path),分別是

前向渲染 , 延遲渲染 , 頂點(diǎn)照明渲染(棄用)

前向渲染

前向渲染: 有深度緩沖區(qū)和顏色緩存區(qū), 由深度判斷一個(gè)像素是否可見(jiàn), 如果可見(jiàn)則更新緩沖區(qū)顏色

每次進(jìn)行一次完整的前渲染,都需要渲染該對(duì)象的渲染圖元,

對(duì)于每個(gè)逐像素光源,我們都需要進(jìn)行上面一次完整的渲染流程。如果一個(gè)物體在多個(gè)逐像素光源的影響區(qū)域內(nèi),那么該物體就需要執(zhí)行多個(gè)Pass,每個(gè)Pass 計(jì)算一個(gè)逐像素光源的光照結(jié)果,然后在幀緩沖中把這些光照結(jié)果混合起來(lái)得到最終的顏色值。

延遲渲染

延遲渲染分兩個(gè)pass,

第一個(gè)pass: 不計(jì)算光照, ?只計(jì)算哪些片元可見(jiàn), 將可見(jiàn)的片元的相關(guān)信息存到G-bufffer中 (Geometry幾何)

第二個(gè)pass:利用G-buffer中的信息, 如法線(xiàn)、視角方向、漫反射系數(shù),對(duì)片元進(jìn)行真正的光照計(jì)算

優(yōu)點(diǎn): 適用于多光源的場(chǎng)景

缺點(diǎn): 不支持抗鋸齒 , 不能處理半透明, 對(duì)顯卡有一定要求。

顯卡必須支持 MRT (Multiple RenderTargets)、Shader Mode 3.0及以上、深度渲染紋理以及雙面的模板緩沖。


2.不同光源光照

介紹

1.平行光: 沒(méi)有位置, 只有方向, 沒(méi)有光照衰減

2.點(diǎn)光源: 它呈球體往四周散射 , 隨距離光照衰減

3. 聚光燈: 錐形光, 和點(diǎn)光源差不多


接收光照處理

思路:

使用兩個(gè)pass, 并將光照結(jié)果混合。

普通平行光照 LightMode=ForwardBase

追加光照 LightMode = ForwardAdd

混合方式:Blend One One

追加光照結(jié)果 = 普通平行光照*光照衰減值

核心代碼

(Lighting_specular.shader基礎(chǔ)上修改)

完整代碼:https://github.com/smartgrass/MyCodes/blob/main/ShaderLearning/Lighting_mult.shader

受點(diǎn)光源光照效果


代碼解釋

Tags{"LightMode"="ForwardBase"} 和 ForwardAdd? 標(biāo)記光照輸入類(lèi)型

#pragma multi_compile_fwdbase ForwardBase模式編譯指令

#pragma multi_compile_fwdadd???ForwardAdd模式編譯指令

#ifdef USING_DIRECTIONAL_LIGHT 平行光宏

UNITY_ATTEN_CHANNEL ?用來(lái)兼容不同平臺(tái)的光照衰減通道,一般來(lái)說(shuō)是r通道。

Blend One One? 設(shè)置線(xiàn)性混合


_LightTexture0 ?光照衰減紋理 , Unity為減少計(jì)算量, 衰減結(jié)果做成表

dot(lightCoord,lightCoord)? 燈與頂點(diǎn)于距離的平方,作為查詢(xún)衰減值的坐標(biāo)


總結(jié)

對(duì)追加光源的處理, 只要將LightMode設(shè)為ForwardAdd,? 便能用獲取到額外的光照信息,比如_LightColor0.xyz

追加的pass使用 Blend One One,將普通光照結(jié)果與追加光照結(jié)果混合


其他

多個(gè)光源的渲染順序: 近的光源優(yōu)先, 亮度大的優(yōu)選。

與光源強(qiáng)度、顏色和距離物體的遠(yuǎn)近有關(guān)系, 具體關(guān)系Unity官方?jīng)]說(shuō)明


光的衰減公式,Unity官方?jīng)]說(shuō)明

可以使用距離反比來(lái)計(jì)算

fixed atten = 1.0/_distance; ?

衰減公式還原見(jiàn)大佬的文章

https://zhuanlan.zhihu.com/p/113087810


20.Shader多類(lèi)型光源的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
磐石市| 边坝县| 盐津县| 皋兰县| 安庆市| 嘉黎县| 丽水市| 禄劝| 香河县| 建水县| 长汀县| 青神县| 双江| 侯马市| 新化县| 孟州市| 长乐市| 襄汾县| 观塘区| 夏河县| 师宗县| 昌宁县| 靖远县| 高平市| 蓬莱市| 乐山市| 罗甸县| 万山特区| 永平县| 凤冈县| 增城市| 荆门市| 外汇| 金川县| 来安县| 临江市| 金寨县| 石家庄市| 宿迁市| 伽师县| 庆云县|