Solutions graphiques vectorielles haute performance [fermé]

12

Je recherche une bibliothèque de graphiques vectoriels haute performance que je peux utiliser dans mes jeux.

Je pense le long des lignes de graphiques vectoriels tels que ceux qui peuvent être créés avec SVG .

Je considérerai n'importe quelle langue pour le moment (mais je dois l'exécuter sous Windows). Une solution qui tire parti du matériel GPU serait formidable.

Merci d'avance.

CiscoIPPhone
la source
Y a-t-il une raison pour laquelle vous souhaitez utiliser les graphiques vectoriels?
AttackingHobo
Oui: j'aime le style, ils peuvent mieux compresser que les textures et ils sont plus flexibles pour l'animation.
CiscoIPPhone

Réponses:

7

Si Windows (Vista et au-delà) est votre seule plate-forme, vous devriez envisager Direct2D , qui fournit un rendu graphique vectoriel 2D accéléré par GPU avec un logiciel de secours. Pour une solution plus x-plateforme, regardez au Caire , qui je pense avoir un rasterizer accéléré par GPU.

boki
la source
Intéressant, je n'avais jamais entendu parler de Direct2D auparavant. Il ne semble pas être largement utilisé - peut-être parce qu'il s'agit uniquement de Windows 7.
CiscoIPPhone
Il s'agit uniquement de Vista et Windows 7, en raison de l'utilisation de Direct3D 10. Et c'est plutôt nouveau :)
boki
2
Notez que plusieurs programmeurs de jeux de haut niveau considèrent Direct2D comme affreux - braid-game.com/news/?p=455 (qui est également lié à un podcast) et braid-game.com/news/?p=466 .
Je pense que le wrapper managé pour Direct2D a tendance à être beaucoup plus facile à utiliser que la bibliothèque native. Et la plupart des critiques que j'ai lues sur Direct2D ont cité des exemples où les mêmes fins peuvent être accomplies relativement facilement dans Direct3D. Bien sûr, il est exagéré de dessiner un rectangle, mais cela fonctionne bien pour les courbes et les formes avec des textures et / ou des traits non triviaux. En outre, D2D n'était pas destiné principalement aux développeurs de jeux - il était destiné à fournir une alternative plus riche et plus performante à GDI. Mais il fonctionne bien avec Direct3D.
Mike Strobel
3

OpenVG est une norme pour les graphiques vectoriels accélérés par matériel. Il est pris en charge par des GPU ciblés pour les appareils portables, tels que Mali / PowerVR / Vivante. Qt et Cairo peuvent utiliser OpenVG comme un rendu soutenu. Il existe des bibliothèques de logiciels qui implémentent OpenVG à l'aide de matériel OpenGL (MonkVG, AmanithVG GLE) ou de logiciels uniquement (AmanithVG SRE, ShivaVG, AlexVG).


la source
2

Scaleform GFx est une bibliothèque de middleware commerciale pour l'intégration de films Adobe Flash (rendu optimisé, ActionScript, etc.) dans votre moteur.

Dans une vie antérieure, la base de code de Scaleform GFx était celle de GameSWF . GameSWF est open source.

J'avais l'intention d'ajouter plus à cette réponse, mais au moment où j'y suis retourné, la plupart des points principaux que je voulais aborder ont été mentionnés dans d'autres réponses.

La seule autre chose que je pense penser à mentionner qui est pertinente pour l'approche basée sur Flash est le fait qu'Adobe a publié le code source sur leur machine virtuelle ActionScript, qui vit maintenant au Tamarin Project à Mozilla.

Neverender
la source
1

Si vous utilisez Windows XP ou que vous voulez quelque chose qui fonctionne sur la plupart des versions de Windows, vous devriez vérifier DirectDraw (même s'il est un peu vieux maintenant) ou GDI + , ou vous pouvez utiliser Flash, qui semble assez bon pour le rendu vectoriel, et est plateforme croisée.

dotminic
la source
DirectDraw est obsolète depuis un certain temps maintenant, et pour autant que je sache, il n'a pas de capacités natives pour le rendu de graphiques vectoriels. Si je me souviens bien, cela dépendait entièrement des textures et des blitting. Je crois que GDI + n'est pas accéléré et GDI, bien qu'accéléré, est plutôt primitif. Il serait préférable d'utiliser une bibliothèque comme Cairo, qui prend en charge plusieurs moteurs de rendu, dont au moins un prend en charge le rendu accéléré par GPU. Direct2D est probablement le meilleur choix pour Vista et 7.
Mike Strobel
Mon mauvais, je pensais que GDI + était accéléré! Je suppose que Direct2D serait alors le meilleur choix, comme vous le dites.
dotminic
1

Il y a quelques discussions ici et là sur la façon de travailler les graphiques SVG dans le moteur de jeu XNA. Un ici: http://wam-games.com/2010/04/svg-in-xna/ et voici un article sur ce site même: Rendu d'art SVG directement dans XNA

Les tuyaux XNA à peu près tout via Direct3D si je comprends bien, donc tout est accéléré par le GPU. Vous devez fondamentalement programmer en C # pour l'utiliser (vous pouvez en quelque sorte utiliser d'autres langages, mais vous devez le pirater.) L'utilisation de XNA vous donne Windows à coup sûr, mais aussi la possibilité de porter sur XBox360 et quelques plates-formes portables.

CodexArcanum
la source