美文网首页
离屏渲染初步理解

离屏渲染初步理解

作者: 李十岁 | 来源:发表于2021-02-26 16:16 被阅读0次

一、离屏渲染的定义

因为一些限制,无法把渲染结果直接写入frame buffer,而是先暂存在另一个内存区域,完成渲染之后再写入frame buffer,这个过程被称为离屏渲染。

离屏渲染消耗性能的原因:

1、需要创建新的缓冲区

2、离屏渲染的整个过程,需要多次切换上下文环境,先从当前屏幕(On-Screen)切换到离屏(Off-Screen)。等到离屏渲染结束以后,将离屏渲染缓冲区的渲染结果显示到屏幕上,又需要将上下文环境从离屏切换到当前屏幕。

二、产生离屏渲染的案例

1.使用遮罩mask

2.设置圆角调用cornerRadius+maskToBounds

3.设置阴影没有设置path

4.开启光栅化 shouldRasterize

5、group opacity

6、UIBlurEffect

注:https://zhuanlan.zhihu.com/p/72653360  此处作者有详细的各个案例分析

三、产生离屏渲染的根本原因(个人猜想与理解)

无法使用frame buffer渲染出最终结果,必须开辟出一块内存来渲染整合。通俗点就是有一帧画面有多个图层需要同时修改时会触发。

四、离屏渲染的其他概念

1、内存中的内容超过100ms没有被使用会自动被丢弃

2、离屏渲染内存空间最大值为2.5倍的屏幕像素,需要渲染的内容大于最大值则无法生效

3、离屏渲染虽然会占用更多内存但一些复杂的图层且需要频繁使用开启离屏渲染能提高性能。

4、真正的离屏渲染发生在GPU

5、模拟器检测哪些图层发生离屏渲染 DEBUG->color-off-screen rendered 界面变黄的则产生了离屏渲染

相关文章

  • 离屏渲染初步理解

    一、离屏渲染的定义 因为一些限制,无法把渲染结果直接写入frame buffer,而是先暂存在另一个内存区域,完成...

  • 离屏渲染

    什么是离屏渲染? 对离屏渲染的理解。 在屏渲染 On-Screen Rendering GPU的渲染操作是在当前用...

  • Offscreen Rendering

    Offscreen Rendering(离屏渲染)概念理解: 离屏渲染 是指系统为了绘制圆角(cornerRadi...

  • UI离屏渲染

    什么是离屏渲染,你对离屏渲染是怎么理解的? 先看在屏渲染概念: 可以说在屏渲染指的GPU层面的一个概念。那么离屏渲...

  • iOS 离屏渲染认知及解决方案

    离屏渲染 要理解离屏渲染,需要先了解两个名词,OffScreen Buffer(离屏缓冲区),Frame Buff...

  • 离屏渲染理解

    1. OpenGL中,GPU屏幕渲染有以下两种方式 On-Screen Rendering 当前屏幕渲染: 是GP...

  • iOS--离屏渲染

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

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

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

  • 关于离屏渲染

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

  • 四、iOS离屏渲染

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

网友评论

      本文标题:离屏渲染初步理解

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