silniku gier Unreal Engine 4 bazujących na technologiach ...

26
Badania fotorealistycznych modeli oświetlenia bazujących na technologiach ray-tracingu w silniku gier Unreal Engine 4 Robert Walicki, promotor dr. inż. Paweł Wojciechowski

Transcript of silniku gier Unreal Engine 4 bazujących na technologiach ...

Page 1: silniku gier Unreal Engine 4 bazujących na technologiach ...

Badania fotorealistycznych modeli oświetlenia bazujących na technologiach ray-tracingu w

silniku gier Unreal Engine 4Robert Walicki, promotor dr. inż. Paweł Wojciechowski

Page 2: silniku gier Unreal Engine 4 bazujących na technologiach ...

Modele oświetleniaIlumination models

Global illuminationObject oriented lighting

Phong illumination model

Blinn-Phong illumination model Ray tracing Radiosity Photon mapping

Page 3: silniku gier Unreal Engine 4 bazujących na technologiach ...

Modele oświetleniowe są używane w programach do grafiki trójwymiarowej do stworzenia efektów

świetlnych w środowiskach wirtualnych, gdzie światło jest określane na podstawie fizyki samego światła. Ich

istnienie ma na celu redukcję obciążenia jednostki przetwarzającej do stopnia, w którym można

wykorzystać model w grafice komputerowej. Istnieją dwa główne modele oświetlenia: Object Oriented

Lighting i Global Illumination. Pierwszy z nich traktuje każdy obiekt w sposób indywidualny, a celem drugiego

jest symulacja interakcji światła między obiektami. W ramach mojej pracy głównym obiektem badań będzie

model zbudowany na podstawie Global Illumination, którym jest ray tracing.

Page 4: silniku gier Unreal Engine 4 bazujących na technologiach ...

Raytracing

Page 5: silniku gier Unreal Engine 4 bazujących na technologiach ...

Ray tracing jest technologią renderowania obiektów, która opiera generowanie obrazów na śledzeniu ścieżki

światła, traktowanej jako piksele na obrazie oraz symulacji efektów powstałych przez interakcje światła z

elementami wirtualnymi. Technika ta umożliwia tworzenie wysokiego poziomu realizmu, dlatego jest

najczęściej wykorzystywana przez grafików i twórców specjalizujących się w fotorealizmie - trendzie

charakteryzującym się wytwarzaniem obrazów i filmów za pomocą technik komputerowych, wyglądających

jak obrazy pochodzące z rzeczywistości, uchwycone za pomocą kamery. Technologia ta aktualnie jest

najczęściej wykorzystywana w aplikacjach, w których tolerowany jest długi czas renderowania tj. Blender,

3DS Max, Cinema 4D, lecz na razie nie radzi sobie w aplikacjach czasu rzeczywistego, dla których szybkość

jest istotna w renderowaniu każdej klatki.

Page 6: silniku gier Unreal Engine 4 bazujących na technologiach ...

Dolina niesamowitości

Page 7: silniku gier Unreal Engine 4 bazujących na technologiach ...

Jednym z paradoksów w grafice komputerowej jest tzw. dolina niesamowitości.

Jest to hipoteza, zgodnie z którą robot, rysunek lub animacja komputerowa wyglądający podobnie jak

człowiek, wywołuje u obserwatorów nieprzyjemne odczucia, a nawet odrazę. Graficy komputerowi oraz

artyści VFX twierdzą, iż rozwój technologii ray tracingu, może doprowadzić do zniwelowania tej przepaści

oraz obalenia hipotezy. W dzisiejszych czasach możemy już wskazać na twory, które przeskoczyły ten

fenomen. Przykładami w kinematografii są film “Logan” lub “Irlandczyk”. Brakuje jednak badań nad tym jak

duży wpływ ray tracing ma na realizm obrazu.

Page 8: silniku gier Unreal Engine 4 bazujących na technologiach ...

Fotorealizm - jak mierzyć ?

● Peak Signal-to-Noise Ratio (PSNR) - stosunek maksymalnej mocy sygnału do mocy szumu

zakłócającego ten sygnał. Miara LB ( lower better - im mniejsza wartość, tym lepiej )

● Mean Squared Error (MSE) - wartość oczekiwana kwadratu błędu. Miara LB

● Structural Similarity Index (SSIM) - metoda przewidująca jakość animacji oraz obrazów bazująca na

strukturze zdjęcia i ułożeniu obiektów. Miara HB (higher better - im wyższa wartość, tym lepiej)

● Haar wavelet-based perceptual similarity index (HaarPSI) - nowatorska i niedroga obliczeniowo miara

podobieństwa do pełnej oceny jakości obrazu referencyjnego. HaarPSI wykorzystuje współczynniki

uzyskane z rozkładu falki Haar do oceny lokalnych podobieństw między dwoma obrazami, a także

względnej ważności obszarów obrazu. Miara HB

Page 9: silniku gier Unreal Engine 4 bazujących na technologiach ...

Wykorzystane oprogramowanie

● Blender 2.82

● Unreal Engine 4.23

● Substance Painter 2.0

● fSpy

● Python

Page 10: silniku gier Unreal Engine 4 bazujących na technologiach ...

Proces badawczy

Preping models in Blender

Texturing in Substance Painter

Applying materials in Blender

Export to Unreal

Setting up lighting system

Render on both engines and compare

Page 11: silniku gier Unreal Engine 4 bazujących na technologiach ...

Framework budowy sceny

Aby obiekty posiadały kształt zgodny z

prawdziwymi przedmiotami muszą posiadać

skomplikowaną strukturę składającą się z

milionów wierzchołków. Takie obiekty

nazywamy obiektami “high-poly” i powstają

one na bazie obiektów z niską gęstością

wierzchołków zwanych obiektami “low-poly”,

które są standardowo wybierane do

optymalizacji renderowania obrazu.

1 . Przekształcenie obiektów low-poly na high-poly

Obiekt low-poly Obiekt high-poly

Page 12: silniku gier Unreal Engine 4 bazujących na technologiach ...

2. Wypalenie tekstur i dopasowanie materiałów

Po stworzeniu obiektów “high-poly” oraz “low-poly” należy

przystosować obiekty do optymalizacji. Jednym z istotnych

kroków jest proces zwany wypaleniem tekstur (map baking).

Proces polega na porównaniu obu obiektów i zapisaniu

danych na temat różnic między nimi w postaci tekstur,

które później zostaną nałożone na obiekt “low-poly”.

Funkcję tą dostarcza program Substance Painter, wraz z

bazą ponad tysiąca materiałów, czyli kompozycji tekstur,

które możemy wykorzystać do tworzenia własnych tekstur.

Wypalenie tekstur

Page 13: silniku gier Unreal Engine 4 bazujących na technologiach ...

3. Tworzenie shaderów - Blender

Blender - podstawowy shader Blender - shader szkła

Page 14: silniku gier Unreal Engine 4 bazujących na technologiach ...

4. Przeniesienie sceny do Unreal Engine - Datasmith

Od wersji Blender 2.8 powstał nowy

plugin, który pozwala przenosić całe sceny

do Unreal Engine 4, zwany Datasmith.

Wspiera przenoszenie obiektów, kamer,

oświetlenia oraz materiałów z pewnymi

ograniczeniami.

Page 15: silniku gier Unreal Engine 4 bazujących na technologiach ...

5. Tworzenie shaderów - Unreal Engine

Unreal Engine - podstawowy shader

Page 16: silniku gier Unreal Engine 4 bazujących na technologiach ...

Unreal Engine - podstawowy shader + Parallax occlusion mapping

Page 17: silniku gier Unreal Engine 4 bazujących na technologiach ...

Unreal Engine - shader szkła

Page 18: silniku gier Unreal Engine 4 bazujących na technologiach ...

6. Konfiguracja oświetlenia

Blender - konfiguracja HDRi

Page 19: silniku gier Unreal Engine 4 bazujących na technologiach ...

Unreal Engine - konfiguracja HDRi

Page 20: silniku gier Unreal Engine 4 bazujących na technologiach ...

Aktualny progres

Page 21: silniku gier Unreal Engine 4 bazujących na technologiach ...

Oryginalne zdjęcie Scena stworzona w Blender 2.82 Scena stworzona w Unreal Engine 4

Page 22: silniku gier Unreal Engine 4 bazujących na technologiach ...

Pomiary

MSE PSNR SSIM HaarPSI

Blender (Cycles)

108.908 27.760 0.702 0.412

Unreal Engine 4.23

106.443 27.859 0.662 0.260

Page 23: silniku gier Unreal Engine 4 bazujących na technologiach ...

Konkluzje z uwzględnieniem pytań

Raytracing ma adekwatny wpływ na jakość oraz osobistą ocenę widza co do realizmu danego obrazu. W silnikach

graficznych czasu estymowanego jest on wykorzystywany w pełni, lecz w silnikach czasu rzeczywistego jest ta

technologia używana tylko do wzmocnienia efektów rastrowych. Pomiary jasno wskazują, iż tylko częściowe

wykorzystanie technologii ma wpływ na estetykę renderu. Jeśli chodzi o korzystanie technologii to jej konfiguracja w

Unreal Engine 4 jest toporna i nieintuicyjna w porównaniu do programu Blender. Na chwilę obecną nie posiada

skompaktowanej metody na stworzenie wiarygodnego oświetlenia opartego na raytracingu, zbyt dużo czynników jest

do ustawienia w celu uzyskania pożądanego efektu, co wpływa na czas pracy developera. Jednakże uważam, że

potrzeba kilka lat pracy nad silnikiem i raytracing będzie w pełni zintegrowany z Unreal Engine.

Page 24: silniku gier Unreal Engine 4 bazujących na technologiach ...

Kontynuacja pracy

● Wytworzenie map Ambient Occlusion

● Wytworzenie dodatkowych obrazów w silniku Blender Eevee oraz Unreal Engine z wyłączonym

raytracingiem oraz porównanie z oryginałem

● Wytworzenie sceny w mikro skali

Page 25: silniku gier Unreal Engine 4 bazujących na technologiach ...

Źródła

● https://docs.unrealengine.com/en-US/Engine/Rendering/RayTracing/index.html● https://docs.blender.org/● http://www.haarpsi.org/● https://www.researchgate.net/publication/220931731_Image_quality_metrics_PSNR_vs_SSIM● https://www.researchgate.net/publication/314115088_A_Study_on_Picture-Color_Similarity_on_Digital_Images

Page 26: silniku gier Unreal Engine 4 bazujących na technologiach ...

Dziękuję za uwagę!