2D矢量图形显示技术

原生OpenVG的实现及应用

tomsoft
tomsoft的公告
很久以来,在PC领域中,诸如矢量字库、FlashPlayer、Adobe Reader等2D矢量显示技术就得到广泛的应用;而在嵌入平台上,仍广泛使用基于点阵技术的传统显示方式,除嵌入系统效能低下,2D矢量技术缺少一个如同OpenGL的标准也是制约了2D矢量技术在嵌入系统中的推广;随着技术的进步,效能已经越来越不是问题(如即将到来的3G手机),khronos Group也非常适时发布了2D矢量显示标准---OpenVG;所有这一切为我们创造了一个机会,我们也许正处在嵌入系统UI翻天覆地变化的前夜;而这一切也许正是因为类似OpenVG这样2D矢量技术的广泛应用;
最近评论
yhdong7765:第一次来,为解工顶起。
可惜沙发让hf抢了~呵呵
OufengMorpheus:说得好.太好了.我也经常收到这样的邮件.
气死我了.
tomsoft:gingkoVG 1.0底层渲染没有使用浮点数, 因为最初设定就是针对嵌入平台的; 但是因为SPEC的关系, 在API的接口上仍使用浮点数(IEEE-754), 因此精度没有问题; 在嵌入平台上这部分会被软件浮点库替代;
amieer:gingkoVG 实现是如何保证精度的?如果直接使用浮点数的话,在真正的手持设备上会更慢,因为目前的手持设备都没有FPU。
tomsoft:不错的主意,我已经下了一个看了看;如果没有理解错,所谓亚像素算法实际就是传统的SuperSample----及每个像素被分成了若干子像素,并依据不同的算法(Filter)计算这些子像素的贡献---类似面积;我没有使用SuperSample----因为这个算法的效率只是还可以接受;gingkoVG出于品质的原因,使用的是8 x 8的抗锯齿-----及一个像素被作为8 x 8的子像素处理的;
文章分类
    收藏
      相册
      可爱的小白
      我的爱好
      DCP的伙伴们
      可爱的小内
      帅哥小田
      数学才子----刮风
      极富头脑的路路
      真正图形学高手---顾老大
      软硬多面手---小龚
      OpenVG的实现
      Cairo:基于输出的2D矢量库
      gingkoVG官方网站(中文)
      OpenVG官方实现(含源程序)
      OpenVG官方网站
      存档
      订阅我的博客
      XML聚合  FeedSky

      原创 可实用的OpenVG的实现发布收藏

      新一篇: 显卡加速网页渲染 | 旧一篇: 第一个原生的OpenVG alpha进入测试阶段

      gingkoVG第一版本

      OpenVG的一个完整功能实现----gingkoVG正式发布。

      因为完全重写了算法,性能相对官方实现有非常大的提高:由之前的每帧50~60秒提升到单纯绘制110ms/帧(不含其他处理),完全执行显示帧数7FPS(140ms/帧,含所有处理);

      说明:

      1. 在程序包中提供了完整的库文件、DLL文件、演示用程序、演示SourceCode和用于初学者的教学文档及编程用技术文档;
      2. 比对版本官方OpenVG 1.0.1实现用例(2007年);
      3. 测试用例选用图示的tiger用例---具有较多数据的向量图形;
      4. 测试平台PM-1.5G CPU。

      功能支持:

      1. 支持所有OpenVG 1.0.1Spec定义的功能,包括Path、Image、Image Filter;
      2. 支持所有OpenVG 1.0.1Spec定义的高级功能----vguxxxx;
      3. 提供了一个轻量化的egl支持;
      4. 提供跨平台支持;

       

      下载地址:http://download.csdn.net/source/322739

      或直接与作者联系

      发表于 @ 2008年01月01日 15:01:00|评论(loading...)|编辑

      新一篇: 显卡加速网页渲染 | 旧一篇: 第一个原生的OpenVG alpha进入测试阶段

      评论

      #guafeng 发表于2008-01-08 10:22:57  IP: 125.70.253.*
      解工短短数个月的时间就把OpenVG搞定了,这。。。这是何等境界啊。
      翔实的指南和文档。。。对你的佩服犹如黄河之水滔滔不绝。。。
      报个小瑕疵,我下载的SDK包里的Bin文件运行出错,我估计VS2005搞得鬼,妈的,编出来的东西经常在另外的电脑上不能运行。
      另外lecture是不是改名成tutorial比较习惯哦,开源的老大们都这样命名。
      #tomsoft 发表于2008-01-08 10:47:12  IP: 61.185.205.*
      没错, 因为CSDN上放的是第一个版本, 在刚分发出去的时候就有人报告了这个问题, 只是我不知道怎样更新CSDN上的资源;
      可以手工修复一下:将文件msvcr80.dll拷贝到两个bin目录下就可以了; 我尝试更新一下CSDN上的资源;

      谢谢我的老伙伴刮风再次通知我这个BUG;
      #Stevetan81 发表于2008-01-08 11:32:57  IP: 125.70.253.*
      老大,顶一个。。。
      #guafeng 发表于2008-01-10 09:04:55  IP: 125.70.253.*
      2008年看到的最振奋人心的事,再顶~!
      #mindon 发表于2008-01-13 13:39:00  IP: 59.40.157.*
      赞!辛苦了~
      #Wellee 发表于2008-02-11 10:17:47  IP: 218.75.16.*
      真不错!!非常感谢你的共享!
      #Iamfish 发表于2008-03-22 04:26:59  IP: 116.31.152.*
      我想问一下该如何在C#、WM5下使用这个库。不知有人实现过没有?
      #tomsoft 发表于2008-03-22 09:09:48  IP: 61.185.205.*
      C#我没有用过,不确认是否可以;
      这个版本的OpenVG主要应用对象是嵌入系统,在设计之处已经考虑了这个问题-----专门有一个设备无关层;在新的版本中,将会发布一个在WM6上运行的版本,同时可能在更晚的时间发布一个NonOS的版本(也可能是类似ucos的thinOS版本);当前版本只是功能实现,暂时还没有在PC以外平台上尝试过;
      #Iamfish 发表于2008-03-25 23:59:25  IP: 116.31.151.*
      谢谢。我自己试试看能不能用。
      #tomsoft 发表于2008-03-27 09:25:25  IP: 61.150.13.*
      确切讲这一版本仅仅是体验版, 因为我希望以这样的方式保证开发和应用可以同步进行; 可以先在Windows下使用这个库, 这样在未来移植到WM6上会相对其他平台的移植容易些;
      新的版本的算法会作比较大的调整, 很多算法会完全重写----目前我已经被新的算法搞的焦头烂额了.架构也可能会重新调整, 甚至不排除一个Full C language的版本, 总而言之, 新的版本会针对嵌入系统进行优化;
      对您仍无法在真正平台上使用gingkoVG我表示抱歉, 关于WM6的版本我会优先发布, 时间上我会尽量向前赶;
      #ahphone 发表于2008-06-06 09:59:03  IP: 61.129.39.*
      大致看了一下,顺便猜测了一下你的实现过程,不好太打击你,performance离商业版本还差比较远。openVG有如此倒霉的境地,是有其深厚的背景的,不值得你去花费这么多的心血,部分的所谓OpenVG的解决方案也在底层使用OpenGL/ES来加速。在嵌入式中平台使用贴图的方式就能实现OpenVG高成本所能达到的效果,一个好的嵌入式方案远比局限于一方的图形显示技术更有价值。

      不过不用灰心,你所熟悉的AmanithVG的那个哥们也被我打击过
      #tomsoft 发表于2008-06-06 10:17:43  IP: 219.144.156.*
      说的比较中肯,第一版本的效能我自己也并不满意,只是和官方版本比比看似好了很多----但在低端嵌入平台上效能还差的很远,所以才有了第二版本;要想在嵌入系统上效能能有非常大的提升,算法就要全部重新设计,这也是第二版本进展一直很不顺畅的原因;
      使用Bitmap(帖图)确实仍是当前嵌入系统UI的最主要方式。但比较看好2D矢量技术----不仅仅是OpenVG了;
      AmanithVG一直是我的榜样,他的效能很高,这和他使用OpenGL加速有很大关系,但多少平台有OpenGL加速;这也是我仍坚持软件方案的原因
      #crazyccun 发表于2008-06-16 15:02:04  IP: 58.247.98.*
      我也是做矢量图形开发的,目前已开发了一个矢量渲染库,跟AGG做了下比较,在200MHZ的windows mobile设备上,效能和效果跟AGG差不多.但是感觉再怎么优化算法,效能也不可能再有提升了.我想知道博主的第二版进行得怎么样了?在同等效果下,你的效能可以比AGG快吗?
      #tomsoft 发表于2008-06-16 21:11:49  IP: 219.144.236.*
      AGG没有用过,没有什么概念,给我一个具体的数值;从目前的状况和以往的经验,gingkoVG 2.0的渲染速度大约在12~15FPS(和Patter有关、令目前渲染算法还有Bug,最终结果应有出入)
      AGG用的是什么算法我不知道,如果局限于传统教科书的算法,效能不大可能有很大提升,目前,gingkoVG 2.0新的渲染算法是重新设计的,没有使用传统的算法;
      #crazyccun 发表于2008-06-16 21:41:17  IP: 58.34.171.*
      agg号称是渲染质量最好的2D矢量渲染库,速度比GDI+快10倍左右,据说它使用的是亚像素精度算法进行的反走样.AGG他也实现了一个SVG VIEWER.AGG很有名的,博主应该看看,进行一下比较.既然要做好2D矢量图形,就应该和有名的图形库做比较,不然就是闭门造车了.
      #tomsoft 发表于2008-06-17 13:12:56  IP: 117.32.154.*
      不错的主意,我已经下了一个看了看;如果没有理解错,所谓亚像素算法实际就是传统的SuperSample----及每个像素被分成了若干子像素,并依据不同的算法(Filter)计算这些子像素的贡献---类似面积;我没有使用SuperSample----因为这个算法的效率只是还可以接受;gingkoVG出于品质的原因,使用的是8 x 8的抗锯齿-----及一个像素被作为8 x 8的子像素处理的;
      传统的SuperSample算法比较容易实现,但内存消耗较大,效率只是说还可以接受---不是什么太大的瓶颈;所以在gingkoVG 1.0中就没有用这个算法;
      #amieer 发表于2008-06-18 18:10:27  IP: 210.13.71.*
      gingkoVG 实现是如何保证精度的?如果直接使用浮点数的话,在真正的手持设备上会更慢,因为目前的手持设备都没有FPU。
      #tomsoft 发表于2008-06-18 21:34:47  IP: 202.100.55.*
      gingkoVG 1.0底层渲染没有使用浮点数, 因为最初设定就是针对嵌入平台的; 但是因为SPEC的关系, 在API的接口上仍使用浮点数(IEEE-754), 因此精度没有问题; 在嵌入平台上这部分会被软件浮点库替代;
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © tomsoft