12
votes

Bibliothèque graphique vectorielle pour Windows avec des liaisons C #

Pour le plaisir, j'aimerais voir si je peux créer une bibliothèque qui ressemble un peu à un petit sous-ensemble de WPF: un système graphique vecteur piloté géré. (J'ai des théories que j'aimerais tester.) Je ne suis cependant pas un génie graphique et je cherche une bonne bibliothèque graphique vectorielle pour commencer.

Je sais que Microsoft utilise Milcore en interne, qui semble plus ou moins de transmettre une liste de structures vectorielles du monde géré au monde non géré et les rend les rendements. Je crois que cette bibliothèque sous-jacente est basée sur le mode immédiat. J'aimerais utiliser une bibliothèque graphique vectorielle gratuite existante avec une liste de blanchisserie des fonctionnalités souhaitées:

  1. Vecteur basé sur
  2. mode immédiat ou retenu, de préférence immédiat?
  3. Pixel Shader Support
  4. Les tests de hit géométrie seraient gentils
  5. Support d'image, support de rotation de l'image
  6. .NET Binding
  7. stable au point d'être commercialement viable sur une petite échelle

    choses que je n'ai pas besoin:

    1. support de plate-forme croisée. Si cela le verrouille dans DirectX ou même Direct3D 10 ou 11 spécifiquement, alors soyez-le.
    2. Gestion de niveau supérieure des graphiques dans n'importe quoi ressemblant à un "contrôle". Cette couche de gestion je voudrais probablement faire moi-même.
    3. Je n'ai pas peur d'un peu d'interoption.
    4. super génial performant. J'aimerais que cela soit performant, mais si la convivialité en souffre trop à cause de cela, je ne réussirai pas.

      Cette bibliothèque http://jeremiahmorrill.com/2011/02 / 05 / A-Simple-DirectCanvas-Tutorial / ressemble à ce que je voudrais, mais de préférence quelque chose de plus stable et avec plus d'exemples.
      Je préférerais quelque chose d'une couche au-dessus de DX / OpenGL si possible.

      Quelles options ai-je? Est-ce qu'il existe ou est-ce juste un rêve de tuyau? Merci d'avance - J'ai l'impression d'avoir juste tapé dans une liste de courses mais j'apprécierais vraiment les commentaires de la communauté à ce sujet. Il ne semblait pas très semblable à installer d'autres questions de graphiques vectorielles que j'ai vues énumérées ici, mais si j'ai raté un excellent post, faites-moi savoir!


2 commentaires

J'ai cherché quelque chose de similaire depuis un moment maintenant, mais sans chance. J'espère que quelqu'un pourrait le trouver, mais cela ressemble plus à la recherche du Saint-Graal :) Il y a des wrappers directs à DirectX, mais c'est un non go, alors il y a directeCanvas, mais ce n'est pas exactement ce dont j'ai besoin ...


J'ai pris un coup d'œil à l'encombrement mais je n'ai pas pu trouver des liaisons à jour .NET. Des commentaires sur l'encombrement?


4 Réponses :


0
votes

Vous pouvez essayer Slimdx http://en.wikipedia.org/wiki/slimdx - Ils ont des emballages Direct2D et DirectX. Je crois que tous les deux vont couvrir vos besoins.


1 commentaires

1. Direct2D a été antique pour Dirext3D en raison d'un support matériel (vous venez de faire 2D en 3D maintenant de ce que je me souviens) 2. Slimdx n'est pas vraiment une bibliothèque de vecteur. Son tour de rastrastination peut faire des choses similaires, mais pas tout à fait la même chose.



0
votes

Vous pouvez voir Mono + Open GL qui vous donnera la puissance de .NET et Open GL, mais vous devrez entrer en profondeur avec Open GL pour construire votre bibliothèque, mais cela garantira l'indépendance de la plate-forme.

http://www.opentk.com/

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

Je n'ai essayé aucun d'entre eux moi-même, mais je regarde des échantillons, ils semblent assez faciles à commencer. Ayant terminé sur Open GL sera utile à l'avenir, car même des appareils mobiles tels que l'iPhone sont désormais en support pour Open GL.


1 commentaires

Je préférerais vraiment rester en dehors du cadre graphique sous-jacent autant que possible. J'aimerais travailler quelque chose de plus à un niveau d'objet géométrie plutôt que des sommets - cela supporte-t-il ce type de niveau ou que je vais me mettre dans les détails de Nitty Gritty pour dessiner des trapèze?



3
votes

J'ai travaillé plusieurs fois avec bibliothèque VG.NET . C'est vraiment facile à utiliser, possède un excellent designer et les images et les animations sont rapides. C'est ma meilleure recommandation.


3 commentaires

Cela ne semble pas si loin de ce que je cherche mais je crains que ... Eh bien, ça a l'air un peu daté. C'est gdi + basé. Je suppose que ce genre de règles de Shader Shader. Merci quand même! C'est bien de ne pas être signalé à quelque chose de pas si bas niveau.


Oui, il est construit sur GDI +, mais la performance est vraiment géniale. Ils ont fait beaucoup d'optimisations.


En ce qui concerne vg.net, je suis un développeur et nous travaillons sur un port Direct2D. Je ne peux pas dire quand ça sera encore libéré. Vous devriez être capable de basculer entre Direct2D et GDI + en utilisant les mêmes bibliothèques.



1
votes

J'ai utilisé le Caire avant pour les graphiques vectoriels. C'est une grande bibliothèque de démarrer (plate-forme transversale, de nombreuses liaisons de langue, source ouverte, etc.).

Vous pouvez consulter les liaisons de langue ici:

http://cairographics.org/bindings/

J'ai utilisé ces liaisons .NET / Mono (par NDESK) avec grand succès:

http://git.ndesk.org/?p=cAiro-Sharpleightle/a >


3 commentaires

Selon cette page, il y a un backend OpenGL: Cairographics.org/Backends


Le backend OpenGL est assez génial. Je l'ai utilisé une fois pour des transformations textuelles accélérées pour un projet d'éditeur de texte amusant que je travaillais. Très propre.


Voici un message que j'ai trouvé sur le Caire, OpenGL et C #: Majkel.wordpress.com/2007/04/26/USTION-CAIRO-OPENGL-AND-C