2016-03-28 198 views
0

我開始學習着色器,在ShaderToy.com上玩耍。對於我想要製作的項目,我需要在WebGL上創建一個任意的輝光過濾器(不是Bloom)。我想計算阿爾法,我可以再使用繪製彩色光暈或使用一段動畫紋理像火等WebGL發光效果

到目前爲止,我想到了一些想法:橫跨附近的一些區域

  1. 平均化的α-每個像素 - 顯然會慢
  2. 將在圓的每個像素周圍的一個循環在距離另一個基於形狀如何接近這個像素計算α - 可能只是緩慢
  3. 模糊整個形狀 - 聽起來像一個矯枉過正,因爲我只需要阿爾法

是否有其他想法來解決這個問題?我能找到的所有高斯模糊技術都來自類似Bloom的濾鏡。

+0

您的問題不是很清楚。什麼是你的輸入,你的輸出是什麼?你想從什麼來計算一個alpha?最後你想要什麼?模糊的阿爾法紋理?圖像的平均alpha值?還有別的嗎?請澄清你的問題 – Zouch

+0

@ Zouch,我想圍繞我可以自定義的任意對象(顏色,距離,強度等)創建一個光暈。花了一整天google搜索和閱讀一些文章,我想我會嘗試這種方法: http://xissburg.com/faster-gaussian-blur-in-glsl/ 我可能會用一個Codepen回答我自己的問題時間做出來,但感謝你的興趣。 – pokrishka

回答

3

請發現這個nvidia document爲簡單的發光效果。 的基本思想是

  1. 呈現在後緩衝器
  2. 激活
  3. 渲染場景的一些元件在FBO
  4. 計算Glow效果
  5. 綁定最終效果的場景FBO作爲紋理並將此效果與以前渲染的場景混合在後緩衝區中