2011-04-30 18 views
12

Por diversión, me gustaría ver si puedo crear una biblioteca que sea un poco como un pequeño subconjunto de WPF: un sistema de gráficos basado en vectores administrados por plantillas. (Tengo algunas teorías que me gustaría probar). Sin embargo, no soy un genio de los gráficos y estoy buscando una buena biblioteca de gráficos vectoriales para empezar.Biblioteca de gráficos vectoriales para Windows con enlaces C#

Sé que Microsoft usa MilCore internamente, que más o menos parece pasar una lista de estructuras vectoriales del mundo administrado al mundo no administrado y las renderiza. Creo que esta biblioteca subyacente está basada en el modo inmediato. Me gustaría utilizar una biblioteca de gráficos vectoriales libre existente con una larga lista de características deseadas:

  1. modo inmediato o retenido basado en vectores, preferentemente inmediatos?
  2. Pixel Shader
  3. Geometría golpeó la prueba sería bueno Soporte de imagen
  4. , el apoyo de rotación de imagen
  5. .NET vinculante
  6. Estable hasta el punto de ser comercialmente viable a pequeña escala

Cosas que no necesito:

  1. Soporte de plataforma cruzada. Si eso lo bloquea en DirectX o incluso Direct3D 10 u 11 específicamente, que así sea.
  2. Gestión de gráficos de nivel superior en cualquier cosa que se asemeje a un "control". Esta capa de gestión que probablemente querría hacer yo mismo.
  3. No tengo miedo de una pequeña interoperabilidad.
  4. Super awesome performant. Me gustaría que esto sea perfecto, pero si la usabilidad sufre demasiado debido a eso, no tendré éxito.

Esta biblioteca http://jeremiahmorrill.com/2011/02/05/a-simple-directcanvas-tutorial/ es similar a lo que me gustaría, pero preferiblemente es algo más estable y con más ejemplos.
Preferiría algo una capa por encima de DX/OpenGL si es posible.

¿Qué opciones tengo? ¿Existe esto o es solo un sueño? Gracias de antemano. Siento que acabo de tipear una lista de compras, pero realmente agradecería los comentarios de la comunidad sobre esto. No parecía encajar en otras preguntas sobre gráficos vectoriales que he visto aquí, pero si me perdí una buena publicación, ¡házmelo saber!

+0

I' He estado buscando algo similar por un tiempo, pero sin suerte. Espero que alguien pueda encontrarlo, pero parece más como la búsqueda del Santo Grial :) Hay envoltorios directos para DirectX, pero eso es un no ir, luego está DirectCanvas pero no es exactamente lo que necesito ... –

+0

Eché un vistazo a Clutter pero no pude encontrar enlaces .NET actualizados. ¿Algún comentario sobre Clutter? –

Respuesta

0

Puede probar SlimDX http://en.wikipedia.org/wiki/SlimDX - tienen envoltorios Direct2D y DirectX. Creo que ambos cubrirán sus requisitos.

+0

1. Direct2D estaba antiguo para Dirext3D debido a la compatibilidad con el hardware (ahora solo hace 2D en 3D por lo que recuerdo) 2. SlimDX no es realmente una biblioteca de vectores. Su motor de rasterización puede hacer cosas similares, pero no del todo. – Aren

0

Puedes ver Mono + Open GL que te dará potencia de .NET y Open GL, pero tendrás que profundizar con open gl para construir tu biblioteca pero esto asegurará la independencia de la plataforma.

http://www.opentk.com/

http://www.mono-project.com/Tao

No he probado cualquiera de ellos yo mismo todavía, pero mirando las muestras, parece bastante fácil para empezar. Habiendo hecho en Open GL será útil en el futuro ya que incluso los dispositivos móviles como el iPhone ahora vienen con soporte para Open GL.

+0

Realmente preferiría permanecer fuera del marco gráfico subyacente tanto como sea posible. Me gustaría trabajar algo más en un nivel de objeto de Geometría en lugar de vértices: ¿es compatible con ese tipo de nivel o voy a profundizar en los detalles esenciales para dibujar trapecios? –

+0

http://www.opentk.com/doc/math en este enlace dicen que admiten matemáticas vectoriales. –

+0

... Las matemáticas vectoriales no son iguales a los gráficos vectoriales ... –

3

Trabajé varias veces con la biblioteca VG.NET. Es realmente fácil de usar, tiene un gran diseñador y las imágenes y animaciones son rápidas. Es mi mejor recomendación.

+0

Esto no está tan lejos de lo que estoy buscando pero me preocupa que ... bueno, parece un poco anticuado. Está basado en GDI +. Supongo que ese tipo de reglas también excluye el soporte del sombreador. ¡Gracias! Es bueno no ser señalado a un nivel no tan bajo. –

+0

Sí, está basado en GDI +, pero el rendimiento es realmente bueno. Hicieron muchas optimizaciones. – TcKs

+0

En cuanto a VG.net, soy desarrollador y estamos trabajando en un puerto Direct2D. No puedo decir cuándo será lanzado aún. Debería poder cambiar entre Direct2d y GDI + usando las mismas bibliotecas. –

1

He usado Cairo antes para gráficos vectoriales. Es una gran biblioteca para comenzar (plataforma cruzada, enlaces de idiomas, código abierto, etc.).

Se puede extraer de los enlaces de lenguaje aquí:

http://cairographics.org/bindings/

He usado estos .NET/Mono encuadernaciones (por NDesk) con gran éxito:

http://git.ndesk.org/?p=cairo-sharp

+0

¿El Cairo es compatible con la bondad del sombreado de píxeles? –

+0

Según esta página, hay un backend de OpenGL: http://cairographics.org/backends/ – Laserallan

+0

El backend de OpenGL es bastante bueno. Lo usé una vez para transformaciones textuales aceleradas para un divertido proyecto de editor de texto en el que estaba trabajando. Muy aseado. – jsherer

Cuestiones relacionadas