silniku gier unreal engine 4 bazujących na technologiach
TRANSCRIPT
![Page 1: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/4.jpg)
Raytracing
![Page 5: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/6.jpg)
Dolina niesamowitości
![Page 7: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/13.jpg)
3. Tworzenie shaderów - Blender
Blender - podstawowy shader Blender - shader szkła
![Page 14: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/15.jpg)
5. Tworzenie shaderów - Unreal Engine
Unreal Engine - podstawowy shader
![Page 16: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/16.jpg)
Unreal Engine - podstawowy shader + Parallax occlusion mapping
![Page 17: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/17.jpg)
Unreal Engine - shader szkła
![Page 18: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/18.jpg)
6. Konfiguracja oświetlenia
Blender - konfiguracja HDRi
![Page 19: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/19.jpg)
Unreal Engine - konfiguracja HDRi
![Page 20: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/20.jpg)
Aktualny progres
![Page 21: silniku gier Unreal Engine 4 bazujących na technologiach](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/25.jpg)
Ź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](https://reader033.vdocuments.mx/reader033/viewer/2022042403/625d93dedf578a624420ba2b/html5/thumbnails/26.jpg)
Dziękuję za uwagę!