Wśród wielu, wielu rzeczy, które mają gracze i programiści chwalony o BioWare Dragon Age: Strażnik Zasłony to niesamowite opcje włosów w kreatorze postaci. Tworząc idealną wersję Rooka, gracze mają możliwość wyboru spośród ponad 100 stylów, a wiele z nich oddaje wysokiej jakości niuanse charakterystyczne dla fryzur rzadko spotykanych w grach wideo, takich jak włosy czarnych postaci.
Jak oni to zrobili? Cóż, otrzymaliśmy dzisiaj małą odpowiedź, kiedy BioWare i EA odsłoniły tajemnicę techniczne głębokie nurkowanie do Dragon Age: Strażnik Zasłonytechnologii włosów, która opisuje, w jaki sposób studio wykorzystało silnik Frostbite do symulacji do 50 000 pojedynczych pasm włosów.
Jest mnóstwo spostrzeżeń nie udostępniono w tym artykule – podobnie jak lepsze działanie narzędzi Frostbite – ale dane dostarczone przez BioWare są zaskakująco solidne i zapewniają programistom punkt odniesienia dla ich własnych systemów włosów w przyszłych grach. Jak napisał dyrektor techniczny studia Maciej Kurowski, system nazywa się systemem renderowania „Strand Hair” (zależnym od pamięci i procesora graficznego) i wykorzystuje specjalnie opracowany rasteryzator oprogramowania komputerowego, aby wkomponować włosy w ramkę przed połączeniem ich z innymi nieprzezroczystymi i przezroczystymi obiektami.
The Osłona zasłony system włosów potrzebny do renderowania obok znacznie bardziej przezroczystych obiektów.
Jak wyjaśnia post BioWare, Strand Hair to istniejący system włosów w silniku Frostbite, który był używany w różnych seriach sportowych EA, takich jak EA Sports FC i Madden NFL.
W tych grach system włosów ma symulować działanie włosów nie tylko na boisku, ale często z punktu widzenia kamer telewizyjnych rejestrujących głębię ostrości. Jednak w tych grach nie występują włosy sięgające do pasa, włosy opadające wokół rogów na głowie postaci ani włosy renderowane w tym samym czasie, gdy miliard magicznych cząstek wylatuje z laski, gdy wokół nich unosi się dym.
Według BioWare ostatecznym rezultatem jest system, w którym nasadki włosów poruszają się „płynnie”, a symulacja i usuwanie włosów podczas renderowania zostały całkowicie oddzielone. Maksymalna długość włosów również wzrosła z „63 punktów” do „255 punktów”, dzięki czemu fantazje dotyczące fryzury sięgającej do pasa stają się rzeczywistością.
Technika ta, jak napisał starszy inżynier renderowania James Power, polega na podzieleniu włosów na „dwa odrębne pasma”, z których pierwszy jest nieprzezroczysty, a drugi przezroczysty. „Aby podzielić włosy, do przejścia renderowania dodaliśmy odcięcie alfa, które łączy włosy ze światem i najpierw renderuje włosy znajdujące się powyżej odcięcia (>=1, nieprzezroczyste), a następnie włosy znajdujące się poniżej odcięcie (przezroczyste)” – napisał.
Przed renderowaniem rozdzielonych przejść najpierw renderowana jest głębokość przezroczystej części włosów, często tworząc „końce” pasm włosów. Staje się przestrzenną barierą pomiędzy przezroczystymi pikselami, które znajdują się „pod i na górze” pasma włosów. Gra renderuje nieprzezroczystą część pasm włosów, a następnie przezroczyste obiekty.
Aby dowiedzieć się, czy piksel cieniujący znajduje się „pod”, czy „na górze” pasma włosów, sprawdza przezroczystą teksturę głębi włosów w celu uzyskania informacji. Jeśli jest „pod”, silnik renderuje włosy i zaznacza „fragment szablonu”. Jeśli jest „na górze”, piksel jest odrzucany i nic nie jest renderowane.
Następnie gra ponownie rysuje przezroczyste obiekty, używając „fragmentu szablonu”, aby zobaczyć, gdzie przezroczyste obiekty nie były wcześniej rysowane, co pozwala na „prawidłowe renderowanie przezroczystych obiektów”.
Wszystkie te szczegóły stają się jeszcze trudniejsze do opanowania w przerywnikach filmowych w silniku, które pojawiają się w grze. Podczas oświetlania tych scen włosy musiały przyjąć szeroką gamę świateł, takich jak światła szerokokątne, światła odległe itp. W związku z tym gra renderuje „cienie bohaterów” dla każdego obiektu Strand Hair zgodnie z każdym odpowiadającym mu światłem, które jest oznaczone jako „ważne”. ” do zdjęcia artystów.
Jak widać na załączonym renderingu postaci Bellary, Cienie Bohaterów tworzą bardziej naturalną teksturę i zachowują niektóre różne odcienie jej włosów.
Zdjęcie za pośrednictwem BioWare/Electronic Arts.
Oznacza to, że każdy zasób Strand Hair zajmuje dużo pamięci, co wpływa na ilość pamięci, którą można przydzielić innym zasobom. Strażnik Zasłony renderuje na ekranie mniej postaci na raz niż większość tytułów sportowych, ale wciąż jest wiele zasobów walczących o cenną pamięć. Renderowanie postaci gracza i „pełnego pola” obserwujących wiąże się ze stałym kosztem procesora graficznego wynoszącym 128 MB.
Na szczęście włosy potrzebują „mniej pamięci”, aby zajmować mniej pikseli, a koszt można dynamicznie dostosowywać w zależności od tego, co jest w scenie. Ceny Xbox Sereis X i PlayStation 5 najwyraźniej oscylują wokół 400 MB, choć wysokiej klasy komputery PC mogą pracować nawet do 600 MB. Xbox Series S i komputery z niższej półki mogą w razie potrzeby zamienić zasoby Strand Hair na zasoby „Card Hair”, które zajmują mniej pamięci i umożliwiają prawidłowe renderowanie innych zasobów o wysokiej jakości.
„Aby mieć pewność, że spełnimy nasze wymagania dotyczące czasu klatek, ustaliliśmy maksymalny budżet renderowania włosów na konsolach na 6,5 ms przy 30 FPS (czas klatek 33,3 ms) i 3 ms przy 60 FPS (czas klatek 16,6 ms) z zestawami ośmiu pasm włosów na ekranie” – napisał Power. „Nasza funkcja kontroli rozdzielczości włosów dostosuje rozdzielczość w zakresie minimalnej i maksymalnej rozdzielczości w oparciu o ustawienia upsamplera i DRS, utrzymując koszty włosów proporcjonalne do tych celów. Jest to ważne, ponieważ włosy nie są poddawane próbkowaniu w górę, jak wspomniano wcześniej, i nie będą zmniejszyć obciążenie dzięki tym technologiom.”
Renderowanie włosów wykonywane na GPU zwykle waha się w okolicach 2 ms, z pewnymi skokami do 5 ms „w zależności od złożoności włosów”.
Piękno jest w oku patrzącego
Imponująca technologia włosów BioWare rzuca światło na to, jak walka o realistyczną grafikę wysokiej jakości spowodowała zapotrzebowanie na skomplikowane rozwiązania umożliwiające renderowanie pozornie zwyczajnych działań i obiektów. Przeciętny gracz nie będzie specjalnie zastanawiał się nad tym, że postacie w Thedas nagle mają znacznie dłuższe włosy – ale ten, który chciał w pełni żyć Fantazja Ariany Grande teraz mają taką możliwość.
Choć dalsze ulepszenia graficzne mogą być coraz bardziej niewidoczne dla oka, nie będą wymagały mniej ciężkiej pracy niż ta, którą pokazali Power, Kurowski i ich współpracownicy.