lens flare 鏡頭光暈

2021-04-29 20:38:32 字數 638 閱讀 5163

最近的又乙個工作是給遊戲新增鏡頭光暈,google一下,gamedev上就有乙個很好的教程,最簡單的方法是:將太陽位置投影到螢幕空間,如果不在屏 幕內就不畫,否則從太陽位置向螢幕中心畫出一系列的光暈貼圖,混合方法還是src:srcalpha,dest:one。可完全當做2d進行繪製。

我 使用irrlicht引擎,就有乙個小問題了,如果當做2d繪製就必須改變camera,設定乙個平行透視的camera,這樣也不是不行,但是為了 統一,我給lens flare寫了乙個custom scene node,這樣就必須用3d方法繪製,其實就是乙個billboard而以,參考下irrlicht中的billboard實現,計算出hor和ver偏 移向量,即可從中心位置構造四邊形的邊。至於flare的3d位置的獲得,首先是計算出螢幕座標(根據在序列上的位置),然後利用irr提供的射線方法從 螢幕空間反投影到3d空間,z值的確定我根據太陽的位置求出乙個縮放值,這樣保證反投影後太陽還是在原來的3d位置上。這麼搞貌似比直接用2d的方法有些 麻煩了,不過省去切換camera的麻煩了。實際使用時,太陽得設定遠些,否則會跟著鏡頭動得太明顯了,光暈的繪製可實際調節位置,大小和使用的紋理,達 到滿意效果。

另外網上還有複雜的方法,我沒有試過,可能適用情況不同。對於我們的遊戲,場景有限,把太陽放在固定位置即可,如果是很大的場景,可能需要其他方法。

lens flare 鏡頭光暈

最近的又乙個工作是給遊戲新增鏡頭光暈,google一下,gamedev上就有乙個很好的教程,最簡單的方法是 將太陽位置投影到螢幕空間,如果不在屏 幕內就不畫,否則從太陽位置向螢幕中心畫出一系列的光暈貼圖,混合方法還是src srcalpha,dest one。可完全當做2d進行繪製。我 使用irrl...

lens flare 鏡頭光暈

最近的又乙個工作是給遊戲新增鏡頭光暈,google一下,gamedev上就有乙個很好的教程,最簡單的方法是 將太陽位置投影到螢幕空間,如果不在屏 幕內就不畫,否則從太陽位置向螢幕中心畫出一系列的光暈貼圖,混合方法還是src srcalpha,dest one。可完全當做2d進行繪製。我 使用irrl...

鏡頭光暈是如何形成的?

原理是什麼?跟攝像機的那些元件有關?35mm電視銀幕的攝像機有沒有乙個固定的光暈形態?多謝指點!分享 浮夢 maxim yu dsv w 等人贊同 每張有光暈的 都離不開乙個強光源,這個強光源可能在視野裡也可能在視野外。我們知道鏡頭往往是由很多片鏡片組成的鏡片組,每個鏡片雖然通透性很高但是難免會有一...