Jakiej technologii używa Starcraft 2 do renderowania swoich map?


9

Mam mapę, która jest generowana proceduralnie w czasie wykonywania i obecnie badam metody renderowania tej mapy. Zainteresowałem się wyglądem StarCrafta 2 i chciałbym doradzić, jakie metody wykorzystuje do jego osiągnięcia. Po drugie, chciałbym zobaczyć tutoriale, artykuły, a nawet przykłady kodu źródłowego, jeśli to możliwe.

Jest kilka głównych rzeczy, na które chciałbym uzyskać porady, ale prosimy również o zasugerowanie czegoś innego, co mogłoby mi pomóc.

  1. Przyciągalne zestawy klocków - Typowa mapa gwiezdnych statków wydaje się składać z zestawu klocków modeli, które można połączyć, tworząc klify, rampy i inne wzniesienia. Jakie metody stosują, aby wyglądały tak naturalnie? Mam na myśli to, że bardzo trudno jest zauważyć powtórzenie.

  2. Tekstury terenu - Tekstury terenu są tak zróżnicowane, a nawet dynamiczne (pełzanie Zergów). Jakie metody są w tym celu stosowane?

Dzięki.


Jeśli chodzi o # 2, zbadaj „rozpryskiwanie tekstur”.
George Duckett,

Odpowiedzi:


23

Myślę, że częścią tego może być to, że Blizzard ma niesamowitą liczbę artystów tekstur. Ale przeformułujmy trochę pytanie:

Mam ograniczony budżet i chcę stworzyć strategiczną grę w czasie rzeczywistym, bez wyraźnego układania tekstur. Jak mogę to osiągnąć?

Dobre pytanie! Oto kilka dużych narzędzi, których chciałbym użyć:

1) Dość duży zestaw wymiennych płytek . Załóżmy, że masz na siatce rozmiar tekstury 64 x 64: utwórz osiem tekstur 64 x 64, z których każda może układać się z innymi, a masz ładną grę opartą na kafelkach z dużą różnorodnością!

2) Kalkomanie lub megatekstury . Weź powtarzającą się teksturę i niewielką liczbę „smug”, „brudu” lub „zadrapań”. Spryskaj kilka z tych nakładek na tekstury. Mogą być renderowane w czasie rzeczywistym, w którym to przypadku są kalkomaniami lub upieczone w gigantyczną teksturę, w którym to przypadku nazywa się to megateksturowaniem. W obu przypadkach prawdopodobnie możesz to zrobić częściowo losowo, a otrzymasz wiele odmian z kilkoma zastosowanymi nakładkami.

3) Płytki cykady . Sprawdź to, aby uzyskać więcej informacji na temat tego, jak to działa. Podsumowując, jest to sposób na pobranie niewielkiej liczby częściowo przezroczystych, wyraźnie widocznych kafelków tła i wykorzystanie go do wygenerowania znacznie mniej oczywistego kafelkowego tła.

4) Rozpryskiwanie tekstur . Zostawiłem ten na koniec, ponieważ tak naprawdę nie chodzi o unikanie kafelkowania pojedynczej tekstury, ale o płynne łączenie wielu tekstur. Jednakże, jeśli uda ci się uzupełniać kilka dodatkowych tekstur w swoim budżecie, to może być kluczowym narzędziem - w rzeczywistości, powiedziałbym, jeśli nie to za pomocą, jesteś prawdopodobnie robi coś złego. Nie pomoże to w przypadku dużych, wyraźnie wyłożonych kafelkami sekcji jednego typu tekstury, ale właśnie tego użyjesz, aby różne tekstury wyglądały dobrze obok siebie.


Dla zainteresowanych Starcraft 1 używa nr 1 na tej liście, a Starcraft 2 używa nr 4. W obu przypadkach dotyczy to podstawowego terenu. Jeśli chodzi o „bazgroły” w SC1, to były one na drugim miejscu (kalkomanie, a nie megatekstury), aw SC2 wszystkie modele 3D. - Nawiasem mówiąc, to, co sprawia, że ​​mapy SC2 wyglądają tak wspaniale, to fakt, że w większości lokalizacji występują dwie tekstury rozpryskane względem siebie pod różnym kątem, co w rezultacie przypomina bardziej kafelki Cykady. (o których nie wiedziałem do tej pory i planuję użyć).
DampeS8N

@ DampeS8N: W rzeczywistości SC1 nie zajmuje # 1 per se. Zamiast tego mają małą paletę płytek, które sąsiadują ze sobą, a także niektóre płytki, które sąsiadują tylko z niektórymi innymi płytkami. Edytor map zawiera tabelę, z jaką kafelkami, czym, więc kiedy umieszczasz kafelki, które nie kafelkują tego, co znajduje się w ich pobliżu, przegląda tabele i zamienia te kafelki na to, co kafelkuje tym, co umieściłeś. Rekurencyjnie.
Nicol Bolas,

@NicolBolas Technicznie prawda, ale podstawową filozofią są połączone ze sobą wymienne płytki. W związku z tym, moi przyjaciele i ja widzieliśmy, ile obrotów kafelków możemy wywołać w edytorze SC1 jako reakcję łańcuchową.
DampeS8N
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.