2011-05-25 97 views
4

着色器不能從幀緩衝區讀取數據,它們只能通過渲染管線傳遞數據。但是對於後期處理,需要讀取渲染圖像。如何在OpenGL中使用着色器後處理圖像?

我將解決這個問題如下:1)創建一個大小爲視口的紋理; 2)正常地渲染圖像到紋理; 3)渲染紋理到framebuffer,通過後處理着色器。

我做對了嗎?是否有更有效的方法來進行後期處理?

+0

取決於後處理所需的參數。你想要整個圖像被繪製爲後處理開始嗎? – 2011-05-25 09:49:02

+0

是的,我喜歡。例如,我想扭曲最終圖像,就好像它反映在扭曲的鏡子中一樣。 – 2011-05-25 12:34:41

回答

5

這確實是通常的後處理方式!通過綁定第一遍FBO進行紋理渲染,然後在解除綁定FBO(即返回到默認幀緩衝區)後,將該紋理用作後期着色器的輸入。