PDA

View Full Version : ok now i'm confused ...



b2tehrizzo
02-23-2007, 08:58 PM
i'm confused ... now i was thinking that openvg was sorta like opengl and was an api for accelerating vector graphic processing by using the video card's processor instead of system processor. i'm getting the impression the more i read this site, that it is not ... because there is talk of other projects like rasteroid and amanith. opengl is supported by hardware manufacturers, is openvg the same? or is openvg convert somehow into opengl?
rasteroids says you have to use glut? what's up with that? sorry for the 20 questions, but i don't really feel i'm getting the big picture here ... i like the concept, because vector graphics really holds serious potential for a rebirth of the 2d style, but flash pretty much killed vector graphic gaming industry with slow speed and no support for what features people really want from gaming like networking.
i'm part of fact finding project ... we were looking at using vector graphics in a game, but using flat 3d graphics to take advantage of 3d acceleration.

thanks for any clarification.

mfabbri
02-23-2007, 11:36 PM
OpenVG is just the API, that defines calls, enumerators, error codes (see the openvg.h file for more details) and behaviours (see the specifications pdf file).
Rasteroid, AmanithVG, and such similar products are implementations of this API. In the detail AmanithVG use OpenGL/OpenGLES for the rendering to accelerate the 2D vector graphic.
There are also native HW implementations from AMD/ATI, ImgTec, ARM, Nvidia (probably you will find one of this in your next smartphone).
The benefit in using the OpenVG API in your project is that the portability against platforms/s.o. is ensured.

Regards,
Michele Fabbri - AmanithVG Team

neiltrevett
03-02-2007, 07:57 PM
OpenVG is an API - similar to OpenGL - but its basic primitive is Bezier curves rather than polygons. This makes it ideal as an acceleration layer for higher-level packages such as Flash or SVG. Of course it also possible to write code that calls the OpenVG API directly.

OpenVG can be implemented any number of ways: pure software, a layer over another API such as OpenGL ES (which needs tessalation of the Beziers into polygons) or directly in an OpenVG silicon engine. All approaches are appearing in the market.

Layering OpenVG over OpenGL ES can be typically 2-5 time faster than software implementations. Best performance will be achieved with dedicated OpenVG silicon that will typically provide an order of magnitude more performance than layering over OpenGL ES at significantly less power. Such devices will begin to appear this year.

muratmat
03-03-2007, 03:49 AM
...
Layering OpenVG over OpenGL ES can be typically 2-5 time faster than software implementations.

Actually performances can be even more than 10x faster for some complex paint type (eg: radial gradients, transparent gradients in general), maybe coupled with one or more of other layers (eg: complex blend modes, scissoring, alpha mask).