| 文章首页 |
|---|
| SVG在手机上的发展现况 |
| 跨平台2D矢量图形应用程式开发界面--OpenVG |
| 行动平台上高阶的矢量绘图标准--JSR226 |
| 2D矢量图形技术在行动电话上的相关应用 |
跨平台2D矢量图形应用程式开发界面--OpenVG
在过去,由于嵌入式系统上并没有绘制2D矢量图形的统一规格,因此在创作2D矢量图形的相关内容时,各家业者(如:Adobe、Macromedia)都会开发自己专属的2D API来进行底层的绘制(参见图4)。这样的做法必须仰赖CPU进行大量的运算,对电力的消耗是一大考验;再者,当开发者欲移植到不同的平台时,可能又得多花一份力气。
有鉴于此,2004年第四季,Khronos组织首先提出适合于硬体加速(hardware-accelerated)的2D矢量图形处理标准函式库--OpenVG(参见图5)。目前OpenVG规格由Khronos组织所主导,结合多家行动装置大厂及图学组织,包括Nokia、Motorola、Bitboys、Hybrid Graphics、Symbian、Sun Microsystems、3Dlabs等公司,目标在于规范适合嵌入式系统上简单、轻便且低阶的2D矢量图形绘图引擎之功能。借此公开、标准、统一的规格,不但硬体制造商可依据其规格设计出2D矢量图形硬体加速器,同时也能加快2D矢量图形展现技术与硬体加速器垂直整合的速度。说穿了,OpenVG的目的就是在提供硬体抽象层,达到跨平台的功能,使得使用OpenVG APIs开发的应用程式,在不同平台执行时,皆可取得2D矢量图形硬体加速的功能。

根据规格的定义,OpenVG可分为Core API和Optional VGU utility library 两大模组;其划分的准则主要是跟硬体加速的需求有关。Core API模组中定义了需要借由硬体加速支持的基本功能,而那些暂时被认定为不需要由硬体加速,或可由Core API模组复合而成的功能,则在optional VGU utility library模组中定义。Core API模组主要提供2D Vector Graphics 处理与绘图的核心功能,除了OpenVG绘制流程(rendering pipeline)各阶段的功能外,还包括Coordinate Systems and Transformations (Image drawing uses a 3x3 perspective transformation matrix)、Paths、Images、Image Filters、Paint (gradient and pattern)及Blending and Masking等功能项目。Optional VGU utility library模组主要是以辅助并扩充Core API 矢量图形处理的功能,其内容包含Higher-level Geometric Primitives和Image Warping等功能项目。以下将简述各模组中的细项功能:
Core API模组
- 坐标系统转换功能项目:提供User坐标系统转换到以像素为单位的Surface坐标系统的相关设定及转换。
- 路径绘制功能项目:提供描述几何物件(geometry)的功能。一般来说,显像图形的形状都是由Paths定义,一个Path或多个Paths可构成几何物件,而Paths亦是由一连串的线段所组成的。线段可选择由直线线段(a straight line segment)、二次或三次贝式曲线(a quadratic or cubic Bezier curve)或椭圆形弧线(an elliptical arc)定义之。
- 影像绘制功能项目:提供影像相关制作及处理的功能。
- 影像过滤功能项目:提供影像过滤处理的功能。
- 像素着色功能项目:提供像素着色时的顏色及形态。
- 混合及遮罩处理功能项目:提供像素混色及遮罩处理的功能
Optional VGU utility library模组
- 高阶几何元件功能项目:提供应用程式设定高阶几何元件的功能。
- 影像变形绘制功能项目:提供影像变形转换处理的功能。
资策会网多所已于2004年投入于嵌入式行动装置上Flash播放器的开发工作,并获得部分成果(参见图五)。而目前则是依据Khronos组织于2005年第二季所公布的OpenVG 1.0 Final Draft Specification,着手开发符合OpenVG规范的矢量式图学函式库,目标在建立一套可于嵌入式系统上绘制2D矢量图形的函式库。透过此标准界面,使用者即可利用硬体加速的功能,迅速在嵌入式系统上建立互动式的应用程式。而Hybrid这家公司则将在OpenVG的正式版公开后,进行OpenVG矢量绘图引擎的开发。

如果你喜欢这篇文章,请阅读本文相关的下列内容:
