Mam zadanie do wykonania na uniwersytecie, a moim zadaniem jest omówienie tekstur używanych w grach wideo i ich ewolucji.
Moje główne pytanie brzmi: jaka jest podstawowa różnica między używaniem duszka lub innymi metodami tekstury?
Po przeprowadzeniu drobnych badań sam wydaje mi się, że skłaniam się do tego, by Duszki zapisały obrazy w jednym pliku i mogły być używane do animacji itp. I były powszechnie używane ze starszymi grami wideo, generalnie wykorzystując duszki jako całość ich wizualizacji. Teraz, w przypadku nowoczesnych gier, duszki wydają się być mniej używane w miarę postępu technologicznego i dostępne są inne tekstury, takie jak mapowanie nierówności. Chociaż duszki są nadal używane do dostosowania takich funkcji, jak pasek zdrowia lub tekstury na duże odległości.
Ale jakie są główne zalety korzystania z tekstur nad duchami?
źródło
Odpowiedzi:
Pod koniec dnia duszki i tekstury to tylko obrazy - bloki danych kolorów rastrowych (chociaż czasami przesuwamy nieco granice, aby umieścić w nich dane inne niż obrazy). Różnica polega głównie na tym, jak je wykorzystujemy.
Zwykle nazywamy obraz (lub część obrazu, który zawiera wiele oddzielnych elementów) „duchem”, jeśli jego zamierzonym celem renderowania jest narysowanie bezpośrednio na siatce 2D ekranu, bez zniekształceń perspektywy. Tak więc to, co widzisz w uruchomionej grze, jest w zasadzie tym, co widzisz w samym pliku obrazu (oprócz barwienia kolorów / zamiany palet / efektów przezroczystości). Dotyczy to kafelków tła i postaci / obiektów interaktywnych w grach 2D, kart „billboardowych”, takich jak cząstki i starsze style renderowania drzew i krzewów, a także elementów interfejsu użytkownika i ikon w grach 3D.
I odwrotnie, jeśli używamy obrazu do zapewnienia szczegółów powierzchni dla wielokątów obiektu 3D, które mogą być rysowane w perspektywie, zwykle nazywamy ten obraz „teksturą”. Ta nazwa została przeniesiona na inne zastosowania danych obrazu w celu modulowania renderowania czegoś innego, nawet jeśli nie dotyczą już tekstury w takim sensie, jak można to wyczuć opuszkami palców - takie jak odbicia, mapy zniekształceń, nakładki, maski lub dowolne ogólne wykorzystanie obrazów, których nie chcemy nazwać bardziej szczegółowo, ma tendencję do zlepiania się pod „teksturą” w naszej luźnej nomenklaturze.
To sprawia, że granice między tymi dwoma rozmytymi nie są szczególnie ścisłe. Jeśli mam obraz zawierający sekwencję pióropuszów ognia i dymu do wykorzystania przy rysowaniu billboardowanych cząstek w celu uzyskania efektu wybuchu, mógłbym nazwać to „arkuszem sprite” lub „teksturą flipbook” zamiennie. Lub jeśli mam obraz zestawu klocków zawierający wszystkie kafelki tła dla gry 2D, mógłbym dziś nazwać to „atlasem tekstur”, analogicznie do tekstur atlasu opracowanych dla gier 3D, mimo że jego dane i użycie w mojej grze 2D są nie do odróżnienia z tego, co ktoś inny nazwałby arkuszem sprite. Jeśli mam prostokąt geometrii, którego celem jest przedstawienie pojedynczego obrazu na ekranie, mógłbym nazwać to „teksturowanym quadem” lub „duszka” w zależności od tego, co chcę podkreślić na temat jego użycia.
(Zwróć uwagę tutaj w tym ostatnim przykładzie, że „duszek” oznacza zarówno segment obrazu źródłowego w naszych zasobach gry, jak i instancję renderowanej encji gry, która korzysta z tego segmentu obrazu - w inny sposób używamy tej terminologii nieco niekonsekwentnie)
Znajdziesz niektóre silniki i biblioteki, które kodują to rozróżnienie, wyrażając zamiar we własnej nomenklaturze. Na przykład w Unity możesz zaimportować zasób obrazu jako „Sprite” - umożliwia to dodatkowy zestaw opcji, które są zwykle pożądane dla obrazów interfejsu użytkownika lub zasobów gry 2D, takich jak wycinanie i pakowanie arkuszy sprite, oraz możliwość odniesienia części obrazu jako odrębne byty w scenie i ustawieniach obiektu. W takich przypadkach „Sprite” często oznacza „obraz (teksturę) plus metadane ” - ale nadal jest renderowany tak samo jak zwykłe tekstury pod maską. Dodatkowe opakowanie to wygoda, więc nie musimy mikromanalizować przesunięć UV i tym podobnych wszędzie tam, gdzie chcemy użyć obrazu;
źródło
Duszek to relikt z historii gier komputerowych. Pomyśl o 8-bitowym Atarisie około ca. 1980. Mały obraz, zwykle z maską bitową pokrycia (lub specjalnym „przezroczystym” kolorem), który ma pozycję na ekranie i jest łączony na ekranie w określony sposób. Z dziurami, w których znajdują się „dziury” w ikonce, zgodnie z mapą zasięgu. Zwykle w sposób „po prostu działa” i sposób, który z łatwością pozwala na iluzję poruszających się rzeczy, zwykle poprzez zapisywanie i przywracanie oryginalnych pikseli ekranu.
Kiedyś duszki były funkcją sprzętową na komputerach, kiedyś można było je rysować / cofać rysowanie, a zawartość ekranu była zapisywana automatycznie, dawniej można było mieć ich bardzo ograniczoną liczbę (i nie nakładają się, tak!) i kiedyś były dość małe (jak 16 x 16) i ograniczone.
Kursor myszy jest obecnie najbardziej zbliżony do duszka (i był to kiedyś duszek na niektórych systemach do około 10-15 lat temu).
W dzisiejszych czasach nic takiego nie istnieje, ale słowo pozostaje. Duszek to w zasadzie mały obraz 2D, który narysujesz (złożony) gdzieś. Zazwyczaj rysuje mały teksturowany quad.
Z drugiej strony tekstura jest koncepcją czytelnego obrazu stosowanego w nieco bardziej nowoczesnych interfejsach API grafiki. Lub ściślej region pamięci („bufor” pod względem współczesnych interfejsów API) z niektórymi powiązanymi dodatkowymi danymi, takimi jak rozmiar, z których można próbkować za pomocą różnych środków. Zwykle, ale niekoniecznie przez moduł cieniujący działający na procesorze graficznym. Zwykle, ale niekoniecznie, ze znormalizowanymi współrzędnymi i zwykle, ale niekoniecznie, z filtrowaniem (i mipmapowaniem, a także określonym trybem obramowania, i, i, i ...).
Zatem tekstura może być źródłem danych używanych do rysowania duszka.
źródło
A00D
/AOOC
opcode były z pewnością rodzajem modyfikującym bufory ramek draw / undraw. BOB, tak, to też istniało, typowe dla Amigi. To chyba najbliższa współczesna tekstura (dowolny rozmiar, przesyłanie do procesora graficznego raz, rysowanie wiele razy).To trochę porównanie jabłek i pomarańczy. Tekstura to tylko obraz, a duszek to obraz i sposób jego użycia.
Nadal używamy sprajtów do gier 2D, które pojawiają się w grach 3D w efektach cząsteczkowych. W dzisiejszych czasach duszki ogólnie odnoszą się do pewnego rodzaju teksturowanego kwadratu lub (rzadko, jak sądzę) pojedynczego trójkąta. Nawet elementy interfejsu są często wciąż teksturowanymi quadami - które nazwałbym duszkami.
Dawniej zdarzało się, że duszki były wstępnie ładowane do pamięci i przenoszone (kopiowane bajt po bajcie) do punktów na ekranie (dosłownie, pamięci ekranowej), jak znaczki. W pewnym sensie nadal to robimy. W przypadku animacji ikonek często zmieniamy przykładowe współrzędne tekstury źródłowej, aby skopiować segmenty z tekstur, które zostaną renderowane na quady. Efekty cieniowania, takie jak mapowanie wypukłości, próbki z tekstur w ten sam sposób, a zatem nadal są użyteczne do, powiedzmy, efektów poświaty u duszków.
Bardziej szczegółowo w grach 2d, jest to stylistyczny wybór. Można na przykład komponować ręcznie rysowane lub malowane postacie w grze, używając sprajtów. Technicznie byłyby to gry South Park.
Więc naprawdę nie można używać tylko tekstury zamiast ikonki.
źródło
Oto prosta i krótka odpowiedź. Zwykle myślę o ducha jako o całym obiekcie wraz z funkcjami i teksturami, które zostały do niego zastosowane. Jeśli chodzi o teksturę, uważam, że jest to po prostu obraz, który można zastosować do czegoś.
źródło