ANGLE 和 Skia 图形引擎有啥区别?

Posted

技术标签:

【中文标题】ANGLE 和 Skia 图形引擎有啥区别?【英文标题】:What is difference between ANGLE and Skia Graphics Engine?ANGLE 和 Skia 图形引擎有什么区别? 【发布时间】:2021-08-15 03:50:13 【问题描述】:

ANGLE是一个跨平台的图形引擎抽象层 由谷歌开发。 ANGLE 团队将其描述为便携式 OpenGL。 API主要是为了带来高性能 OpenGL 与 Windows 计算机和 web browsers 的兼容性,例如 Chromium/Google Chrome 通过翻译 OpenGL 调用Direct3D,它有更好的驱动支持。

Skia Graphics Engine 是用C++ 编写的图形库 它抽象出特定于平台的图形 API。

两者都是由Google 开发的抽象层,用于支持openGL,并且都在Google Chrome 中使用。

两者之间到底有什么区别?

【问题讨论】:

【参考方案1】:

先了解一下上下文。

OpenGL 是一种用于编程图形卡的 API。对 OpenGL 的 API 调用被 GPU 供应商(通常是 Nvidia、AMD 或 Intel)的驱动程序转换为计算机中 GPU 卡的命令。

(编程 GPU 的其他 API 包括 Windows 上的 Direct3D、macOS 上的 Metal、Vulkan 等)

这些 API 有点“低级”,因为它们发出调用以指示 GPU 在原始“几何”/“像素”级别上做什么;这些 API 没有“在此处绘制矩形”或“在此处绘制此图像”之类的功能。

像 Chrome 这样的网络浏览器为 html5 页面提供了 WebGL API。 WebGL 主要是 OpenGL ES 2.0 API。

ANGLE 是一个将 OpenGL ES 2.0 API 转换为 GPU API 之一的库:您进行 OpenGL ES 2 调用,而 ANGLE 转换为桌面 OpenGL 中的等效调用,或 Windows 上的 Direct3D,或 macOS 上的 Metal。

这为您提供了 OpenGL ES 2.0 的一致实现,这是 Chrome 想要用于网络的。 (这非常有用,因为 Windows OpenGL 实现因供应商而异,而且 macOS 很久以前就停止更新 4.1 版的 OpenGL 实现。

Skia 是一个更高级别的 API,可让您“在此处绘制矩形”和“在此处绘制此图像”等等(绘制文本;绘制路径;绘制曲线等)。使用高级语言和 Web Canvas API 获得的常用高级 API。

为了实现这些调用,Skia 将绘图命令转换为 GL、Metal 等较低级别的 API。Skia 可以针对的 API 之一是 ANGLE,以便 Skia 绘图获得跨平台的一致输出。

【讨论】:

以上是关于ANGLE 和 Skia 图形引擎有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

想在 Ubuntu 上使用 Skia 学习图形[关闭]

三元存储和图形数据库有啥区别?

计算机图形学 开源的库都有哪些,主要用于二维

Windows下从源代码编译Skia

MediaCodec 低延时解码

交互式计算机图形学中的 glu 函数和 mat.h 函数有啥区别?