文章目錄
- 1.1 底層依賴於fbo技術
- 1.2 chrome中gpu加速實現
- 2.1 NPR範疇
- 2.3 例子程式
1.瀏覽器硬體加速1.1 底層依賴於fbo技術
FBO全稱frame buffer object,與系統預設框架緩衝區類似,fbo也有三個緩衝區:color,stencil,depth。fbo最精髓支援在於通過可以將opengl繪製到指定一塊緩衝區上,可以是texture object,可以是render buffer object。常常採用texture作為fbo的顏色緩衝區,後續使用fbo綁定的紋理進行畫圖。
fbo細節詳見:http://blog.csdn.net/dizuo/article/details/8364003
1.2 chrome中gpu加速實現
chrome基於多進程模式,專門有一個GPUProcess,每個tab一個進程,tab進程中專門有一個線程負責與GPU進程通訊。chrome內部將網頁繪製劃分為很多tile(瓦片),繪製以瓦片為單位進行,每個瓦片都是fbo繪製的結果(這些都是本人的理解)。
chrome中gpu加速細節:http://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chrome
1.3 易於實現AA
較opengl預設的框架緩衝區,基於FBO繪製還有一個優勢:部分顯卡支援多重採樣,實現AA(消除鋸齒),pc端的顯卡差不多都支援,手機上還不是標準,opengles2.0 / glext.h中有類似的宏定義GL_MULTISAMPLE_BUFFER_BIT0_QCOM,只針對高通的gpu支援。
2. 影像處理GPU架構2.1 NPR範疇
映像美術效果加工 屬於非真實感繪製 NPR(Non-photorealistic rendering)範疇,沒有光照甚至只是簡單的2D範圍操作。
2.2 gpu影像處理架構:
FBO + fragment shader
基於這個架構,美術效果 實現通過寫fragment shader指令碼控制。基本的影像處理:高斯模糊,邊緣檢測,sobel運算元,雙線性模糊處理,拉普拉斯變換 都可以實現。
2.3 例子程式
opengl超級寶典 [ http://www.starstonesoftware.com/OpenGL/fourthEdition.htm ]
其中第17章節的imageproc樣本:SB-WinSrc\SB-WinSrc\examples\src\chapt17\imageproc
2.4 其他
ios上的manga camera 應用,實現映像的漫畫效果 堪稱經典:
拍照、處理、分享、儲存相關的APP近年來十分之盛行:http://www.36kr.com/p/200371.html?ref=related