美文网首页
2022-06-17 Skia&Skottie入门

2022-06-17 Skia&Skottie入门

作者: SMSM | 来源:发表于2022-06-17 17:02 被阅读0次

Skia 跨平台2D图形库,有软\硬两种模式, 39W行代码(src+include),SO大小7.1M,作为Chrome\Android\Flutter\鸿蒙OS的 2D渲染引擎 。 W3CCanvasContext2D的能力算Skia的子集。
下文主要是入门的分享。以PPT+解释的方式进行,未解释到的请大家留言。内容涉及

  1. 渲染相关组件 以及 Android渲染内存成分的对比图。
  2. Skia GPU Draw Pipeline、SkPaint、SKSL、SkRuntimeEffect。
  3. Skottie特效、SkottieAE表达式实现
  4. 不涉及 drawXX具体实现、Op的合并算法 、路径三角化算法、抗锯齿算法、性能优化等。
1. 用的全屏模式BufferSize是 1440*2712 。GL环境未开启 stencil、depth , colorbuffer格式是RGBA 8888。 所以一个GraphicBuffer的占用是 1440*2712*4 = 15.6MB。 2. 内存优化的话,主要从多view复用buffer减少个数、减少buffer尺寸两个维度入手。 UI组件和裸的OpenGL流程最大的不同是,组件侧维护了虚拟DomTree用于局部更新。但最终的元产物都是三角形。 SkSurface决定软or硬。 GrGpu抹平的不同的Graphic平台。drawxx最终生成GrOp , 符合生产消费模型。
第4步准备数据。第5\6步准备glPipeline drawXX转为GrOp前要把资源转为Gr资源(有别于软渲染)、抗锯齿算法等 GrOp内包含了 根据VertexSpec生成顶点数据、三角形生成算法、基于SKSL拼接(emitCode)shader并运行时转为GLSL构建glProgram image.png SkPaint很重要,画笔除了日常理解的 彩笔,还有图章。比如用执行 drawPaint()就相当于盖了个图章。 也可以转一圈的盖,就是patterns了。 SKSL是skia的精华,不同于GrGPU抹平的是平台差异,SKSL抹平的是各平台ShaderLanguage差异。 从图中左右两边的对比可以看出, 1. 行数变少了 2. 函数个数有差异 3. 代码有优化。 image.png

四 Skottie

这里需要先解下Lottie,Skottie是Lottie的在Skia上的实现。这里主要介绍

  1. Skottie Pipeline
  2. 借助SkRuntimeEffect新增特效
    a. 原理是通过SkPaint插入自定义的SKSL,作用于FragmentShader。
  3. 利用SKSL解释器完成AE表达式的执行。
image.png
image.png
image.png
image.png

配合Skia官方的例子和以上介绍,算是入门。这个过程还做了Skia包体积的裁剪,主要停留在编译优化、依赖库最小化、合并so提高无用method移除最大化,源码层面进展少,主要思路是 针对CPU\GPU各自的应用场景,裁剪掉场景内不需要的特性。依托Skia能干事情还有很多。欢迎大家留言。

相关文章

  • 2022-06-17 Skia&Skottie入门

    Skia[https://skia.org/docs/] 跨平台2D图形库,有软\硬两种模式, 39W行代码(sr...

  • 2022-06-17

    2022-06-17

  • 2022-06-17   被码了

    不说话,留个印记。 很抱歉您的文章《2022-06-17 红码》[https://www.jianshu.com...

  • 2022NBA总决赛g6观赛分析

    2022-06-17,勇士客场 103 - 90 击败凯尔特人夺得 2021 - 22 赛季总冠军。录像回放[ht...

  • 2022-06-17

    Nature | 抗癌疫苗通过诱导T细胞和NK细胞协同攻击肿瘤 原创骄阳似我图灵基因2022-06-17 08:0...

  • 少说多做

    中原焦点团队 坚持分享1432天 2022-06-17 前两天在组织一个会议,需要做各种准备工作。特别是要邀请...

  • 为什么互联网企业举步维艰,毕竟虽然它是技术,但越来越影响社会

    为什么互联网企业举步维艰,毕竟虽然它是技术,但越来越影响社会 2022-06-17 每次下雨的时候,打车都很难,哪...

  • 日课2

    2022-06-17 星期五 晴 昨天说到曾国藩日课十二条,今天和王帅帅聊天,讲到这个日课的问题,突然觉得,如果真...

  • 0228读书|当下的力量

    2022-06-17 北京 晴天近一周的灰蒙蒙的天气。早上终于有光了!清晨阳光照进来。很开心的决定恢复直播大计。 ...

  • 2022-06-17

    2022-06-17 周五 北京 阴天,天气预报说的冰雹一直没有下诶 每个人都会经历很多不好的事情呀,生活你想打倒...

网友评论

      本文标题:2022-06-17 Skia&Skottie入门

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