irrlicht引擎 Bloom效果

2021-09-19 12:34:03 字數 1440 閱讀 2560

先上圖,再說點別的。

bloom開

bloom關

在irrlicht中實現bloom,和其它引擎中沒有太多的不同。 shader還是那個shader。

關於bloom的演算法,也就那樣了,沒有特別之處,況且,我這bloom很暴力

render scene to texture.

1/4 downsample 選擇暴光畫素

h_blur  7次取樣 和權重混合

v_blur  7次取樣 和權重混合

compose 兩圖疊加

下面說說我在irrlicht中實現post processing的方案。

在irrlicht中是沒有螢幕對齊四邊形節點的,如果要特殊擴充套件,就只能修改**了。我是盡量保證自己不修改irr一行**, 除非是真正使用時,要對效率進行優化。前現實現的gpu蒙皮,水面,鏡面等,都沒有修改過一行**, 因為我不想因為自己的一時需求,而改動了那一堆。 當我真的需要改動irrlicht才能達到目標的時候,表示irrlicht中我使用的部分,可以退休了。

渲染場景的時候,我們通常在使用add***xscenenode的時候,都預設不傳父節點。這樣就是預設的場景根節點。但是,當我們要做post process的時候,就需要對場景中的物體進行顯示的開和關, 於是,我們為了很快速地控制, 於是將普通場景節點多加了乙個父節點, 而post processing作為場景的兄弟節點, 這樣在渲染的時候,就可以方便地進行相關控制了。

大概是這樣的

rootscenenode

postprocessingnode            sceneojbectsnode

obj1… obj2….obj3…

流程:關閉    postprocessingnode , 渲染  sceneojbectsnode 下所有的物體到rt上。

關閉    sceneojbectsnode, 開啟postprocessingnode, 進行一系列的後期效果處理。

在irrlicht中是沒有提供螢幕對齊四邊形繪製的, 如果手工構建,就很麻煩。 所以,我採用的是一種很常見的手法, 即通過uv座標來計算最最終的頂點座標值。

vs的輸出,是規一化座標系, 即x,y是處於 (-1,1)之間的, 於是。 我們只需要 pos = (uv-0.5)*2;  pos.y = –pos.y;就可以了。

最近一直在加班,沒時間整理出**。 有興趣的朋友可以加下面的群

irrlicht engine-china

posted @

2013-04-11 00:47

麒麟子(alex) 閱讀(

...)

編輯收藏

Irrlicht遊戲引擎 初探

irrlicht引擎在windows的安裝和使用 我是irrlicht引擎的初學者,在查閱了指導書和網路上的教程之後大概地了解了irrlicht在windows中的安裝。首先介紹一下irrlicht引擎。irrlicht是一款遊戲引擎,它非常輕量,要使用基於irrlicht引擎的遊戲只需要額外地新增...

Irrlicht引擎I 配置

遊戲是乙個比較大的系統,包含了圖形引擎 網路 ai 聲音 ui等模組,模組的開發可能會分別進行或者採用開源專案,irrlicht引擎基本包含了這些模組,不過在使用中也會陸續加入其它的模組。以前開發的程式中基本是乙個sln模組搞定,但是對於遊戲可能每次編譯的時間比較長,類似於我們的遊戲中,頂層邏輯為e...

irrlicht 這個引擎很強大。。。

上次在sourceforge.net 大名鼎鼎的開源 上看到的,這個irrlicht真很了不起,雖然是開源的,不過感覺已經達到那些幾萬美元的商業級的3d引擎上具有的特性。而且跨平台,寫一次 可以在多種作業系統上編譯。支援.3ds,md2,obj,pk3,ms3d,bsp,x,bmp,tga,jpg,...