找回密碼
 注冊帳號

掃一掃,訪問微社區

正向渲染路徑細節

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

摘要: 正向渲染路徑細節本頁面描述了正向 (forward)渲染路徑的細節。根據影響對象的光源的不同,正向渲染 (forward rendering) 路徑在一個或多個通道中渲染每個對象。根據設置和強度,光源本身也會受到正向渲染 (forward r ...

正向渲染路徑細節

本頁面描述了正向 (forward)渲染路徑的細節。

根據影響對象的光源的不同,正向渲染 (forward rendering) 路徑在一個或多個通道中渲染每個對象。根據設置和強度,光源本身也會受到正向渲染 (forward rendering) 的不同處理。

實施細節

在正向渲染 (forward rendering) 中,影響每個對象的一定數量的最亮光源以全逐像素光照模式" target="_blank" class="relatedlink">光照模式被渲染。然后,最多 4 個點光燈會逐頂點被計算。其他燈根據球諧函數 (sh) 進行計算,這種計算方式更快速,但只能得到近似值。根據以下內容判斷某個光源是否是逐像素光源:

渲染模式 (render mode) 設置為不重要 (not important)的光源通常是逐頂點或球諧函數。

最亮的方向燈通常為逐像素。

渲染模式 (render mode) 設置為重要 (important)的光源通常是逐像素。

如果以上內容導致光源數量小于當前像素光源數量 (pixel light count)質量設置,則為了降低亮度,會有更多的光源以逐像素的方式進行渲染。

用以下方法渲染每個對象:

基礎通道 (base pass) 應用一個逐像素方向燈以及所有逐頂點/球諧函數光源。

其他逐像素光源在其他通道中進行渲染,一個通道對應一個光源。

例如,如果某個對象受到若干光源的影響(下圖中的圓圈受到光源 a 到 光源 h 的影響):

假設光源 a 到 光源 h 具有相同的顏色和強度,且他們的渲染模式都為自動 (auto) 模式,則他們在該對象上將嚴格按照這種順序進行排序。最亮的光源將以逐像素光照模式進行渲染(a 到 d),然后最多 4 個光源以逐頂點光照模式進行渲染(d 到 g),剩下的光源以球諧函數進行渲染(g 到 h):

請注意不同的光照組間有重疊。例如,最后一個逐像素光源混合有逐頂點光照模式,這樣能減少對象和光源移動時可能出現的“光照跳躍”現象。

基礎通道

基礎通道用一個逐像素方向燈和所有球諧函數光源渲染對象。該通道還從著色器中添加任何光照貼圖、環境光照和放射性光照。該通道中渲染的方向燈可以有陰影 (shadows)。請注意,使用了光照貼圖的對象不會獲得來自球諧函數光源的光照。

附加通道

附加通道為影響該對象的每個附加逐像素光源進行渲染。這些通道中的光源不能有陰影(因此,正向渲染 (forward rendering) 支持一個帶陰影的方向燈)。

性能注意事項

球諧函數光源渲染地很快。它們只耗費很少的 cpu,并且實際上無需耗費gpu(換言之,基礎通道通常計算球諧函數光照,但由于球諧函數光照的運行方式,無論有多少球諧函數光源,耗費都是完全相同的)。

球諧函數光源的缺點有:

它們計算的是對象的頂點,而非像素。這意味著它們不支持燈光 cookies 或法線貼圖。

球諧函數光源的頻率很低。球諧函數光源無法有明顯的照明過渡。它們也只會影響漫反射光照(對高光亮點來說,球諧函數光照的頻率過低)。

球諧函數光照不是局部的;靠近某些表面的球諧函數點光燈或聚光燈“看起來別扭”。

總的說來,球諧函數燈對小的動態對象來說已經足夠好了。

相關閱讀

文章點評
相關文章
女校游泳队彩金 去花卉市场买买花去乡下卖赚钱吗 6肖中特三期必开一期 网上ag飞禽走兽怎么赢钱 美女捕鱼图片大全免费下载 广西十一选五网站 云南十一选五手机版开奖结果 微信理财通怎么买基金赚钱 神圣计划官网怎么付费 澳洲幸运8彩票 微信漂流瓶任务赚钱是怎么回事 体彩p5中奖样票 哪个时时彩计划软件准 秒速时时彩网 2018最新看资讯赚钱ap 四川时时彩哪里买 福彩3d赚钱心得体会