Wersja 1.0: Optymalizacja grafiki i ustawienia
przez Bin4r · Opublikowane
Prosto z portalu WoT 😉
Przeniesienie się na nowy silnik był długim i złożonym procesem, ponieważ postawiliśmy sobie dwa cele: zapewnić, że grafika będzie nie tylko poprawiona, ale też zoptymalizowana. W wersji 1.0 od razu zauważycie poprawę jakości grafiki i zaczniecie się zastanawiać, jak bardzo obciąży ona Wasze komputery. Cóż, dzięki ciężkiej pracy pełnej poświęceń zdołaliśmy utrzymać minimalne i rekomendowane wymagania systemu na niezmienionym poziomie.
Co to oznacza? Jeśli gracie na starszym sprzęcie (a w grę grano na komputerach sprzed dekady), nie musicie się obawiać – nadal będziecie mogli cieszyć się poprawioną grafiką. Aby wykrzesać maksimum ze swojego sprzętu, koniecznie po uruchomieniu gry włączcie opcję auto detekcji, ale więcej o tym później…
Jak udało się utrzymać wymagania systemowe na tym samym poziomie?
Wirtualne tekstury
Teraz możemy powyliczać: skomplikowane przejścia tekstur, zapisywać ich wynik jako wirtualną teksturę i wyświetlać ją tylko wtedy, gdy to jest potrzebne. Poza tym już nie musimy obliczać mieszania materiałów na etapie kafelkowania. Używamy więc kafelkowania (kompozycji dopasowanych do siebie kształtów) bez znaczącego spadku wydajności.
JAK TO DZIAŁA?
Teren sam w sobie jest bardzo złożony; składa się z wielu materiałów: trawy, piasku, kamieni… Sami wiecie. W najbardziej złożonych przypadkach łączymy ze sobą dla każdego piksela osiem materiałów w każdej klatce, co znacząco obciąża GPU. Poprzednio teren był renderowany dla każdej klatki z osobna.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Woda
Poprzednio wykorzystywaliśmy „siłowe” rozwiązanie do tworzenia odbić w wodzie, kopiując rendering obszaru sceny, z którego pochodziło odbicie. Czy teraz jest to najbardziej efektywny sposób? Niezupełnie. Nowy silnik graficzny pozwala nam na więcej dzięki technice Screen Space Reflection.
JAK TO DZIAŁA?
Łączymy Screen Space Reflection z próbkami poprawek paralaksy przechowującymi uprzednio wyliczone dane dla odbić. Dodatkowo to podejście zwiększa szczegółowość powierzchni wody, gdyż teraz w odbiciu widać dokładnie widoczne przedmioty, a nie ich przybliżone kształty.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Adaptacyjne cieniowanie
Jest to powszechnie znany fakt, że wyliczanie cieniowania to zadanie w renderowaniu grafiki wymagające najwięcej zasobów. Ale nie u nas! Wykorzystujemy podejście podobne do wirtualnych tekstur, by uniknąć dodatkowych obciążeń i spadków wydajności.
JAK TO DZIAŁA?
Większość cieni jest wyliczana już na początku, gdy mapa jest wgrywana, a następnie jest tylko przeliczana przy zmianie poziomu. Daje to znaczący skok w wydajności i pozwala na tworzenie poprawnie oświetlonych obiektów nawet na słabszym sprzęcie.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Optymalizacja interfejsu użytkownika:
Interfejs przeszedł znaczące poprawki, które zmniejszyły jego zapotrzebowanie na pamięć i spadek wydajności.
JAK TO DZIAŁA?
Elementy sceny 3D przykrywane przez nieprzezroczyste elementy interfejsu (minimapę i panel uszkodzeń) nie są już renderowane, co zmniejsza obciążenie karty graficznej.
Mamy dla was kilka wskazówek:
- Zwiększcie rozmiar minimapy i innych elementów interfejsu, które nie są przezroczyste.
- Przykrycie nimi obszaru gry zmniejszy liczbę renderowanych obiektów. W niektórych przypadkach, w zależności od konfiguracji sprzętu, może to zwiększyć liczbę klatek na sekundę.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Poprawione obliczenia gąsienic czołgu
Dotychczas fizyka gąsienic po stronie klienta była wyliczana osobno dla każdego wierzchołka trójkątów opisujących gąsienicę. Sama liczba obliczeń wynosiła ponad 10 000 operacji. I to tylko dla jednego śladu czołgu. Oczywiście nie miało to wiele wspólnego z wydajnością.
CO SIĘ ZMIENIŁO?
Teraz ruch gąsienicy jest liczony dla każdego jej segmentu (średnio około 100 obliczeń na ślad czołgu). Ta optymalizacja poprawia wydajność, jednocześnie nie pogarszając jakości wizualnej. Karty graficzna jest mniej obciążona, a ruch gąsienic nadal jest naturalny i realistyczny.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Zaawansowany system modelowania drzew
Aktualizacja 1.0 wprowadza billboardowy system renderowania drzew.
JAK TO DZIAŁA?
Drzewa są tworzone jako billboardy (płaskie prostokąty z teksturami) wraz ze wszystkimi informacjami dotyczącymi głębi i oświetlenia. Dzięki temu możemy włączać drzewa do billboardów znajdujących się znacznie bliżej obserwatora (a Wy nie zauważycie żadnej różnicy!).
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Przełączanie poziomu detali
Poziom detali jest dopasowany w zależności od ustawień oraz odległości między kamerą a obserwowanymi obiektami. Im jesteście bliżej obiektu, tym bardziej szczegółowo jest renderowany. Jeśli się oddalicie, szczegółowość stopniowo maleje. W ten sam sposób każde pęknięcie w murze nie będzie rysowane, jeśli nie można go dostrzec.
CO SIĘ ZMIENIŁO?
Wraz z przejściem na nowy silnik, dopasowanie zachodzi płynnie i trwa bardzo krótko, więc nie ma przeskoków pomiędzy różnymi poziomami szczegółowości. Co więcej, nie zabiera to dodatkowych zasobów.
Zoptymalizowane renderowanie cząsteczek
Pamiętacie, jak kilka jednoczesnych eksplozji powodowało spadek płynności, albo, co gorsza – zamrożenie gry? Upewniliśmy się, że to już się nie powtórzy, dodając rendering cząsteczek w różnych rozdzielczościach.
JAK TO DZIAŁA?
W tej chwili, gdy wystąpi kilka eksplozji, efekty wysokiej rozdzielczości są wyświetlane tylko wzdłuż krawędzi, a wnętrze animacji są renderowane w niższej rozdzielczości. To przejście jest praktycznie niezauważalne, ale pozwala znacząco poprawić wydajność w krytycznych momentach.
Ź: Portal EU