OpenVG向量图形加速标准
OpenVG向量图形加速标准
OpenVG™是一个无版权、跨平台的API,它为高级用户界面和向量图形库(如SVG)提供了一个低级硬件加速接口。OpenVG主要针对消费电子产品、手持设备、可穿戴设备和汽车设备,这些设备需要高质量向量图形的便携式加速,以获得引人注目的用户界面和文本,同时使硬件加速能够在非常低的功率水平下,提供流畅的交互性能。
OpenVG 1.1 Lite临时发布!
OpenVG 1.1 Lite Temporal于2020年5月发布,放宽了笔划路径光栅化的精度要求,并规范了OpenVG 110的模具/混合模式,因此API首次可以通过任何OpenGL®ES 2.0兼容的3D GPU完全加速,同时保持高渲染质量。
OpenVG 1.1 Lite临时降价规范已发布在GitHub上,并邀请OpenVG社区提出问题或合并请求,以便在规范最终确定之前提供反馈。此外,完整的OpenVG一致性测试,已经放在Apache 2.0许可证下的开源中。
OpenVG 1.1 Lite可以在任何3D GPU上实现高性能、漂亮的字体和高质量的向量图形。通过开源一致性测试套件,实现者可以更具体地了解OpenVG的操作和准确性,行业反馈可以随着时间的推移提高测试质量和规范。
OpenVG概览
OpenVG是一个用于硬件加速二维向量和光栅图形的应用程序编程接口(API)。它为复杂的2D图形应用程序,提供了一个独立于设备且与供应商无关的界面,同时允许设备制造商在各种设备上提供硬件加速。
OpenVG 1.1在OpenVG 1.0规范中添加了Glyph API和多采样防空。OpenVG规范附带了一个开源示例实现和Khronos Group实现的一整套一致性测试。
用于小屏幕设备的加速向量图形API的好处
向量图形被用于各种各样的设备上,这些设备迫切需要高质量向量图形提供的平滑且可流体扩展的2D,以在小型显示设备上创建高质量的用户界面和超可读文本。现有的解决方案有很大的局限性。OpenVG解决了这些限制,并提供了额外的实际好处:
低功耗-与软件引擎相比,高效的3D硬件加速器可将功耗降低90%。
从软件到硬件的无缝过渡-实现从高效软件渲染到硬件加速的高质量2D的无缝过渡
可扩展性-向量图形通过高质量渲染(包括抗锯齿)提供了轻松的可扩展性,可以在没有多个位图的情况下扩展到不同的屏幕大小。
加速现有格式-旨在加速现有格式(例如SVG、PDF、Postscript、向量字体等)。
游戏、屏幕保护程序、映射、用户界面-快速可扩展的抗锯齿向量图形,支持高级用户界面、映射应用程序、游戏和屏幕保护程序。
可移植内容-可扩展的向量图形,使跨设备和平台移植内容变得更加容易。
免版税-一个免版税的跨平台API,有助于开发者快速采用和内容创建。
目标应用程序
SVG查看器
OpenVG必须提供符合SVG Tiny配置文件,1.2版本的高性能SVG文档查看器所需的绘图功能。它不需要在SVG语法特性和API调用之间提供一对一的映射,但它必须提供实现所有SVG Tiny特性的有效方法。
可移植映射应用程序
OpenVG可以为地图显示,提供单独使用SVG查看器难以或不可能实现的动态功能,例如街道名称和标记的动态放置和大小调整,以及有效的视口剔除。
电子书阅读器
OpenVG API必须提供西方、亚洲和其他脚本中可读文本的快速呈现。它不需要提供高级文本布局功能。
游戏
OpenVG API必须用于定义用于2D和3D游戏的精灵、背景和纹理。它必须能够在3D内容之上提供二维覆盖(例如,用于地图或分数)。
可扩展的用户界面
OpenVG可用于呈现可缩放的用户界面,特别是对于那些希望为用户呈现不同屏幕分辨率一致的独特外观的应用程序。
低级图形设备接口
OpenVG可以用作低级图形设备接口。其他图形工具包,例如窗口系统,可以在OpenVG之上实现。
OpenVG API设计理念
硬件加速抽象层
可以灵活地实现加速Bezier曲线和纹理化。这将允许在各种应用程序平台上加速性能。
简单
意味着预期在不久的将来不会在硬件中加速的功能,要么没有包括在内,要么作为可选VGU实用程序库的一部分包括在内。
OpenGL样式语法
在可能的情况下使用,以使OpenGL开发人员尽可能容易地学习OpenVG。
可扩展性
使得可以添加新的状态变量,以便在不需要添加新函数的情况下向管道添加新特性。
专注于嵌入式设备
如手机、游戏机、DVR、DVD、汽车导航等。
OpenVG功能
核心API
坐标系和变换(图像绘制使用3x3透视变换矩阵)
视口剪裁、剪刀和Alpha遮罩
路径
图像
图像过滤器
绘制(渐变和图案)
混合
VGU实用程序库
更高级别的几何图元
图像扭曲
OpenVG渲染管道
用于渲染基元的OpenVG管道机制。实现不需要与理想的管道阶段相匹配;他们可以采取任何方法来渲染,只要最终结果在一致性测试过程定义的公差内与理想管道的结果匹配即可。
阶段1:路径、变换、笔划和绘制
阶段2:笔划路径生成
第3阶段:转型
第4阶段:光栅化
第5阶段:剪裁和蒙版
第6阶段:绘制生成
第7阶段:图像插值
第8阶段:混合和消除混叠
参考文献链接
https://www.khronos.org/openvg/