2011-11-28 45 views
13

我怎樣才能在我畫的線上添加發光效果?我正在使用OpenGL for Linux。如何在OpenGL中爲線添加發光效果?

+2

這通常稱爲「添加[bloom](http://en.wikipedia.org/wiki/Bloom_(shader_effect))」,以幫助您進行搜索。在這裏有一個很好的部分[here](http://ofps.oreilly.com/titles/9780596804824/chadvanced.html#fig-BloomTriptych) – bobobobo

+0

也有一個很好的發光效果總結[這裏]( http://prideout.net/archive/bloom/) – bobobobo

回答

7

我也曾經希望有一個非常簡單的解決方案,但不幸的是它有點複雜,至少對於初學者來說。

無論API(D3D,OpenGL)如何使用像素/片段着色器,今天都會實現發光效果。它通常涉及渲染場景的多個渲染過程,然後渲染只有「發光物體」可見的過程,然後應用一個bloom pixelshader並將它們組合在一起。

見@Valmond的細節

提供的鏈接

編輯:

應該補充說,這可以通過延遲渲染,其中法線,位置和像「發光標誌」等信息是可以實現渲染成紋理,即存儲在紋理的不同組件中。然後着色器將從紋理中讀取數據,並在一次掃描中執行閃電計算和後期處理效果,因爲所需的所有數據都可從該渲染紋理中獲得。

1

不使用着色器,你也可以嘗試渲染紋理和做徑向模糊。 作爲出發點退房NeHe-Tutorials

8

您可以在Nehe Lesson 36上實現徑向模糊效果。主要想法是將繪圖渲染到紋理,並在每次渲染後用一個小偏移量進行N次,直到繪圖準備好被複制到幀緩衝區。

我寫了一個使用Qt and OpenGL的小演示。您可以在下面看到原始圖紙(不模糊):

enter image description here

下圖顯示了與模糊繪製效果開啓:

enter image description here

我知道這並不多,但這是一個開始。