OpenVG简介

OpenVG is a standard API designed for hardware-accelerated 2D vector graphics. It is aimed primarily at mobile phones, media and gaming consoles such as the PlayStation 3, and other consumer electronic devices. It will help manufacturers create flashier user interfaces that are less dependent on energy-hungry CPUs. OpenVG is well suited to accelerating Flash or SVG sequences. For a 3D match see OpenGL ES. OpenVG is managed by the non-profit technology consortium Khronos Group.

 

History

 

The OpenVG group was formed on July 6, 2004 by a selection of major firms including 3Dlabs, Bitboys, Ericsson, Hybrid Graphics, Imagination Technologies, Motorola, Nokia, PalmSource, Symbian, and Sun Microsystems. Other firms including chip manufacturers ATI, LG Electronics, Mitsubishi Electric, NVIDIA, and Texas Instruments and software- and/or IP vendors DMP, Esmertec, ETRI, Falanx Microsystems, Futuremark, HI Corporation, Ikivo, HUONE (formerly MTIS), Superscape, and Wow4M have also participated in the working group. The first draft specification from the group was made available at the end of 2004, and the 1.0 version of the specification was released on August 1, 2005.

On December 9, 2008, the Khronos Group publicly released the OpenVG 1.1 Specification. This latest revision includes glyph rendering for accelerated text, improved anti-aliasing, and Flash support. An updated reference implementation is also provided, as well as a conformance test suite.

On January 16, 2007, Zack Rusin announced the start of an independent Open Source implementation of OpenVG built on top of QtOpenGL.

Shortly after, Ivan Leben has started another Open Source project to implement an ANSI C implementation of the specification purely on top of OpenGL.

Since February 27, 2007 the OpenVG Sample Reference Implementation is available from the Khronos Website under MIT open source license.

On May 1, 2009 Zack Rusin from Tungsten Graphics added OpenVG state tracker to Mesa 3D, which enables SVG vector graphics to be hardware accelerated by any Gallium3D-based driver.

 

The Benefits of openVG for Small Screen Devices

 

Vector graphics are widely used on today's desktop through packages such as Flash and SVG. Handheld devices have an urgent need for the smooth and fluidly scalable 2D that high-quality vector graphics provide to create high-quality user interfaces and ultra-readable text on small displays devices. Existing solutions have significant limitations. OpenVG addresses these limitation and provides additional tangible benefits:

  • Low Power Consumption - An efficient 3D hardware accelerator reduces power consumption by up to 90% compared to a software engine
  • Seamless Transition from Software to Hardware - Enables a seamless transition from efficient software rendering to hardware-accelerated high-quality 2D
  • Scalability - Vector graphics provides easy scalability with high-quality rendering, including anti-aliasing, to different screen sizes without multiple bitmaps
  • Accelerates Existing Formats -Designed to accelerate existing formats (e.g. Flash, SVG, PDF, Postscript, Vector fonts, etc.)
  • Games, Screensavers, Mapping, User Interfaces - Fast scalable anti-aliased vector graphics enables advanced user interfaces, mapping applications, games and screensavers
  • Portable Content - Scalable vector graphics makes it easier to port content across devices and platforms
  • Royalty Free - A royalty-free, cross platform API facilitate rapid developer adoption and content creation
  •  

     

    Target Applications

     

    • SVG Viewers
      OpenVG must provide the drawing functionality required for a high performance SVG document viewer that is conformant with version 1.2 of the SVG Tiny profile. It does not need to provide a one-to-one mapping between SVG syntactic features and API calls, but it must provide efficient ways of implementing all SVG Tiny features.
    • Portable Mapping Applications
      OpenVG can provide dynamic features for map display that would be difficult or impossible to do with an SVG viewer alone, such as dynamic placement and sizing of street names and markers, and efficient viewport culling.
    • E-book Readers
      The OpenVG API must provide fast rendering of readable text in Western, Asian, and other scripts. It does not need to provide advanced text layout features.
    • Games
      The OpenVG API must be useful for defining sprites, backgrounds, and textures for use in both 2D and 3D games. It must be able to provide twodimensional overlays (e.g., for maps or scores) on top of 3D content.
    • Scalable User Interfaces
      OpenVG may be used to render scalable user interfaces, particularly for applications that wish to present users with a unique look and feel that is consistent across different screen resolutions.
    • Low-Level Graphics Device Interface
      OpenVG may be used as a low-level graphics device interface. Other graphical toolkits, such as windowing systems, may be implemented above OpenVG.

     

    OpenVG API Design Philosphy

    • Hardware Acceleration Abstraction Layer that accelerates bezier curves and texturing can be flexibily implemented. This will allow accelerated performance on a variety of application platforms.
    • Simplicity means that functions that are not expected to be accelerated in hardware in the near future were either not included, or included as part of the optional VGU utility library.
    • OpenGL-style syntax is used where possible, in order to make learning OpenVG as easy as possible for OpenGL developers.
    • Extensibility makes it possible to add new state variables in order to add new features to the pipeline without needing to add new functions.
    • Focus on Embedded Devices like mobile phone, PDA, game console, DVR, DVD, car navigation, etc.
    • Conformance Tests are expected to be available Q405.

    OpenVG Features

    Core API

    • Coordinate Systems and Transformations (Image drawing uses a 3x3 perspective transformation matrix)
    • Viewport Clipping, Scissoring and Alpha Masking
    • Paths
    • Images
    • Image Filters
    • Paint (gradient and pattern)
    • Blending

    The VGU Utility Library

    • Higher-level Geometric Primitives
    • Image Warping

     

     

    OpenVG Rendering Pipeline

    The OpenVG pipeline mechanism by which primitives are rendered. Implementations are not required to match the ideal pipeline stagefor- stage; they may take any approach to rendering so long as the final results match the results of the ideal pipeline within the tolerances defined by the conformance testing process.

    • Stage 1: Path, Transformation, Stroke, and Paint
    • Stage 2: Stroked Path Generation
    • Stage 3: Transformation
    • Stage 4: Rasterization
    • Stage 5: Clipping and Masking
    • Stage 6: Paint Generation
    • Stage 7: Image Interpolation
    • Stage 8: Blending and Antialiasing

     

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值