GPUImage中的生產流水線

我們知道,GPUImage 是一個著名的圖片濾鏡處理工具,裏面提供了一百多種濾鏡,需要什麼濾鏡,就把需要的濾鏡添加到targets 中去,實現任意濾鏡直接的組合。那麼這種濾鏡任意的組合是怎麼實現的呢?
我們可以把GPUImage 看做是一個照片處理工廠,工廠裏面有一個處理圖像的流水線,流水線上有數臺機器,每一臺機器其實是一個叫做幀緩存(FrameBuffer)的盒子,每一個盒子就是一個圖像處理單元。每個單元處理完圖片之後,就將圖片交給下一個處理單元(FrameBuffer)去處理。

GPUImage的濾鏡流水線

如圖,所示,每一個FrameBuffer 對應一個濾鏡,上一級frameBuffer渲染出的texture 傳輸給下一級 frameBuffer 作爲原材料,直到最後一個frameBuffer渲染完成,注意看最後一個Framebuffer 的 藍色buffer區域不再是textureBuffer ,而是color buffer ,因爲colorbuffer 和我們的畫板 EAGLLayer 是共享緩衝區的,所以,當渲染到 coloerBuffer 也就渲染到了畫板的緩衝區。
下面是我寫的一個調節亮度和飽和度的流水線 demo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章