先上圖,再說點別的。
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,...