2010-10-29 12 views
7

Quiero usar gráficos vectoriales en un juego OpenGL. Quiero usar gráficos vectoriales porque pueden escalarse a bajo costo sin pérdida de calidad.Representador gráfico vectorial 2D para OpenGL

Por supuesto, el dibujo debe ser hardware acelerado, por lo que no quiero dibujar en el software una textura.

Ahora me pregunto si ya existe una biblioteca que hace esto. ¿Hay una biblioteca que pueda cargar algún formato de gráfico vectorial y mostrarlo con OpenGL?

+0

A menos que el autor desee gráficos vectoriales OpenGL + 2D al mismo tiempo. – tibur

+0

Déjame intentar aclarar lo que quiero. Quiero cargar un archivo gráfico vectorial (i.E. SVG), hacer mis llamadas normales OpenGL mezcladas con una llamada para dibujar el archivo gráfico vectorial. Lo admito, el otro hilo responde esto parcialmente. – Nathan

+0

La pregunta vinculada por Josh Lee es en mi humilde opinión demasiado amplia para un duplicado de esto o incluso tiene una respuesta que no sería del tamaño de un folleto ... – Fizz

Respuesta

2

No me molestaría con nada OpenVG, ni siquiera con MonkVG, que es probablemente la implementación más moderna, aunque incompleta. El comité OpenVG se ha cerrado en 2011 y la mayoría de las implementaciones, si no todas, son abandonadas o, como máximo, software heredado.

Desde 2011, el estado del arte es el bebé de Mark Kilgard, NV_path_rendering, que actualmente solo es una extensión de proveedor (Nvidia) como ya habrás adivinado por su nombre. Hay una gran cantidad de material en que:

NV_path_rendering ahora es utilizado por la biblioteca Skia de Google detrás de las escenas, cuando estén disponibles. (Nvidia contribuyó el código a finales de 2013 y 2014.)

Y para responder a un punto más específico planteado en los comentarios, usted puede mezclar ruta de reproducción con otras cosas OpenGL (3D), que hizo una demostración en:

puede, por IVS carga académica y tal https://www.youtube.com/watch?v=bCrohG6PJQE. También son compatibles con la sintaxis de PostScript para las rutas.

Un advenedizo que tiene incluso menos (o francamente sin) soporte de proveedor o brillo académico es NanoVG, que actualmente está desarrollado y mantenido.(https://github.com/memononen/nanovg) Dada la cantidad de librerías en 2D sobre OpenGL que han ido y venido en el tiempo, usted está haciendo una gran apuesta usando algo que no es respaldado por un proveedor importante, en mi humilde opinión.

1

Eche un vistazo a OpenVG.

+0

Gracias. OpenVG parece genial. Pero estoy un poco confundido Es solo un estándar, no una biblioteca, ¿verdad? ¿Existe una implementación acelerada de hardwar (de código abierto) para Linux y Windows? – Nathan

+0

Bueno. Pensé que había una implementación de Nvidia. Mire este hilo: [¿La mejor implementación de OpenVG?] (Http://stackoverflow.com/questions/401422/best-openvg-implementation). – tibur

1

Mucha discusión in this Slashdot post sobre renderizadores para SVG. No sé cuál de ellos usa OpenGL, si hay alguno.

This SO question también tiene varias sugerencias, incluyendo sauvage que se realiza en Python. Cairo también es aparentemente una posibilidad.

Hay varias bibliotecas potentes que procesan SVG sin OpenGL. Me pregunto si realmente no es tan necesario: quizás las líneas de dibujo ya se hayan acelerado lo suficiente en la mayoría de las tarjetas gráficas de los sistemas.

Cuestiones relacionadas