Panel Logowania

PBR(Phisically Based Rendering) oraz Eevee

napisał : maniek
21
stycznia
2018
Chciałbym Wam przedstawić najnowszy pomysł Blender Fundation, którym jest silnik renderujący PBR(Physically Based Rendering) w czasie rzeczywistym, o nazwie kodowej - Eevee.
tagi : pbr physically based rendering eevee viewport bge upbge

W nadchodzącej nowej wersji Blendera 2.8, na którą już jakiś czas czekamy, znajdziemy dużo nowości i zmian. Nic tak jednak nie rozpala myśli, jak nowy w pełni funkcjonalny silnik PBR do wizualizacji sceny w czasie rzeczywistym. Pomysł powstał w 2016r. i był luźną propozycją, aby Blender posiadał interaktywny widok z jakością renderowania na poziomie PBR. Rozwój w tym temacie przeszedł najśmielsze oczekiwania - a my widzimy wyniki tych prac w licznych demach. Ale po kolei...

PBR (Phisically Based Rendering)

Rozszyfrowując nazwę - jest to rendering bazujący na fizyce, czyli fizycznym zachowaniu się światła i materiałów. Algorytm ten pokazuje jak zachowują się fotony na powierzchni obiektów, a komputery w tych czasach są na tyle mocne obliczeniowo, że to pozwala odejść od przestarzałych sposobów oświetlenia i w znacznej części zastąpić czymś bardziej zaawansowanym - czyli PBR. Metoda ta jest prostsza dla grafika, a przede wszystkim daje znacznie bardziej realistyczne i naturalne wyniki niż dotychczasowe techniki.
Najważniejszą zmianą w tej technice jest użycie i działanie tekstury Specular. Dotychczas definiowała ona jasność odbicia tekstury na obiekcie, a w nowym systemie renderingu PBR na teksturze glossines definiowane jest skupienie odbić środowiska zewnętrznego. Dzięki tej teksturze możemy sterować jak wyraźnie mają się odbijać otaczające obiekty środowiska, co oznacza, że możemy mieć bardzo rozmyte odbicie lub ostre jak lustro. Zaletą PBR jest to, że tworząc materiały nie będziemy musieli zgadywać, jakie informacje powinna mieć tekstura tak, żeby materiał wyglądał np. jak metal lub niemetal. Cechy fizyczne tych materiałów dawno zostały zmierzone ze świata realnego. Dzięki temu będziemy mieli gotowe materiały metali oraz innych powierzchni, a co najważniejsze, dany obiekt będzie realistycznie wyglądał w każdych warunkach oświetleniowych.

BGE a PBR

Oczywiście jak technika PBR ujrzała światło dzienne, można było się domyślać, że będą próby zaimplementowanie tego w BGE. A właściwie w UPBGE. Dzięki developerom, którzy rozwijają BGE i mamy najnowsze poprawki, doczekaliśmy się implementacji PBR w UPBGE , czego próżno szukać w zwykłym BGE. Niestety, dużo widziałem materiałów PBR fake'owych, czyli odbicia nie były realistyczne. Poniżej plik demo pokazujący moc PBR w BGE :

Plik : BGE_PbrShader.blend


Grzebiąc głębiej w internecie i mając na uwadze, że UPBGE wprowadziło Realtime Cubeprojection, nie chciało mi się wierzyć, że nie został jeszcze utworzony materiał PBR z odbiciami w czasie rzeczywistym. No i udało się... znalazłem plik, który to realizuje :

Plik : UbberCubber2.blend

Jak widzimy, materiał jest utworzony za pomocą Nodów, a dorzucając dodatkowe obiekty do sceny, rzeczywiście możemy zobaczyć jego odbicie w obiekcie testowanym.
Miejmy nadzieje, że developerzy upBGE staną na wysokości zadania, i zoptymalizują PBR, dzięki czemu BGE, będzie mógł konkurować z Unity czy UE4, przynajmniej w temacie materiałów.

EEVEE

Rozwój technologi PBR, jak i ogólnie panujący trend branży gier, zainicjował potrzebę obsługi high-end'owej grafiki w połączeniu z responsywnym widokiem. Extra Easy Virtual Enviromnet Engine (Eevee) jest innowacyjnym sinikiem PBR renderującym w podglądzie(viewport) w czasie rzeczywistym, wraz z obsługą wolumetryki, odbić i załamań, cieniami, efektami postprocessing, ambient occlusion, depth of field, camera motion blur i bloom.
Problem z dotychczasowymi silnikami renderującymi jest taki, że jeżeli użyjesz na swojej scenie wolumetryki, świateł, cieni, to efekty zobaczysz dopiero po długim czasie renderingu. Dopiero wtedy okazuje się, że przykładowo użyłeś za dużych wartości wstępnych i trzeba je zmniejszyć, ale nie możesz tego zrobić w czasie procesu renderowania. W tym systemie masz podgląd live wszystkich efektów świetlnych i nie tylko - także skraca się czas szlifowania projektu. Ułatwienie będą mieli też developerzy gier. Jako że Blender jest świetnym narzędziem do modelowania obiektów, cenionym przez profesjonalistów, zaistniała potrzeba szybkiego poglądu projektu, gdzie przybliżenie wyglądałby w innych silnikach gry jak Unreal Engine czy Unity.

Eevee a BGE

Tak jak wcześniej pisałem - Eevee jest silnikiem renderującym w czasie rzeczywistym w podglądzie, ale proszę nie mylić tego z BGE.
Niestety silnik Eevee nie budowany jako silnik renderujący w trybie gier. Tworzony jest pod kątem szybkiego podglądu materiałów oraz innych efektów, jak wolumetryczne światłocienie - w viewporcie, aby skrócić czas samego wielogodzinnego renderowania, który może okazać się klapą, bo po prostu źle dobraliśmy parametry.
Problem z BGE jest na tyle złożony, że kod Blendera, jak i kod silnika gry, są tak rozdzielnymi kodami, że aby BGE otrzymało funkcje silnika Eevee należałoby go przeportować do BGE. Sama instytucja Blender Foundation przyznała się, że BGE nie jest w tej chwili kluczowym elementem dla rozwoju. Na szczęście grupa zajmująca się UPBGE rozpoczęła wstępne pracę integracji Eevee z BGE. Nie jest to proces prosty i prawdopodobnie pewne elementy trzeba będzie inaczej rozwiązać niż jak jest w oryginalnym Eevee. Na pewno taki podgląd przyda się wszystkim modelerom, którzy używają blendera jako narzędzia modelującego do innych silników, np. UE czy Unity. No cóż... Należy trzymać kciuki za grupę ludzi odpowiedzialnych za UPBGE, ponieważ prawdopodobnie tylko dzięki nim będziemy mogli się nacieszyć efektami i smaczkami graficznymi w BGE.

Brak komentarzy
Dodaj komentarz
Aby dodać komentarz do newsa, musisz być zalogowany w Serwisie.. Zaloguj