左手一个CPU 右手一个GPU,他俩的区别在哪里?数组
处理器 | 任务 |
---|---|
CPU | 运算核⼼、控制核⼼ |
GPU | 专用的绘图、渲染 |
在之前的“大屁股”显示器时代,使用的是电子枪,将图像光栅化以后,再将电子逐行打到屏幕上。直到最后一行结束,这一帧图像才算显示完成。可是这一步是很是很是的快,从第一行到最后一行结束,利用人的视觉停留,完成显示。缓存
从 光栅扫描的系统结构 中能够看到,GPU渲染成位图->帧缓存区->再由显示控制器刷新->屏幕。 可是屏幕的刷新频率是固定的,一般是60Hz。若是显卡的输出高于60fps,刷新频率和输出频率不一样步,便会画面便会撕裂。markdown
解决办法:网络
刚讲的是显示,可是在显示器显示以前,必须完成从 数据->位图 的渲染,最后才送交帧缓冲区等待显示。 在前一篇博客OpenGL 敲门砖——基础概念中,咱们已经提到了渲染流程架构
顶点数据(存在内存中,CPU处理)->几何运算->光栅化->片元/像素->位图->显示post
再详细的分解,就会以下图所示: 动画
CPU 处理存储在内存中的顶点数据(数组)spa
GPU 几何操做:将顶点数据进行顶点转换、坐标转换、旋转平移缩放或者光照计算等处理设计
GPU 顶点着色器处理:将顶点转成图元code
GPU 图元装配:链接信息线条
GPU 光栅化处理转成栅格化数据
GPU 片元着色器会对栅格化数据的每个像素进行位运算,决定每个像素的颜色。
其中,CoreAnimation 在苹果的设计中,是一个包含:渲染、构建和动画的复合引擎。