Soluciones de gráficos vectoriales de alto rendimiento [cerrado]

12

Estoy buscando una biblioteca de gráficos vectoriales de alto rendimiento que pueda usar en mis juegos.

Estoy pensando en líneas gráficas vectoriales como las que se pueden hacer con SVG .

Consideraré cualquier idioma en este momento (pero debe ejecutarse en Windows). Una solución que aproveche el hardware de GPU sería genial.

Gracias por adelantado.

CiscoIPPhone
fuente
¿Hay alguna razón por la que quieras usar gráficos vectoriales?
AttackingHobo
Sí: me gusta el estilo, pueden comprimir mejor que las texturas y son más flexibles para la animación.
CiscoIPPhone

Respuestas:

7

Si Windows (Vista y más allá) es su única plataforma, debería buscar Direct2D , que proporciona renderizado de gráficos vectoriales 2D acelerados por GPU con respaldo de software. Para una solución más de plataforma x, busque en Cairo , que creo que tiene un rasterizador acelerado por GPU.

boki
fuente
Interesante, nunca había oído hablar de Direct2D antes. No parece ser ampliamente utilizado, tal vez por ser solo Windows 7.
CiscoIPPhone
Es solo Vista y Windows 7, debido al uso de Direct3D 10. Y es bastante nuevo :)
boki
2
Tenga en cuenta que varios programadores de juegos de alto perfil consideran que Direct2D es horrible: braid-game.com/news/?p=455 (que también se vincula a un podcast) y braid-game.com/news/?p=466 .
Creo que el contenedor administrado para Direct2D tiende a ser mucho más fácil de trabajar que la biblioteca nativa. Y la mayoría de las críticas que he leído de Direct2D han citado ejemplos donde los mismos fines se pueden lograr con relativa facilidad en Direct3D. Claro, es excesivo dibujar un rectángulo, pero funciona bien para curvas y formas con texturas y / o trazos no triviales. Además, D2D no estaba dirigido principalmente a los desarrolladores de juegos: estaba destinado a proporcionar una alternativa más rica y con mejor rendimiento a GDI. Pero funciona bien con Direct3D.
Mike Strobel
3

OpenVG es un estándar para gráficos vectoriales acelerados por hardware. Es compatible con las GPU destinadas a dispositivos de mano, como Mali / PowerVR / Vivante. Qt y Cairo pueden usar OpenVG como representación respaldada. Hay bibliotecas de software que implementan OpenVG utilizando hardware OpenGL (MonkVG, AmanithVG GLE) o solo software (AmanithVG SRE, ShivaVG, AlexVG).


fuente
2

Scaleform GFx es una biblioteca de middleware comercial para integrar películas Adobe Flash (renderizado optimizado, ActionScript y más) en su motor.

En una vida pasada, la base de código de Scaleform GFx era la de GameSWF . GameSWF es de código abierto.

Planeaba agregar más a esta respuesta, pero cuando volví a ella, la mayoría de los puntos principales que quería mencionar se mencionaban en otras respuestas.

Lo único que se me ocurre mencionar que es relevante para el enfoque basado en Flash es el hecho de que Adobe ha lanzado el código fuente a su máquina virtual ActionScript, que ahora vive en el Proyecto Tamarin en Mozilla.

Neverender
fuente
1

Si está utilizando Windows XP o desea algo que funcione en la mayoría de las versiones de Windows, debe consultar DirectDraw (aunque ahora es un poco viejo) o GDI + , o puede usar Flash, que parece bastante bueno para la representación vectorial, y es plataforma cruzada

dotminic
fuente
DirectDraw ha quedado en desuso por algún tiempo, y que yo sepa, no tiene capacidades nativas para renderizar gráficos basados ​​en vectores. Mi recuerdo es que se basó completamente en texturas y golpes. Creo que GDI + no está acelerado y GDI, aunque acelerado, es bastante primitivo. Sería mejor ir con una biblioteca como Cairo, que admite múltiples renderizadores, al menos uno de los cuales admite renderizado acelerado por GPU. Direct2D es probablemente la mejor opción para Vista y 7.
Mike Strobel
¡Qué mal, pensé que GDI + se había acelerado! Supongo que Direct2D sería la mejor opción, como tú dices.
dotminic 27/10/10
1

Hay una discusión aquí y allá sobre cómo trabajar los gráficos SVG en el motor del juego XNA. Uno aquí: http://wam-games.com/2010/04/svg-in-xna/ y aquí hay una publicación en este mismo sitio: Renderizando arte SVG directamente en XNA

XNA canaliza casi todo a través de Direct3D, según tengo entendido, por lo que todo es GPU acelerado. Básicamente, debe programar en C # para usarlo (puede usar otros lenguajes, pero tiene que piratearlo). El uso de XNA le proporciona Windows con seguridad, pero también la posibilidad de portarlo a XBox360 y a un par de plataformas portátiles.

CodexArcanum
fuente