Rozwiązania grafiki wektorowej o wysokiej wydajności [zamknięte]


12

Szukam biblioteki grafiki wektorowej o wysokiej wydajności, której mogę używać w swoich grach.

Myślę o grafice wektorowej, takiej jak te, które można wykonać za pomocą SVG .

Rozważę teraz dowolny język (ale musi działać w systemie Windows). Świetne byłoby rozwiązanie wykorzystujące sprzęt GPU.

Z góry dziękuję.


Czy jest jakiś powód, dla którego chcesz użyć grafiki wektorowej?
AttackingHobo

Tak: Podoba mi się styl, mogą kompresować się lepiej niż tekstury i są bardziej elastyczne w animacji.
CiscoIPPhone

Odpowiedzi:


7

Jeśli Windows (Vista i nowsze) jest jedyną platformą, powinieneś przyjrzeć się Direct2D , która zapewnia przyspieszone GPU renderowanie grafiki wektorowej 2D z rezerwowym oprogramowaniem. Aby uzyskać więcej rozwiązań dla X-platform, zajrzyj do Kairu , który moim zdaniem ma przyspieszony procesor graficzny z przyspieszeniem GPU.


Co ciekawe, nigdy wcześniej nie słyszałem o Direct2D. Nie wydaje się być powszechnie używany - być może dlatego, że jest to tylko Windows 7.
CiscoIPPhone

Jest to tylko Vista i Windows 7, ze względu na użycie Direct3D 10. I jest raczej nowy :)
boki

2
Zauważ, że kilku znanych programistów gier uważa Direct2D za okropne - braid-game.com/news/?p=455 (który również prowadzi do podcastu) i braid-game.com/news/?p=466 .

Myślę, że zarządzanie opakowaniem Direct2D jest o wiele łatwiejsze w obsłudze niż natywna biblioteka. Większość krytyki Direct2D, którą przeczytałem, przytacza przykłady, w których te same cele można stosunkowo łatwo osiągnąć w Direct3D. Oczywiście rysowanie prostokąta jest przesadą, ale działa dobrze w przypadku krzywych i kształtów z nietrywialnymi teksturami i / lub głaskaniem. Poza tym D2D nie był skierowany przede wszystkim do twórców gier - miał zapewnić bogatszą, bardziej wydajną alternatywę dla GDI. Ale dobrze współpracuje z Direct3D.
Mike Strobel

3

OpenVG to standard grafiki wektorowej przyspieszanej sprzętowo. Jest obsługiwany przez procesory graficzne przeznaczone dla urządzeń przenośnych, takich jak Mali / PowerVR / Vivante. Qt i Kair mogą używać OpenVG jako kopii zapasowej. Istnieją biblioteki oprogramowania, które implementują OpenVG przy użyciu sprzętu OpenGL (MonkVG, AmanithVG GLE) lub tylko oprogramowania (AmanithVG SRE, ShivaVG, AlexVG).


2

Scaleform GFx to komercyjna biblioteka oprogramowania pośredniego do integracji filmów Adobe Flash (zoptymalizowane renderowanie, ActionScript i inne) z silnikiem.

W poprzednim życiu bazą kodową Scaleform GFx była GameSWF . GameSWF jest oprogramowaniem typu open source.

Planowałem dodać więcej do tej odpowiedzi, ale zanim wróciłem do niej, większość głównych punktów, na które chciałem się natknąć, wymieniono w innych odpowiedziach.

Jedyną inną rzeczą, o której mogę wspomnieć, która ma związek z podejściem opartym na Flashu, jest fakt, że Adobe wydało kod źródłowy na maszynie wirtualnej ActionScript, która obecnie jest dostępna w Tamarin Project w Mozilli.


1

Jeśli używasz systemu Windows XP lub chcesz czegoś, co działa na większości wersji systemu Windows, powinieneś wypróbować DirectDraw (choć jest już trochę stary) lub GDI + , albo możesz użyć Flasha, który wydaje się całkiem dobry do renderowania wektorów i jest między platformami.


DirectDraw jest już przestarzały i o ile wiem, nie ma natywnych możliwości renderowania grafiki wektorowej. Przypominam sobie, że opierało się ono całkowicie na teksturach i ścieraniu. Uważam, że GDI + jest nie przyspieszony, a GDI, choć przyspieszony, jest raczej prymitywny. Lepiej byłoby skorzystać z biblioteki takiej jak Kair, która obsługuje wiele rendererów, z których przynajmniej jedna obsługuje renderowanie przyspieszane przez GPU. Direct2D jest prawdopodobnie najlepszym wyborem dla systemów Vista i 7.
Mike Strobel

Mój zły, myślałem, że GDI + został przyspieszony! Myślę, że Direct2D byłby najlepszym wyborem, jak mówisz.
dotminic

1

Tu i tam jest trochę dyskusji na temat pracy z grafiką SVG w silniku gry XNA. Jeden tutaj: http://wam-games.com/2010/04/svg-in-xna/ i tutaj jest post na tej samej stronie: Renderowanie grafiki SVG bezpośrednio w XNA

XNA przesyła praktycznie wszystko przez Direct3D, tak jak rozumiem, więc wszystko jest przyspieszane przez GPU. Zasadniczo musisz programować w języku C #, aby z niego korzystać (możesz używać innych języków, ale musisz się zhakować). Korzystanie z XNA na pewno zapewni ci Windows, ale także możliwość przeniesienia na XBox360 i kilka przenośnych platform.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.