首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「Skia学习笔记」一、使用CMake交叉编译Skia

什么是Skia   Skia是一个高性能的跨平台2D图形库,由Google开源并维护。...Android的UI绘制底层采用了Skia图形库,随着Skia的发展壮大,越来越多的平台开始采用Skia作为底层的图形库,比如Flutter、Chrome、Fuchsia等。...Skia效率很高,并且支持GPU加速,相比我们自己重写一套图形引擎,Skia的优势不言而喻。   3. Skia架构简洁,代码成熟,已经经受过了被各大项目的考验,极其稳定。   4....Skia使用BSD协议进行开源,基本意味着我们可以为所欲为 NDK交叉编译Skia   本文以Android平台的编译为例,其它平台的流程是一致的。   首先我们从Skia官网下载源码。...#克隆Skia仓库 git clone https://skia.googlesource.com/skia.git cd skia #下载所有Skia依赖的第三方源码 python2 tools/git-sync-deps

5.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    硬核万字长文:我是如何把Skia的体积“缩小”到18的?

    不过多的讨论关于 Flutter 本身,这里只谈关于 Skia 和矢量渲染技术中属于我的理解。 首先要承认我是彻彻底底的标题党。...关于矢量渲染器 矢量渲染器作为现代 UI 的核心支撑模块,常常被作为内嵌在操作系统内的图形子系统的一部分提供给上层开发者。...抗锯齿 抗锯齿本来和几何没有什么关系,比如游戏中常用的抗锯齿技术: SSAA:拉大画幅后再线性插值缩小画幅的方式来抗锯齿 MSAA:硬件提供的多重采样后再 resolve 的抗锯齿技术 FXAA : 通过后处理的算法来来抗锯齿算法...在判断像素的时候同时需要找到像素距离每个边的最短距离,通过这个距离可以控制边缘的一些策略用来抗锯齿。 Skia 中并未暴露 SDF 相关的策略接口,但是在内核代码中存在类似的实现。...关于渲染器的未来使用场景 跨平台 这个方向毋庸置疑,未来类似 Flutter 这样的跨多端的会慢慢变成主流(多年前笔者从事 Windows 开发,就是先用系统的渲染器绘制一套 UI 体系,然后在上面做各种业务

    2.3K10

    23.opengl高级-抗锯齿

    这两天有点疲惫,这一章节的代码没有run起来看效果,重点理解锯齿现象和抗锯齿的实现 一、锯齿生成原理 ?...抗锯齿有两种常见的方案:1)超采样抗锯齿(Super Sample Anti-aliasing, SSAA);2)多重采样抗锯齿(Multisample Anti-aliasing, MSAA),MSAA...到用时再回头来深入研究 二、Opengl中的MSAA 2.1 默认窗口的话,2行代码实现 glfwWindowHint(GLFW_SAMPLES, 4); glEnable(GL_MULTISAMPLE); 无抗锯齿...锯齿放大 抗锯齿 2.2 离屏MSAA 使用glTexImage2DMultisample来替代glTexImage2D,它的纹理目标是GL_TEXTURE_2D_MULTISAPLE。...三、自定义抗锯齿算法 将一个多重采样的纹理图像不进行还原直接传入着色器也是可行的。GLSL提供了这样的选项,让我们能够对纹理图像的每个子样本进行采样,所以我们可以创建我们自己的抗锯齿算法。

    3.3K30

    WPF 使用 Skia 绘制 WriteableBitmap 图片

    本文告诉大家如何在 WPF 中使用 SkiaSharp 调用 Skia 这个全平台底层渲染框架,使用绘制命令在 WriteableBitmap 图片上绘制内容 谷歌提出了 Skia 全平台渲染框架,这是一个很底层的框架...,详细请看 google/skia: Skia is a complete 2D graphic library for drawing Text, Geometries, and Images....而 SkiaSharp 是 mono 组织对 Skia 的 .NET 封装库,可以完全用到 Skia 的底层渲染能力,详细请看 mono/SkiaSharp: SkiaSharp is a cross-platform...2D graphics API for .NET platforms based on Google’s Skia Graphics Library....创建相关 在 Skia 里面和 D2D 一样有 Surface 的概念,也就是可以将绘制命令输入到 Skia 绘制到 Surface 上,而绘制内容将会作为像素数组放在传入的数组里面 小伙伴是否还记得

    2.3K20

    WPF 自己封装 Skia 差量绘制控件

    使用 Skia 能做到在多个不同的平台使用相同的一套 API 绘制出相同界面效果的图片,可以将图片绘制到应用程序的渲染显示里面。...这样的绘制方法显然效率不够高 在上一篇博客里面告诉大家如何在 WPF 中使用 Skia 绘制,请看 WPF 使用 Skia 绘制 WriteableBitmap 图片 而这样的绘制方式意味着每次都需要重新绘制画布...其实在 Skia 的 SKSurface 是不需要每次绘制完成就释放,可以保存他的值 只是需要注意和 WriteableBitmap 图片一起使用时,需要在绘制之前调用 Lock 方法,在绘制完成之后调用...而如果能了解绘制的界面范围的话,可以使用 WriteableBitmap 的 AddDirtyRect 方法,通过这个方法可以让 WPF 层仅更新指定范围的内容 虽然 Skia 和 WPF 两个的绘制效率都很高...只是稍微有点 在使用 WriteableBitmap 作为 Skia 的承载,就需要再来一步,让 WriteableBitmap 在界面绘制。

    1.1K30

    第5章-着色基础-5.4-锯齿和抗锯齿

    上面一行显示了三个图像,其中三角形、直线和一些点具有不同级别的抗锯齿。下排图像是上排的放大图。最左边的列每个像素只使用一个样本,这意味着没有使用抗锯齿。...每个像素计算多个完整样本的抗锯齿算法称为超级采样(或过采样)方法。概念上最简单的全场景抗锯齿(FSAA),也称为“超级采样抗锯齿”(SSAA),以更高分辨率渲染场景,然后过滤相邻样本以创建图像。...它和较新的MFAA(多帧抗锯齿)方案都还使用时间抗锯齿 (TAA),这是一种使用先前帧的结果来改善图像的通用技术。...Jimenez[836]使用SMAA、时间抗锯齿和各种其他技术来提供一种解决方案,其中抗锯齿质量可以响应渲染引擎负载而改变。...这种形式的抗锯齿是作为后处理执行的。也就是说,以通常的方式进行渲染,然后将结果馈送到生成抗锯齿结果的进程。自2009年以来,已经开发了广泛的技术。

    5.1K30

    详解LayaAir引擎游戏屏幕适配,及有效抗锯齿

    二、抗锯齿相关介绍 由于讲layaAir引擎的适配模式会涉及到useRetinalCanvas属性设置,所以我们先了解一下抗锯齿相关。...通常导致抗锯齿失效的原因就是HDR。 如果说抗锯齿有效的情况下,还是有锯齿感,那就是和画布大小有关了,我们先看图10中的效果。...这就是加重边缘锯齿的根本原因,导致引擎抗锯齿功能也很难完全消除过于明显的锯齿现象。...2.5.1 自动横竖屏 关于自动横屏和自动竖屏,可以前往官网文档中查看。文档地址为: https://ldc2.layabox.com/doc/?...2.5.2 画布对齐模式 关于画布在屏幕中的水平对齐与垂直对齐介绍,文档地址为: https://ldc2.layabox.com/doc/?

    7.5K163

    《AI助力图形渲染:抗锯齿性能的飞跃之路》

    AI技术的出现为提升图形渲染的抗锯齿性能带来了新的契机,以下是几种常见的通过AI提升抗锯齿性能的方法。基于深度学习的超分辨率算法超分辨率算法是AI提升抗锯齿性能的重要手段之一。...基于AI的材质与光照模拟AI还能通过更精准的材质与光照模拟来辅助抗锯齿。在图形渲染中,材质和光照对锯齿的呈现效果有很大影响。...强化学习在抗锯齿中的应用强化学习也开始在抗锯齿领域崭露头角。通过构建强化学习环境,让AI智能体学习如何根据当前的图形渲染状态和抗锯齿目标,选择最优的渲染策略。...例如,智能体可以学习在不同的场景复杂度、分辨率等条件下,如何调整采样参数、优化渲染流程,以达到最佳的抗锯齿效果。...这种基于强化学习的方法能够使抗锯齿技术更加智能化、自适应,根据不同的场景和需求动态地调整抗锯齿策略。AI技术为图形渲染的抗锯齿性能提升提供了多种创新的方法和思路。

    12310
    领券