离屏渲染
了解离屏渲染之前,现了解一下CPU渲染
CPU渲染:UIView中实现drawRect方法会触发CPU渲染(CPU渲染不属于离屏渲染)
离屏渲染:在GPU层面上会新开辟一个渲染缓存区域(offscreen Buffer),等合适时机将offscreen Buffer中的数据进行渲染,将结果展示到frame Buffer中
1)光栅化:将几何数据经过一系列变换后最终转换为像素,从而呈现在设备上。光栅化本质就是坐标转化、几何离散化
2)CPU渲染:UIVIew中实现drawRect方法,即会触发CPU渲染(CPU渲染不是离屏渲染)
3)离屏渲染为什么新开辟一个缓存区域:对于每一层的layer,要么能找到一次就完成渲染的方法,要么就不得不另开一块内存,借助这个临时区域完成一些更复杂的操作
4)图形如何显示到屏幕:CPU负责计算,GPU负责渲染,随后将渲染结果放到帧缓冲区域,等待下一次的VSync信号到来显示到屏幕
5)卡顿的原因:由于垂直同步信号机制,如果在下一VSync到来之前,CPU和GPU没有完成内容提交,则那一帧被丢弃,即卡顿
6)帧缓冲机制:采用双缓冲机制,GPU会将预先渲染好的一帧放入缓冲区内,让显示控制器读取,当下一帧渲染好后,GPU会直接把控制器的指针指向第二个缓冲器
7)为什么要有垂直同步信号机制:垂直同步信号是用来防止画面撕裂的
8)如何检测:真机Instrument选择Core Animation - 勾选Color Offscreen-Rendered Yellow

浙公网安备 33010602011771号