OpenVG vs OpenGL (Performance)

Started by
0 comments, last by popsoftheyear 9 years, 6 months ago
Hi everybody,

In my Game Engine I want to add an advanced GUI framework. It will have dynamic vector based graphic elements. Consider it similar to HTML5 and CSS3 or GTK/Qt. I could implement this via OpenGL (low level) or via OpenVG (high level). Considering the above requirements for my GUI it would be much better to use a high level library like OpenVG. As far as I know on desktops (my main target) OpenVG is implemented by third parties on top of OpenGL. So I'm wondering if this additional API in the pipeline affects the rendering performance in any remarkable way. Performance is a big concern to me, so this is the only point that prevents me from using OpenVG. (As far as I know OpenVG has a poor adoption at desktops compared to embedded systems. This is the main reason I had doubts about OpenVG).

Let's get to a specific example: Consider I want to render a few hundred geometric figures (Rectangles, Circles, Polygons, ...) all with properties like a certain color, border, border color or different blurred shadows. Additionally they should be all dynamic (animated properties on user interaction). While doing this the GPU is needed for heavy graphic computations (via OpenGL). So rendering those geometric shapes must not consume all the graphic power.

If I implement this via OpenGL there shouldn't be any problem in performance

(I'm only needing a subset of the OpenVG functionalities. I wouldn't rewrite the whole standard, just as much as is needed to render let's say CSS3 like interfaces.)

As I have no clue about the underlying technologies (or implementations) of OpenVG except that it is using OpenGL (at least in some implementations) I can't say anything about the performance.

So are there any chances if I implement this in OpenGL 4.x that there is a significant difference in rendering performance compared to OpenVG? Or are there some specific functionalities in OpenVG that are critical in performance according my needs that I described?

Furthermore I'd like to know which implementation is the fastest. (It has to be platform independent and has to support at least Linux, windows and OS X). I'm aware of this question:

http://stackoverflow.com/questions/401422/best-openvg-implementation

But it hasn't been updated for about 5 years.

The answer to the main question obviously depends on the used implementation, so I think this should be answered too. If you can't provide a faster implementation I think I could stick with ShivaVG (as pointed out in the link above)

Thanks in advance.
Advertisement

You may be interested in NanoVG. It's not exactly OpenVG, but it covers most if not all of what you are looking for in a rendering library.

This topic is closed to new replies.

Advertisement