离屏渲染

了解离屏渲染之前,现了解一下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

posted @ 2020-09-17 20:20  银榇  阅读(185)  评论(0)    收藏  举报