Estoy haciendo un juego y quiero usar gráficos vectoriales. Empecé a volver a codificarlo con Cairo y el rendimiento es horrible. Entonces, estoy buscando una biblioteca diferente. Debe ser para C ++ y multiplataforma (por ejemplo, no Direct2D). Hay otra pregunta que alguien hizo antes como esta, pero no hubo respuestas adecuadas. Tiene que haber algo ...?
9
Respuestas:
Me temo que el tema es bastante complicado, parece que se han lanzado pocas soluciones multiplataforma, y aún menos parecen haber sobrevivido por sí mismas. Estuve investigando el tema hace unos meses. Tenía una restricción, ya que necesitaba que el motor funcionara en iOS y Android. No encontré nada que realmente me convenía en ese momento.
Pero algunos consejos de lo que recuerdo: cada sistema GUI tiene algún tipo de API de dibujo. Por lo tanto, puede encontrar algo de interés dentro de los que son multiplataforma como QT .
Un equivalente de El Cairo sería AntiGrain. Es posible que desee comparar el rendimiento.
OpenFrameworks tiene soporte para gráficos vectoriales.
ImageMagick es una biblioteca muy grande que tiene soporte para gráficos vectoriales, y un lenguaje dedicado a ella .
En el nivel inferior encontrarás Libxmi y Libart del proyecto gnome.
No es una API de alto nivel, y no estoy seguro de cuáles son las probabilidades que le conviene, pero existe el OpenVG estándar . Existen múltiples puertos de OpenVG sobre los renderizadores de software OpenGL y OpenGL ES. Mesa 3D también parece tener una implementación de OpenVG. Pero para algunas plataformas solo habrá soluciones comerciales disponibles.
Hay muchas bibliotecas de nivel superior que integran API para gráficos vectoriales. Entre estos hay uno de código abierto llamado Clutter para el diseño de GUI y utilizado en el diseño de juegos serios hay una forma de escala (no de código abierto). Este motor de juego tiene algunas funciones para dibujar gráficos vectoriales: 2DEngine
EDITAR : el desorden utiliza cairo aparentemente.
fuente
MonkVG es una emulación OpenVG multiplataforma sobre OpenGL ES 1.1 y 2.0. Ver: https://github.com/micahpearlman/MonkVG
Nota: Soy el autor original y el mantenedor de esta biblioteca. Tiene una licencia BSD muy liberal.
fuente
Terminé sin molestarme y solo con imágenes de alta resolución y escalado con OpenGL. Funciona lo suficientemente bien para mi situación.
fuente