Soluzioni grafiche vettoriali ad alte prestazioni [chiuso]


12

Sto cercando una libreria di grafica vettoriale ad alte prestazioni che posso usare nei miei giochi.

Sto pensando lungo le linee della grafica vettoriale come quelle che possono essere realizzate con SVG .

Prenderò in considerazione qualsiasi lingua al momento (ma deve essere eseguita su Windows). Una soluzione che sfrutta l'hardware della GPU sarebbe eccezionale.

Grazie in anticipo.


C'è qualche motivo per cui vuoi usare la grafica vettoriale?
Attaccando

Sì: mi piace lo stile, possono comprimere meglio delle trame e sono più flessibili per l'animazione.
CiscoIPPhone

Risposte:


7

Se Windows (Vista e oltre) è la tua unica piattaforma, dovresti esaminare Direct2D , che fornisce il rendering di grafica vettoriale 2D accelerata GPU con fallback del software. Per una soluzione più x-platform guarda al Cairo , che credo abbia un rasterizzatore accelerato GPU.


Interessante, non avevo mai sentito parlare di Direct2D prima. Non sembra essere ampiamente usato - forse perché è solo Windows 7.
CiscoIPPhone

È solo Vista e Windows 7, a causa dell'uso di Direct3D 10. Ed è piuttosto nuovo :)
boki

2
Nota che molti programmatori di giochi di alto profilo considerano Direct2D terribile - braid-game.com/news/?p=455 (che collega anche un podcast) e braid-game.com/news/?p=466 .

Penso che il wrapper gestito per Direct2D tenda ad essere molto più facile da lavorare rispetto alla libreria nativa. E la maggior parte delle critiche che ho letto su Direct2D hanno citato esempi in cui gli stessi fini possono essere raggiunti relativamente facilmente in Direct3D. Certo, è eccessivo disegnare un rettangolo, ma funziona bene per curve e forme con texture e / o tratti non banali. Inoltre, D2D non era rivolto principalmente agli sviluppatori di giochi, ma intendeva fornire un'alternativa più ricca e performante a GDI. Ma interagisce bene con Direct3D.
Mike Strobel,

3

OpenVG è uno standard per la grafica vettoriale con accelerazione hardware. È supportato da GPU destinate a dispositivi portatili, come Mali / PowerVR / Vivante. Qt e Cairo possono utilizzare OpenVG come supporto per il rendering. Esistono librerie software che implementano OpenVG usando hardware OpenGL (MonkVG, AmanithVG GLE) o solo software (AmanithVG SRE, ShivaVG, AlexVG).


2

Scaleform GFx è una libreria di middleware commerciale per l'integrazione di filmati Adobe Flash (rendering ottimizzato, ActionScript e altro) nel tuo motore.

In una vita passata, la base di codice di Scaleform GFx era quella di GameSWF . GameSWF è open source.

Avevo programmato di aggiungere altro a questa risposta, ma quando sono tornato ad esso, la maggior parte dei punti principali su cui volevo accennare erano menzionati in altre risposte.

L'unica altra cosa che posso pensare di menzionare che è rilevante per l'approccio basato su Flash è il fatto che Adobe ha rilasciato il codice sorgente sulla sua macchina virtuale ActionScript, che ora vive al Tamarin Project di Mozilla.


1

Se stai usando Windows XP o vuoi qualcosa che funzioni sulla maggior parte delle versioni di Windows, dovresti dare un'occhiata a DirectDraw (anche se ora è un po 'vecchio) o GDI + , oppure potresti usare Flash, che sembra abbastanza buono per il rendering vettoriale, ed è piattaforma incrociata.


DirectDraw è ormai obsoleto da tempo e, per quanto ne so, non ha funzionalità native per il rendering di grafica vettoriale. Il mio ricordo è che si basava interamente su trame e blitting. Credo che GDI + non sia accelerato e GDI, mentre accelerato, è piuttosto primitivo. Sarebbe meglio andare con una libreria come Cairo, che supporta più renderer, almeno uno dei quali supporta il rendering con accelerazione GPU. Direct2D è probabilmente la scelta migliore per Vista e 7.
Mike Strobel,

Mio male, pensavo che GDI + fosse accelerato! Immagino che Direct2D sarebbe la scelta migliore allora come dici tu.
dotminic,

1

C'è qualche discussione qua e là su come lavorare la grafica SVG nel motore di gioco XNA. Uno qui: http://wam-games.com/2010/04/svg-in-xna/ ed ecco un post proprio su questo sito: Rendering di arte SVG direttamente in XNA

XNA convoglia praticamente tutto attraverso Direct3D come ho capito, quindi è tutto accelerato dalla GPU. Fondamentalmente devi programmare in C # per usarlo (puoi in qualche modo usare altre lingue, ma devi hackerarlo.) L'uso di XNA ti dà sicuramente Windows, ma anche la possibilità di eseguire il porting su XBox360 e un paio di piattaforme portatili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.