美文网首页
离屏渲染

离屏渲染

作者: 磊简单 | 来源:发表于2018-09-12 22:31 被阅读0次
  • On-Screen Rendering
  意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。

Off-Screen Rendering

离屏渲染,指的是GPU在当前屏幕缓冲区以为新开辟一个缓冲区进行渲染操作。
在使用圆角、阴影和遮罩等视图功能的时候,图层属性的混合体被指定为在未预合成之前不能直接在屏幕中绘制,所有就需要在屏幕外的上下文中渲染,即离屏渲染。
离屏渲染之所以耗性能,是因为要创建一个屏幕外的缓冲区,然后再完成渲染。其中创建缓冲区和切换上下文最消耗性能,绘制不是消耗性能的主要原因。
  • 界面的渲染过程
RunLoop有一个60fps的回调,即每隔16.7ms绘制一次屏幕,所以view的绘制必须在这个时间内完成,view内容的绘制是cpu的工作,然后把绘制的内容交给GPU渲染包括多个view的拼接(Compositing),纹理渲染(Texture)等等,最后显示在屏幕上。
但是如果在16.7ms内无法完成绘制,就会出现丢帧情况,一般情况下如果帧率保持在30fps以上,界面的卡顿效果不明显,那么就需要在33.4ms内完成view的绘制,而低于这个帧率就会产生卡顿效果,影响体验。
  • 渲染过程:
UIView 的layer层有一个content,指向一块缓存,即backing store。
UIView 的绘制时会调用drawRect方法,通过context将数据写入backing store。
在 backing store 写入完成后,通过 rending server 交给GPU 去渲染,将backing store 中的bitmap数据显示在屏幕上。
  • 如何触发离屏渲染
    • 圆角(maskToBounds = YES)单独设置一项不会触发离屏渲染。
    • 蒙版
    • 阴影
    • 光栅化
      参考

相关文章

  • iOS--离屏渲染

    离屏渲染(Offscreen rendering) 离屏渲染的定义 离屏渲染(offscreen-renderin...

  • 图层性能-离屏渲染、光栅化等

    一.离屏渲染 1.在屏渲染、离屏渲染: On-Screen Rendering/在屏渲染:在屏渲染:指的是GPU的...

  • 关于离屏渲染

    1.什么是离屏渲染 2.离屏渲染的触发方式 3.离屏渲染的意义 4.离屏渲染的不足 1.什么是离屏渲染 要了解离屏...

  • 四、iOS离屏渲染

    一、开启图层是否触发离屏渲染问题 注:离屏渲染的图层会标记为黄色 二、离屏渲染的渲染流程 三、离屏渲染触发的原因 ...

  • UI视图及UITableView流畅性优化

    一.离屏渲染 1. 在屏渲染和离屏渲染 在屏渲染是指在当前用于显示的屏幕缓冲区进行GPU渲染操作 离屏渲染是指在当...

  • iOS下对离屏渲染的理解

    离屏渲染定义 离屏渲染的流程如图: GPU把渲染好的的内容存放到离屏渲染缓冲区中,在离屏渲染缓冲区(Offscre...

  • iOS渲染

    离屏渲染两种:CPU离屏渲染:1、使用 core graphics2、在 drawrect 中执行 GPU离屏渲染...

  • 003-iOS离屏渲染产生的原因

    离屏渲染产生的原因 在讨论离屏渲染之前我们先要搞清楚正常的渲染流程是怎样的 非离屏渲染流程: 我们可以看到在非离屏...

  • 离屏渲染引发的反思

    经常看到说是离屏渲染会影响性能,我们要避免离屏渲染,然后阐述离屏渲染的触发情况有哪些? 既然离屏渲染那么不好,那为...

  • 四、离屏渲染

    离屏渲染与正常渲染 屏幕上最终显示的数据有两种加载流程 正常渲染加载流程 离屏渲染加载流程离屏渲染与正常渲染 常⻅...

网友评论

      本文标题:离屏渲染

      本文链接:https://www.haomeiwen.com/subject/jytigftx.html