iOS视频-离屏渲染以及OpenGL渲染结构(03、04)

圆角不一定触发离屏渲染。
普通渲染是将绘制的内容放在帧缓存区中;离屏渲染将绘制内容放到offscreen buffer(限制为屏幕的2.5倍) 离屏缓冲区,然后叠加再显示。

mask(遮罩) 触发 app CoreAnimation -> render server -> 顶点着色器 -> 片元(像素)着色器 -> 遮罩 -> 离屏缓冲区(额外的存储空间,空间限制屏幕的2.5倍) -> 合并->显示、
离屏渲染:app需要额外的渲染或合并,保存中间状态;光栅化:复用
离屏缓冲区不属于双缓冲区。
触发:mask 裁剪 组透明度 投影 光栅化(片段) 文字绘制。

光栅化建议,以下不用
1、layer不能复用
2、非静态,频繁修改
3、100ms内没被复用
4、超过2.5倍屏幕像素

油画算法:由远及近。
透视投影:远小近大。

三种传数据的方式
attribute属性 :代码 - >顶点着色器 包括顶点数据、投影矩阵、模型矩阵、纹理坐标
texture data
uniform

逆时针:正三角 顺时针:背三角
三角形带/三角形扇:复用 节省空间
顶点着色器(.vsh)和片元着色器(.fsh)、细分着色器都是可编程
固定着色器:也有有顶点着色器(.vsh)和片元着色器(.fsh)。
单元着色器
平面着色器
默认光源着色器
纹理替换矩阵着色器:
纹理调整着色器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容