2012-01-31 92 views

回答

2

「就地模糊」是CPU可以做的事情,但使用通常並行執行事情的GPU時,必須有另一個圖像緩衝區作爲渲染目標。

即使使用新的着色器,從同一緩衝區讀取和寫入也可能導致損壞,因爲它們可以重新排序。一個類似的問題是,一次可以處理模糊的高斯模糊內核依賴於鄰近片段,這些鄰近片段可能已經由在其片段座標處應用的內核修改。

如果沒有可用於渲染成renderbuffers甚至紋理「framebuffer_object」擴展名(另外需要「render_texture」擴展名), 你必須使後緩衝器作爲例子,然後做glReadPixels()到獲取圖像上傳到源紋理,或做一個快速和直接glCopyTexImage2D()(OpenGL * 1.1有這個)。

如果渲染目標太小,則可以渲染多個圖塊。

+0

感謝您的詳細解答。 – occulus 2012-02-21 23:24:24