Forward Rendering 正向渲染

2022-06-18 10:06:12 字數 1231 閱讀 5941

forward rendering 正向渲染

正向渲染乙個基於著色器的渲染路徑。它支援逐畫素計算光照(包括法線貼圖和燈光cookies)和來自乙個平行光的實時陰影。在預設設定中,少數最亮的燈光在逐畫素計算光照模式下渲染。其餘的燈光計算物件頂點的光照。

根據影響物體的光源的不同,正向渲染路徑用單個或多個通道來渲染物體。在正向渲染中,光源本身也會根據他們的設定和強度受到不同的對待。

實現細節

在正向渲染中,影響物體的最亮的幾個光源使用逐畫素光照模式。接下來,最多有4個點光源會以逐頂點渲染的方式被計算。其他光源將以球面調和(spherical harmonics)的方式進行計算,球面調和技術計算很快但只能得到近似值。根據以下的規則判斷乙個光源是否為逐畫素光源:

用以下的方法渲染每個物體:

假設光源a到h都有相同的顏色和強度,且它們的渲染模式都為自動的(auto),那麼它們嚴格的按照其名字排序

。最亮的光源以逐畫素光照模式的方式進行渲染(a到d),然後最多有4個光源以逐頂點光照模式進行渲染(d到g),其他光源以球面調和的方式進行渲染(g到h)。

注意不同的光照組間有重疊,如,最後乙個逐畫素光源也以逐頂點光照模式的方式渲染,這樣能減少當物體和燈光移動時可能出現的

"光照跳躍"

現象。base pass 基本通道

基礎通道用乙個逐畫素方向光和所有球面調和光渲染物體。此通道還負責渲染著色器中的光照貼圖,環境光和自發光。在此通道中渲染的方向光可以產生陰影。需要注意的是,使用了光照貼圖的物體不會得到球面調和光的光照。

additional passes 附加通道

附加通道用於渲染影響物體的其他逐畫素光源。這些通道中渲染的光源無法產生陰影(因此,前向渲染支援乙個能產生陰影的方向光)。

performance considerations 效能注意事項

渲染球面調和光很快。它們只花費很少的cpu計算時間,並且實際上無需花費任何gpu計算時間(換言之,基礎通道會計算球面調和光照,但由於球面調和光的計算方式,無論有多少球面調和光源,計算它們所花費的時間都是相同的)。

球面調和光源的缺點有:

總的來說,球面調和光的效果對小的動態物體來說已經足夠好了。

Forward Rendering 正向渲染

forward rendering 正向渲染 正向渲染乙個基於著色器的渲染路徑。它支援逐畫素計算光照 包括法線貼圖和燈光cookies 和來自乙個平行光的實時陰影。在預設設定中,少數最亮的燈光在逐畫素計算光照模式下渲染。其餘的燈光計算物件頂點的光照。根據影響物體的光源的不同,正向渲染路徑用單個或多個...

android獲取textview展開渲染後的高度

當你需要獲取textview真正高度時,相信會有不少人會在oncreate函式中呼叫textview的getheight 方法,簡單粗暴,確實,這是個很方便的方法,但是不幸的是textview在oncreate中根本還沒有展開,所以根本獲取不到textview的真正高度,因此我們需要給textvie...

正向最大匹配

按照網上資料,中文分詞演算法可分為三大類 基於字典 詞庫匹配的分詞方法 基於詞頻度統計的分詞方法和基於知識理解的分詞方法。基於詞庫的方法,有幾個問題要解決,一是詞庫和資料結構,二是字串在詞庫的匹配方式,三是多種滿足匹配的選擇。正向最大匹配是基於詞庫的分詞方法,基本思想是按照文字的正方向,與詞庫中的詞...