Dlaczego więcej gier nie używa grafiki wektorowej? [Zamknięte]

84

Wydaje mi się, że grafika wektorowa jest bardziej wydajna pod względem zasobów / skalowalności; jednak w większości przypadków widziałem artystów używających grafiki bitmapowej / rasteryzowanej. Czy jest to ograniczenie nakładane na artystów przez programistów / projektantów gier? Jako programista myślę, że grafika wektorowa byłaby bardziej idealna, ponieważ pozwala na skalowanie rozdzielczości bez konieczności jej odtwarzania, tworzenia naprawdę dużej grafiki lub powodowania rozmycia grafiki.

Pytania: dlaczego więcej osób używa SVG / AI do tworzenia grafiki 2D? Czy rzeczywiście byłby preferowany (i kto woli)? Czy grafika bitmapowa jest standardem czy ograniczeniem (a może żadnym)?

Tło: Pracuję nad silnikiem i miałem fajne pomysły na grafikę wektorową; nie chcę jednak wkurzać artystów w przyszłości.

Wydaje mi się, że jest to bardziej pytanie dotyczące pragmatyzmu i rozwoju gier.

Parris
źródło
1
Prawdopodobnie ma to coś wspólnego z wydajnością procesorów graficznych i sprzętu na obrazach rastrowych określonego rozmiaru , takich jak 256 x 256 (lub ogólnie potęgi dwóch).
ashes999
4
Większość pytań, które mnie tu interesują, są „oparte na opiniach” i są „zamknięte”. Szkoda!
Joe Huang,
Gry wektorowe są bardziej wydajne, gry Pixel są bardziej eleganckie. Wolę grafikę pikselową niż wektor tylko dlatego, że potrafię docenić wysiłek włożony w ich tworzenie oraz że są ostre i atrakcyjne wizualnie. Gry wektorowe są szybsze i łatwiejsze w obsłudze dla aparatów. Gdy tylko grafika pikselowa zostanie rozciągnięta lub skompresowana, nie jest już widziana tak, jak powinna, i równie dobrze może być grafiką wektorową. Dla mnie grafika wektorowa jest rozmyta i frustrująca.
Dmitry
Nie chodzi tylko o gry, ale o komiksy, na przykład: grafiki rastrowe są tam zwykle częściej używane w Photoshopie niż w Illustratorze. Trudno jest bardzo precyzyjnie rysować subtelne gradacje kolorów, mieszać piksele, zmiękczać krawędzie itp. Za pomocą grafiki wektorowej. Nie można rozmazać pikseli tak łatwo, jak malować na płótnie z grafiką wektorową. Zwykle są dość wyraźne - odpowiednie dla niektórych stylów kreskówek, ale nie tak bardzo do rysowania subtelnych zaokrągleń form, miękkich cieni, sfumato itp.

Odpowiedzi:

58

W przeciwieństwie do innych form sztuki, grafika wektorowa wymaga niezwykle wysokiej precyzji, co czyni ją nieodpowiednią dla wielu stylów sztuki. Podstawowe kształty i tym podobne są łatwe w użyciu grafiki wektorowej, ale dodawanie drobnych detali, które byłyby naprawdę łatwe do pomalowania, jest bardzo trudne. Więc to trochę ograniczone do bardzo prostych stylów „symbolicznych”. Do wszystkiego innego malowanie po prostu działa lepiej.

To, co nadaje się do grafiki wektorowej, to ikony i design, a tam nie znajdzie się wielu artystów, którzy wykorzystaliby coś innego.

Nawiasem mówiąc: Skalowalność nie jest tak naprawdę problemem w przypadku grafiki rastrowej, malowanie w rozdzielczości 10x nie stanowi aż tak dużej różnicy niż malowanie w rozdzielczości, w której będzie wyświetlany. Coś, co jest obecnie dość często wykonywane (często reklamowane jako „HD-Graphics”).

API-Beast
źródło
ahhh to ma sens!
Parris
1
@ Mr.Beast Wiem, że odpowiedziano na to pytanie jakiś czas temu, ale co oznacza malarstwo w rozdzielczości 10x?
bitbitbot,
@bitbitbot Jeśli duszek jest zwykle wyświetlany w rozmiarze 20 x 20 pikseli, narysuj go w rozmiarze 200 x 200 pikseli. W ten sposób będzie on ostry i ostry po powiększeniu. Nie musi być bardziej szczegółowy, aby uniknąć efektownego wyglądu.
API-Beast,
1
-1 Myślę, że jest to głównie spowodowane historią gier, która zaczęła się od duszków renderowanych w pikselach wyłącznie w celu zwiększenia wydajności. Trzeba pamiętać, że obsługa wektorów jest o wiele bardziej chciwa pod względem CPU niż proste tablice zrasteryzowane, w tym czasie takie rozwiązanie nie było możliwe z obecnymi procesorami. Nie jest to tak proste, jak mogłoby się wydawać na pierwszy rzut oka poza wektorami, np. Silnik gry staje się znacznie trudniejszy, jeśli chodzi o obsługę wektorów zamiast zwykłych surowych duszków. Teraz, aby przypomnieć, że większość gier korzysta z treści 3D, a stopień szczegółowości jest po prostu zadziwiający.
user14170,
39

Grafika wektorowa jest zwykle bardziej wydajna niż grafika rastrowa do przechowywania (tzn. Rozmiar pliku jest mniejszy), ale znacznie mniej wydajna pod względem wydajności (tj. Ile czasu zajmuje komputerowi na narysowanie obrazu).

Aby wyświetlić obraz, komputer musi zrasteryzować ten obraz (tj. Obliczyć piksele w obrazie). Ponieważ grafika rastrowa z definicji jest już zrasteryzowana, nie ma wiele obliczeń, które komputer musi wykonać przed zrzuceniem pikseli do bufora tylnego.

Jednak ten problem zależy od tego, czy mówisz o używaniu grafiki wektorowej w czasie rzeczywistym w grze, czy o artystach rysujących w programie Illustrator, a następnie eksportujących do formatów rastrowych, takich jak png.

jhocking
źródło
1
Przypuszczam, że przede wszystkim myślałem o renderowaniu grafiki wektorowej w czasie rzeczywistym; jednak ich rasteryzacja może mieć sens. Myślę, że w tym momencie nie ma większej różnicy niż tylko użycie narzędzia grafiki rastrowej.
Parris
3
Grafika wektorowa nie zawsze jest bardziej wydajna do przechowywania - na ogół, wraz ze wzrostem szczegółów na obrazie, wzrasta również złożoność jego reprezentacji jako obrazu wektorowego. Zwykle przychodzi moment, w którym szczegółowy obraz będzie w rzeczywistości bardziej zwarty w postaci rastrowej niż w postaci wektorowej - uważam, że większość tekstur należy do tej kategorii, co jest dobrym powodem, dla którego rastry są używane bardziej niż wektory.
Mac
7
@Parris Renderowanie grafiki wektorowej w czasie rzeczywistym jest ich rasteryzację; sam bufor ramki jest tablicą rastrową, więc w pewnym momencie procesu - czy to w potoku narzędzi, w silniku, czy w sterownikach pod silnikiem - grafika wektorowa zostanie przekonwertowana na raster, i ta konwersja zajmie trochę czasu. Niekoniecznie dużo czasu - ale nie bez znaczenia.
Steven Stadnicki
1
@StevenStadnicki tak, to prawda! Przypuszczam, że zrobienie tego przed ręką to prawie optymalizacja.
Parris
17

W rzeczywistości istnieje wiele gier 2D, które wykorzystują to, co stanowi sztukę wektorową; Na przykład Ghost Trick: Phantom Detective w zasadzie generuje postacie w silniku jako grafikę wektorową. (Mówiąc ściślej, uważam, że są one podawane jako płaskie wielokątne regiony, co w tym przypadku stanowi to samo). Mówiąc bardziej ogólnie, modele wielokątne można ogólnie traktować jako dane „wektorowe” - reprezentują wierzchołki, krawędzie i ściany obiektu - w przeciwieństwie do danych „rastrowych” (rozdzielczość ekranu), więc w pewien sposób większość gier 3D jest za pomocą wektoryzowanych opisów danych.

Podejrzewam jednak, że twoje pytanie dotyczy bardziej sztuki 2D i pojawia się kilka czynników. Jak mówi pan Bestia, drobne szczegóły sprawiają, że grafika wektorowa jest trudniejsza do zbudowania; wyobraź sobie coś w rodzaju granatu na postaci, gdzie nawet odrobina sprytnego wklejania poszczególnych granatów wciąż nie zaoszczędzi całej masy czasu. Myślę, że większym problemem jest jednak to, że grafiki wektorowej trochę kontrolę dalaod artysty; jak zauważasz, grafika wektorowa może wyglądać znacznie lepiej na większą skalę, ale prawdziwymi problemami są niższe rozdzielczości, w których niewybredne szczegóły rasteryzacji mogą znacznie zmienić wygląd obrazu. Wyobraź sobie na przykład oko postaci; zewnętrzna granica może być owalna, nie większa niż dziesięć lub dwadzieścia pikseli i być może tylko niewielka garść pikseli wysokości. Przy tych rozdzielczościach rasteryzacja danych wektorowych - linii, kolistych łuków lub krzywych Beziera - staje się kwestią krytyczną i jeśli twoi artyści nie będą mogli pracować bezpośrednio w silniku - co zasadniczo oznacza stworzenie zupełnie nowego programu do rysowania wektorów - wtedy oni mają trudności z zagwarantowaniem, że wygląd ich obiektów w grze będzie pasował do wyglądu ich narzędzia. Co więcej, po prostu wyglądanie poprawnie w jednej rozdzielczości nie gwarantuje żadnej poprawności; znowu, skalowanie działa dobrze, gdy masz do czynienia z obiektami, których szczegóły mają dziesiątki lub setki pikseli, ale gdy przechodzisz do funkcji na mniejszą skalę, wówczas skalowane renderowanie przechodzi w dokładnie takie same szczegóły rasteryzacji.

To powiedziawszy, renderowanie wektoryzacyjne nie zawsze jest niewłaściwe i często może być stylistycznym wyborem dla doskonałego efektu. Ale nie jest to panaceum na problemy, które poruszasz w grafice rastrowej, i rodzi także nowe problemy.

Steven Stadnicki
źródło
7

Uważam, że jest to głównie połączenie tradycji, narzędzi i technologii oraz oczekiwań, które wzajemnie się przenikają.

  • tradycja - grafika rastrowa była najłatwiejszym sposobem renderowania szczegółowych obrazów dla większości historii tworzenia gier, dzięki czemu sposób pracy zapanował wśród programistów i artystów, sięgający czasów, gdy artyści byli nawet bardzo zaangażowani w gry. Istniejący kod obraca się wokół bitmap, a istniejący artyści nauczyli się pracować z bitmapami. Ponowne szkolenie i przeprogramowanie zawsze jest drogie.
  • narzędzia i technologia - artyści zazwyczaj zaczynają od grafiki bitmapowej i narzędzi do edycji zdjęć, być może dlatego, że bardziej przypominają tradycyjne media, ale bez względu na to, dlaczego dobre edytory wektorów są mniej popularne i mniej znane niż dobre edytory bitmap. Ponadto stosunkowo niedawno technologia renderowania wektorów była wystarczająco szybka dla gier - twórcy używający Flasha do gier zwykle do niedawna używali interfejsu bitmapy, a technologie typu Canvas / SVG są również stosunkowo nowe pod względem wydajnego wsparcia. Ponadto nie ma tak naprawdę dominującej biblioteki renderowania wektorów (o której wiem), z której ludzie mogliby korzystać, w porównaniu do alternatyw takich jak SDL, XNA, pygame itp., Więc programiści nie postrzegają tego jako bardzo opłacalnej trasy. Ale to' Nie programiści niekoniecznie wymuszają to na wykonawcach - zwykle artyści są znacznie bardziej zadowoleni z edycji bitmap. (W końcu artyści nie zawsze są projektantami graficznymi).
  • oczekiwania - gracze konsekwentnie oczekują coraz bardziej realistycznych gier wraz z postępem technologii. Przyczyną mogą być sami gracze, wydawcy i dział marketingu, producenci sprzętu chętni do sprzedaży kart graficznych lub eksperci, którzy myślą, że gry to w zasadzie filmy interaktywne lub niektóre z powyższych. Ale niezależnie od tego, kto to spowodował, jest to istotny czynnik, dlatego rynek generalnie dąży do realistycznej grafiki. Wektory są słabo dostosowane do realistycznej grafiki, a więc dopiero od niedawna, kiedy grafika zbliża się do fotorealizmu, tracąc w ten sposób tożsamość, następuje odrodzenie stylizowanej grafiki i zainteresowanie różnymi stylami prezentacji, takimi jak grafika wektorowa.

Interesującą rzeczą tych punktów jest to, że widać, że wszystko się zmienia. Być może użycie grafiki wektorowej wzrośnie w najbliższej przyszłości. Nowoczesny sprzęt graficzny dobrze nadaje się do grafiki wektorowej, więc tak naprawdę chodzi o stworzenie dobrego łańcucha technologicznego, aby wprowadzić sztukę do gry i na ekran.

Kylotan
źródło
5

Imho to różnica w podejściu ... chodzi raczej o budowanie sztuki niż rysowanie. Wolę grafikę wektorową ze względu na łatwość zmieniania, ponownego wykorzystywania, skalowania i wrażenie kartonu, które mogę z łatwością stworzyć. Większość „wyszkolonych” artystów woli rysować i malować, podczas gdy wielu grafików lubi używać wektorów.

Sprawdź mój blog: http://2dgameartforprogrammers.blogspot.com.au/

Warto zacząć od początku i najpierw przeczytać wcześniejsze samouczki. :)

SpriteAttack
źródło
2

Czytałem już jakiś artykuł zatytułowany Icon Design: Bitmap vs Vector , który pokazuje klarowność szczegółów, które gubią się podczas skalowania obrazu wektorowego. Nie chodzi o to, że występuje jakakolwiek strata, ale o to, że można ją precyzyjnie dostroić jako mapę bitową.

Spójrz na ten przykład ikony drukarki (w kółko obraz jest wzorcem w każdym przypadku):

wprowadź opis zdjęcia tutaj

Najlepszym miejscem jest skalowanie za pomocą wektora, a następnie dostosowanie za pomocą rastra. Chyba więc mówię, że mogą używać wektora, ale efektem końcowym jest raster.

PhilJ
źródło
10
-1. Porównujesz tutaj jabłka i pomarańcze. Mówisz, że obraz rastrowy jest lepszy, ponieważ możesz dodać więcej szczegółów. Równie dobrze możesz zamiast tego utworzyć ikonę grafiki wektorowej dla każdego rozmiaru ikony (z odpowiednimi szczegółami, szerokością obrysu itp.) I działałoby to równie dobrze. Oczywiste jest, że skalowanie grafiki wektorowej nie doda magicznie więcej szczegółów ... ale skalowanie mapy bitowej spowodowałoby jeszcze gorszą jakość.
bummzack
4
„Równie dobrze możesz stworzyć ikonę grafiki wektorowej dla każdego rozmiaru ikony”, zgodził się. Zarówno tworzenie wielu obrazów wektorowych, jak i wielu obrazów rastrowych tworzy więcej pracy. Chodzi mi o to, że byłoby miło, gdyby można było stworzyć jeden ogromny obraz wektorowy ze wszystkimi szczegółami, które można by pomniejszyć dla wszystkich rozmiarów. W artykule pokazuje, że niestety nie jest to takie łatwe we wszystkich okolicznościach.
PhilJ
@ PhilJ to właśnie myślałem. Dodając wszystkie potrzebne szczegóły, w razie potrzeby skaluj w dół, ale nie byłoby dziwnie, jeśli skalowałbyś też.
Parris
2

Jest to przede wszystkim problem techniczny, że większość firm nie wykorzystuje w swoich grach grafiki wektorowej. Znam wielu artystów, którzy tworzą swoje dzieła we Flashu lub Illustratorze, tylko po to, by wypompować zrasteryzowany obraz, który zostaje uderzony w duszka wielokąta. To tylko przeszkoda techniczna, której większość dużych firm nie chce zbytnio zrozumieć.

Poniżej znajduje się przykład animowanej postaci, wykonanej w AI, z około 13 ruchomymi częściami. Byłoby wspaniale móc to wykorzystać, ale musieliśmy starannie umieścić każdy kawałek w osobnym obrazie. Jedyną korzyścią było to, że mieliśmy te aktywa gotowe do skalowania dla każdej sztuki marketingowej.

Przykład znaku wektorowego do animacji

Innym powodem, dla którego może nie być bardziej popularny, jest fakt, że format EPS ma inne standardy niż AI. Tak więc wszyscy dzwony i gwizdy, które artyści lubią umieszczać na swoich obrazach, zostają zdeptane po konwersji na EPS.

Ostatecznie nie wiem, co trzeba zrobić, aby zaimplementować grafikę wektorową w grze, ale wiem, że większość inżynierów, z którymi współpracowałem, zdecydowała się wypluć png zamiast się z tym pogodzić.

Brian James
źródło
1

Nie mogę mówić za wszystkich, ale z własnego doświadczenia wynika, że ​​programy do grafiki wektorowej (czytaj: Inkscape, jedyny, którego próbowałem) są trudniejsze w użyciu i nie są tak intuicyjne jak programy graficzne bitmapowe. Wszyscy rozumieją pędzel i wiadro. Krzywe są trudniejsze.

tesselode
źródło