Soluções de gráficos vetoriais de alto desempenho [fechado]

12

Estou procurando uma biblioteca de gráficos vetoriais de alto desempenho que possa usar em meus jogos.

Estou pensando na linha de gráficos vetoriais, como os que podem ser feitos com SVG .

Considerarei qualquer idioma no momento (mas deve ser executado no Windows). Uma solução que aproveite o hardware da GPU seria ótima.

Desde já, obrigado.

CiscoIPPhone
fonte
Existe algum motivo para você querer usar gráficos vetoriais?
precisa
Sim: eu gosto do estilo, eles podem compactar melhor do que texturas e são mais flexíveis para animação.
CiscoIPPhone 25/10/10

Respostas:

7

Se o Windows (Vista e além) é a sua única plataforma, você deve procurar no Direct2D , que fornece renderização gráfica de 2D em vetor acelerado por GPU com fallback de software. Para uma solução mais de plataforma x, observe o Cairo , que acredito ter um rasterizador acelerado por GPU.

boki
fonte
Interessante, eu nunca tinha ouvido falar do Direct2D antes. Não parece ser amplamente utilizado - talvez por ser apenas o Windows 7.
CiscoIPPhone
É apenas o Vista e o Windows 7, devido ao uso do Direct3D 10. E é bastante novo :) #
25110
2
Observe que vários programadores de jogos de alto nível consideram o Direct2D péssimo - braid-game.com/news/?p=455 (que também está vinculado a um podcast) e braid-game.com/news/?p=466 .
Acho que o wrapper gerenciado do Direct2D tende a ser muito mais fácil de trabalhar do que a biblioteca nativa. E a maioria das críticas que li sobre o Direct2D citaram exemplos em que os mesmos fins podem ser realizados com relativa facilidade no Direct3D. Claro, é um exagero desenhar um retângulo, mas funciona bem para curvas e formas com texturas e / ou traços não triviais. Além disso, o D2D não era voltado principalmente para desenvolvedores de jogos - ele pretendia fornecer uma alternativa mais rica e com melhor desempenho ao GDI. Mas ele interopera bem com o Direct3D.
Mike Strobel
3

O OpenVG é um padrão para gráficos vetoriais acelerados por hardware. É suportado por GPUs direcionadas para dispositivos portáteis, como Mali / PowerVR / Vivante. Qt e Cairo podem usar o OpenVG como uma renderização suportada. Existem bibliotecas de software que implementam o OpenVG usando hardware OpenGL (MonkVG, AmanithVG GLE) ou apenas software (AmanithVG SRE, ShivaVG, AlexVG).


fonte
2

O Scaleform GFx é uma biblioteca comercial de middleware para integrar filmes em Adobe Flash (renderização otimizada, ActionScript e mais) ao seu mecanismo.

Em uma vida passada, a base de código do Scaleform GFx era a do GameSWF . O GameSWF é de código aberto.

Eu planejava acrescentar mais a essa resposta, mas quando voltei a ela, a maioria dos pontos principais que eu queria abordar foram mencionados em outras respostas.

A única outra coisa que posso mencionar que é relevante para a abordagem baseada em Flash é o fato de a Adobe ter lançado o código-fonte para sua máquina virtual ActionScript, que agora mora no Tamarin Project na Mozilla.

Neverender
fonte
1

Se você estiver usando o Windows XP ou quiser algo que funcione na maioria das versões do Windows, verifique o DirectDraw (mesmo que já esteja um pouco antigo agora) ou o GDI + , ou use o Flash, que parece muito bom para a renderização de vetor e é plataforma cruzada.

dotminic
fonte
O DirectDraw está obsoleto há algum tempo e, até onde eu sei, não possui recursos nativos para renderizar gráficos baseados em vetor. Lembro-me de que se baseou inteiramente em texturas e cegos. Acredito que o GDI + não é acelerado e o GDI, embora acelerado, é bastante primitivo. Seria melhor usar uma biblioteca como o Cairo, que suporta vários renderizadores, pelo menos um deles suporta renderização acelerada por GPU. O Direct2D é provavelmente a melhor escolha para o Vista e o 7. #
Mike Strobel
Meu mal, pensei que GDI + foi acelerado! Eu acho que o Direct2D seria a melhor escolha, como você diz.
dotminic 27/10/10
1

Há algumas discussões aqui e ali sobre como trabalhar com gráficos SVG no mecanismo de jogos XNA. Um aqui: http://wam-games.com/2010/04/svg-in-xna/ e aqui está um post neste site: Renderizando arte SVG diretamente no XNA

O XNA canaliza praticamente tudo através do Direct3D como eu o entendo, por isso é tudo acelerado por GPU. Basicamente, você deve programar em C # para usá-lo (você pode usar outras linguagens, mas precisa hackear.) O uso do XNA fornece o Windows, com certeza, mas também a possibilidade de migrar para o XBox360 e algumas plataformas portáteis.

CodexArcanum
fonte