左手一個CPU 右手一個GPU,他倆的區別在哪裏?數組
處理器 | 任務 |
---|---|
CPU | 運算核⼼、控制核⼼ |
GPU | 專用的繪圖、渲染 |
在之前的「大屁股」顯示器時代,使用的是電子槍,將圖像光柵化以後,再將電子逐行打到屏幕上。直到最後一行結束,這一幀圖像纔算顯示完成。可是這一步是很是很是的快,從第一行到最後一行結束,利用人的視覺停留,完成顯示。緩存
從 光柵掃描的系統結構 中能夠看到,GPU渲染成位圖->幀緩存區->再由顯示控制器刷新->屏幕。 可是屏幕的刷新頻率是固定的,一般是60Hz。若是顯卡的輸出高於60fps,刷新頻率和輸出頻率不一樣步,便會畫面便會撕裂。markdown
解決辦法:網絡
剛講的是顯示,可是在顯示器顯示以前,必須完成從 數據->位圖 的渲染,最後才送交幀緩衝區等待顯示。 在前一篇博客OpenGL 敲門磚——基礎概念中,咱們已經提到了渲染流程架構
頂點數據(存在內存中,CPU處理)->幾何運算->光柵化->片元/像素->位圖->顯示post
再詳細的分解,就會以下圖所示: 動畫
CPU 處理存儲在內存中的頂點數據(數組)spa
GPU 幾何操做:將頂點數據進行頂點轉換、座標轉換、旋轉平移縮放或者光照計算等處理設計
GPU 頂點着色器處理:將頂點轉成圖元code
GPU 圖元裝配:鏈接信息線條
GPU 光柵化處理轉成柵格化數據
GPU 片元着色器會對柵格化數據的每個像素進行位運算,決定每個像素的顏色。
其中,CoreAnimation 在蘋果的設計中,是一個包含:渲染、構建和動畫的複合引擎。