Bloom w grach – co to jest i jak działa?

Bloom w grach jest obecny od stosunkowo niedawna – od pierwszego jego wykorzystania w grze Ico minęło zaledwie 20 lat. Jego użycie było raz lepsze, raz gorsze, jednak stał się ważnym elementem oprawy w większości tytułów. Co jednak kryje się za pojęciem „bloom”, jak działa i jaką funkcję pełni?

Bloom w grafice 3D należy do grupy postprocesów, czyli efektów nakładanych na wcześniej wyrenderowaną przez kartę graficzną klatkę obrazu. Samo pochodzenie charakterystycznej poświaty ma swoje korzenie w fotografii i filmie (albo w brudnych okularach, jest też taka możliwość). Efekt Bloom, chociaż raczej niepożądany, każdy z was może zaobserwować, próbując zrobić zdjęcie telefonem jasnemu, dobrze oświetlonemu obiektowi na ciemnym tle z dodatkowo nieco przesadzonym ustawieniem ISO lub na odwrót – ciemnemu obiektowi stojącemu na jasnym tle. Mamy wtedy do czynienia ze światłem odbitym „wylewającym się” poza obiekt, który fotografujemy. Z własnego doświadczenia mogę powiedzieć, że podobny efekt można uzyskać, próbując spawać bez użycia odpowiedniej przyłbicy/okularów, aczkolwiek nie polecam, nawet w celach naukowych.

Bloom w grze The Elder Scrolls: Oblivion.
Bloom w grze The Elder Scrolls: Oblivion.

Bloom w grach – co to?

Żeby zrozumieć lepiej, czym jest Bloom w grach, warto skrótowo opisać sobie, jak generowany jest obraz. Przede wszystkim na starcie trzeba wyjaśnić, że to, co widzimy na monitorze, jest po prostu kolejnymi obrazami 2D wyświetlanymi w bardzo szybkim tempie (przyjmijmy, że jest to 60 „ramek” na sekundę), a postrzeganie efektu 3D i związanej z nim głębi to jedynie zasługa naszego mózgu odpowiednio interpretującego cienie i umiejscowienie obiektów względem siebie. Żeby wygenerować jedną taką klatkę obrazu dwuwymiarowego, karta graficzna musi najpierw przeliczyć umiejscowienie wszelkich obiektów w przestrzeni trójwymiarowej – do tego celu używa współrzędnych vertexów, czyli punktów, które są wierzchołkami trójkątów, z których składają się obiekty, z których to z kolei składa się cała scena. Wydaje się w miarę proste, prawda? Cóż, teoretycznie tak, jednak trzeba pamiętać, że we współczesnych grach sam model głównego bohatera potrafi składać się z ponad 100 tys. trójkątów. Dodajmy do tego budynki (czasem podatne na niszczenie), roślinność, teren, przeciwników i masę obiektów dekoracyjnych, z czego każdy składa się z kolejnych tysięcy wielokątów stale zmieniających swoje położenie względem gracza i kamery, a na koniec pomnóżmy razy wyżej wspomniane 60 klatek na sekundę. Obliczenia, które wykonuje karta graficzna, są na abstrakcyjnym poziomie, a to dopiero początek drogi obrazu na monitor.

Klatka z GTA V ukazująca siatkę geometrii sceny.
Klatka z GTA V ukazująca siatkę geometrii sceny.

Jak powstaje efekt Bloom w obróbce postprocesowej

Bo wygenerowaniu podstawowej geometrycznej siatki nakładane na nią są tekstury zawierające wiele informacji: normal mapy odpowiedzialne za określenie nierówności na powierzchni danego obiektu czy zachowanie światła odbitego od niego, lightmapy odpowiedzialne za „cieniowanie” obiektów statycznych etc. Dopiero taki surowy, wygenerowany obraz w postaci pojedynczej klatki 2D (dla tego przykładu w rozdzielczości 1920 × 1080) może wylądować w buforze karty graficznej, gdzie jest poddawany dalszej obróbce za pomocą efektów postprocesowych (aplikowanych właśnie po wyrenderowaniu surowego obrazu) – czyli na przykład efektu Bloom. Przetwarzaniu musi zostać poddany każdy z wyrenderowanych 2 073 600 pikseli składających się na pojedynczą ramkę. Bardzo mocno upraszczając sytuację, tę porównać można ponownie do robienia zdjęć – aparat uchwytuje scenę 3D i produkuje z niej obraz 2D. Postprocessing natomiast jest w tym wypadku aplikowaniem odpowiednich filtrów i efektów na przykład w Photoshopie.

Oczywiście w tym tekście koncentruję się wyłącznie na Bloomie, ale warto pamiętać, że jest on jednym z wielu efektów, z których korzystają gry. W pewnym momencie w historii elektronicznej rozrywki stał się on jednak swojego rodzaju trendem, za jakim ślepo podążali wszyscy, nie zważając na to, czy wykorzystanie go ma sens.

Tron 2.0 - początek mody na bloom.
Tron 2.0 – początek mody na Bloom.

Trochę historii – gry wykorzystujące ten efekt

Jeśli kiedyś graliście w coś i mieliście wrażenie, że wszystko jest skąpane w miękkim świetle, a patrzenie na jasne obiekty chce wam wypalić oczy, to najprawdopodobniej graliście w Obliviona był to właśnie efekt Bloom. Generalnie samo jego założenie było dobre, miało wstępnie na celu upodobnienie zachowania światła w grafice 3D do tego, które możemy zaobserwować na co dzień, jednak w pewnym momencie wymknęło się spod kontroli. Za kamień milowy w wykorzystaniu Blooma można uznać zapomnianą już dawno grę Tron 2.0, z której screenshot możecie zobaczyć nieco wyżej. Dobrze ukazuje on problem, który trawił wiele gier po 2004 roku – brak umiaru. Oprócz Obliviona najbardziej znane przykłady bloomowego szaleństwa to na przykład NFS: Most Wanted z 2005 roku, Call of Duty 3, Halo 3, Syndicate czy nasze rodzime Two Worlds. Są to przykłady najbardziej jaskrawe, jednak nie jedyne, bo wystarczy wspomnieć chociażby Battlefielda 3 lub Battlefielda 4, w których nadal czuć echa minionych czasów, mimo że powstały lata później.

Bloom w grach a wydajność

Jeśli chodzi o postprocesy, potrafią one wpływać na wydajność w różnym stopniu i Bloom w grach w tym wypadku jest jednym z mniej kosztownych efektów. Jego głównym zadaniem jest zidentyfikowanie w ramach wyrenderowanej klatki 2D najjaśniejszych punktów i lekkie ich rozmycie, aby stworzyć wokół nich efekt poświaty – w porównaniu do na przykład Anti-aliasingu jest to dla karty graficznej spacerek. Czy to znaczy, że zawsze warto go używać? Oczywiście nie, czego najlepszym dowodem są przykłady, które przytoczyłem wyżej. Niestety nie każda gra daje możliwość wyłączenia Blooma, zaimplementowany jednak dobrze i z wyczuciem (Firewatch chociażby) potrafi wzbogacić oprawę i być przyjemny dla oka. Oczywiście tak, jak w wypadku wielu innych elementów oprawy graficznej gier, ocena zastosowania poszczególnych efektów jest czysto subiektywna i nic nie jest wprost „dobre” lub „złe”, jednak zgodzimy się chyba, że co za dużo, to niezdrowo. Prawda?

UWaga! Gorące informacje!