Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

HDR Rendering Pipeline

Podobne prezentacje


Prezentacja na temat: "HDR Rendering Pipeline"— Zapis prezentacji:

1 HDR Rendering Pipeline
Michał Drobot Technical Art Director Reality Pump

2 Plan wykładu Ludzka percepcja Metody rejestracji / wyświetlania HDR
HDR inputs Exposure Tone Mapping Rendering Pipeline

3 Ludzka percepcja

4 Oko Obiektyw działa podobnie jak ludzkie oko
Stąd zamiennie stosowane rozwiązania Najważniejsze elementy dla optyki Tęczówka – reguluje wymiar źrenicy – przesłona, reguluje ilość światła dochodzącego do soczewki Soczewka – regulacja ostrości Siatkówka – receptory światłoczułe – pobudzane przez światło rzutowane przez soczewkę, zamieniają impulsy świetlne na elektryczne/nerwowe

5 Oko Tęczówka Ustala ekspozycje sceny
Działa jak przesłona – powłoka mięśniowa, poprzez skurcze regulująca wielkość źrenicy Źrenica może zmienić swoja wielkość nawet siedmiokrotnie Około 6.5 F-Stops (1.6 mm – 8mm dla ciemności) Ustala ekspozycje sceny Przy dużej jasności zwęża się, przy niskiej rozszerza Odpowiada częściowo za akomodacje jasności oka (efekt natychmiastowy)

6 Oko Soczewka W stałej odległości od siatkówki
Może zmieniać swój kształt Umożliwia prawidłowe ustawienie ostrości Wraz z tęczówka wpływa na efekt głębi ostrości (częściowej nieostrości sceny w zależności od różnic w odległości względem punktu ustalonej ostrości) Analogiczne do obiektywu aparatu

7 Oko Siatkówka Czopki Receptory fotochromatyczne odpowiadające za widzenie kolorów przy dobrym oświetleniu Widzenie fotopowe Ulega pogorszeniu przy zbyt intensywnym świetle Utrata ostrości, artefakty Trzy rodzaje czopków o różnej charakterystyce widmowej 6 mln Mała czułość Szybka reakcja na światło Wysoka ostrość, duża rozdzielczość (duże skupienie w środku pola widzenia – plamka żółta) Czułość na światło bezpośrednie w wąskim polu widzenia

8 Oko

9 Oko Siatkówka Pręciki Receptory fotochromatyczne odpowiadające za postrzeganie ruchu oraz widzenie przy niskiej intensywności światła, monochromatyczne Widzenie skotopowe Jeden rodzaj – widzenie w skali szarości 120 mln Duża czułość Wolna reakcja na światło Niska ostrość Czułość na światło rozproszone w szerokim polu widzenia

10 Oko

11 Oko Siatkówka W wyniku zmian chemicznych pręciki jak i czopki mogą zmienić swoją charakterystykę reakcji na światło – zakres widzialnego światła Akomodacja jasności Kontrast statyczny 1:100 – 1:1000

12 Oko Percepcyjnie Dynamiczny kontrast 1:1 000 000 (20 F-Stops)
Skala logarytmiczna SB = log(I) – SB – subiektywna jasność , I intensywność światła Dynamiczny kontrast 1: (20 F-Stops) Uzyskany przez źrenice oraz reakcje chemiczne siatkówki Spadek ostrości oraz postrzegania koloru wraz ze spadkiem intensywności światła Efekt rozmycia ruchu wynikający z czasu akomodacji do zmian, pamięci bodźca oraz opadu natężenia sygnału

13 Oko Ba – poziom adaptacji jasności Bb – poziom subiektywnej czerni
Bc – poziom subiektywnej bieli

14 Metody rejestracji Kontrast słonecznego dnia 50 000:1
Możliwy kontrast Film fotograficzny – 128:1 Wyświetlacz LCD :1 DSLR Camera :1 Kontrast słonecznego dnia :1 Statyczny kontrast oka :1 Dynamiczny kontrast oka :1

15 Metody rejestracji Nowsze sensory o większej dynamice
Rejestracja możliwa przez Wielokrotne rejestracje o zmiennej ekspozycji AEB – Automatic Exposure Bracketing Seria zdjęc -4EV -2EV 0 2EV 4EV … Łączenie danych z zarejestrowanych obrazów Nowsze sensory o większej dynamice Uzyskujemy obraz HDR – High Dynamic Range Zapisany w odpowiednim formacie

16 Metody wyświetlania Istniejące wyświetlacze Maja za małe możliwości techniczne Typowy kontrast 1000:1 ~10 000:1 – poprzez manipulacje jasnością podświetlenia CFL / LED Jak wyświetlić dane o dużym kontraście na urządzeniu o niskim kontraście? Jak najlepiej percepcyjnie

17 Metody wyświetlania Kompresja dynamiki Tone mapping Redukcja kontrastu
Dowolny obraz HDR ma zmniejszony kontrast Utrata dynamiki percepcyjne i jakości Kompresja dynamiki Kompresja liniowa Kompresja S-Krzywą Utrata detalu Tone mapping Operatory oparte na działaniu oka mające za zadanie inteligentnie skompresować obraz

18 Metody wyświetlania Zdjęcia o różnej ekspozycji Manipulacje kontrastem
Efekt Tone mappingu Obrazy z Wikipedii

19 Metody wyświetlania

20

21

22

23

24

25

26 Metody wyświetlania Kompresja dynamiki Tone mapping Redukcja kontrastu
Dowolny obraz HDR ma zmniejszony kontrast Utrata dynamiki percepcyjne i jakości Kompresja dynamiki Kompresja liniowa Kompresja S-Krzywą Utrata detalu Tone mapping Operatory oparte na działaniu oka mające za zadanie inteligentnie skompresować dynamikę

27 HDR Dawniej podstawowe formaty graficzne były 8 – bitowe
W związku z ograniczoną liczbą wyświetlanych kolorów okazywały się w pełni wystarczające Zakładano wyświetlacze LDR – o zakresie jasności 0-1 wyznaczonym przez intensywność trójki RGB W wyniku tych założeń zapisywano obrazy o niskim kontraście globalnym 24 bit RGB – kontrast 255:1

28 HDR 8 bitowe formaty Żeby czarne było czarne Białe było białe
Utrudniają manipulację (banding, artefakty, brak danych) Uniemożliwiają zapis pełnego kontrastu sceny Uniemożliwiają re-ekspozycję oraz ponowne wywołanie Nie obsługują nadchodzących wyświetlaczy HDR Potrzeba pracy, obróbki oraz renderowania w formatów HDR Po co HDR ? Żeby czarne było czarne Białe było białe A detale były widoczne i tu i tu

29 HDR

30 HDR

31 HDR

32 HDR Szukamy formatów HDR Małych pamięciowo
O dużej użytecznej rozpiętości tonalnej Nie wykazująca bandingu oraz artefaktów Z możliwością blendingu Szybkich w obsłudze

33 HDR Float 16 Format zmiennoprzecinkowy 64bit
Wystarczająca precyzja w praktycznie całym zakresie 30 F-Stops Rozpiętość wystarczająca do bezksiężycowej nocy jak i słonecznego dnia 2x wolniejszy w odczycie od 32bitowych Problematyczny alpha blending High Precision Blending – drogi, obsługiwany obecnie przez ‘większość GPU’ (X360 OK , PS3 NIE OK)

34 HDR RGBE RGB + E – eksponenta wspólna dla wszystkich RGB
8 bit mantyssy dla RGB i 8 bit eksponenty Format całkowity 32bit 250 F-Stops Błędy filtrowania Brak sprzętowego blendingu Możliwy ręczny Brak precyzji przy saturacji pojedynczego koloru

35 HDR

36 HDR Bez kompresji +11 F-Stops RGBE + 11 F-Stops

37 HDR RGBM RGB + M – RGB + mnożnik Format całkowity 32bit
5-9 F-Stops w zależności od zakresu mnożnika Błędy filtrowania, aczkolwiek akceptowalne Brak sprzętowego blendingu Możliwy ręczny Możliwość kompresji DXT5 Może służyć do zapisu i authorowania textur

38 HDR 8-bit PWL gamma 0 stops 10-bit float: 7e3 3 stops
8-bit RGBM * 5 stops* 10-bit float: 6e4 10 stops 16-bit float: 10e5 30 stops 8-bit RGBE* 256 stops* 32-bit float: 23e stops

39 HDR Input Renderując do formatu HDR Możemy używać zwykłych tekstur
Możemy używać textur HDR Zawierające intensywność światła Lightmaps Enviromental Maps Reflection Maps Skybox

40 HDR Input Używamy prawdziwej akumulacji światła
Światła mogą pracować w skali logarytmicznej Percepcyjna skala intensywności światła dla oka ludzkiego Skalach fizycznych : Lux, Lumen, Kandel Dotychczasowy skalach liniowych lecz o sumie >1.0 W efekcie uzyskamy obraz o znacznie większej dynamice niż skala 0-1 W fotorealistycznym oświetleniu powinniśmy zadbać o odwzorowanie realnego kontrastu między oświetleniem Noc:Dzień – 1:50 000

41 HDR Input Obraz renderujemy do odpowiedniego formatu z użyciem odpowiedniej kompresji bądź kodowania Uzyskany obraz podlega dalszej obróbce w celu wyświetlenia we wskazanym zakresie przy odpowiedniej kompresji dynamiki W realistycznym modelu HDR chcemy zachować charakterystykę ludzkiego oka Akomodacja jasności (ekspozycji) Zachowanie odpowiedniego kontrastu Ewentualnie chcemy posiadać ręczną kontrolę nad parametrami wyświetlania

42 HDR Ekspozycja Ekspozycja jest to poziom naświetlenia sceny
Umożliwia kontrolę jasności Low-key – wysoki kontrast, więcej tonów ciemnych High-key – zmniejszony poziom kontrastu oraz cieni, ogólnie jasny obraz Key – kontroluje poziom jasności Zachowuje dynamikę (zmienia zakres kompresowanych danych) Jej regulacja może służyć do symulacji akomodacji jasności oka

43 HDR Ekspozycja Kontrola auto ekspozycji
Zakładamy że chcemy aby nasza scena miała zawsze określona średnią jasność podczas wyświetlania (np – reflektywność ludzkiej skóry) newExp = oldExp * desiredIntensity/frameIntensity frameIntensity = meanAvg(all_pixels) Można obliczyć poprzez chain GPGPU frameIntensity = exp(meanAvg(log(all_pixels))) Interesuje nas zmiana w czasie targetExp = oldExp * desiredIntensity/frameIntensity newExp = (oldExp,targetExp,speed) Ekspozycje są dynamiczne ze względu na klatki

44 HDR Mapowanie tonalne Ma za zadanie odzwierciedlić reakcję oka na światło Zachowanie kontrasty Zachowanie pręcików i czopków Zachowanie krzywej Różne operatory różniące się jakością, dokładnością, poziomem kontroli jak i odzwierciedleniem ludzkiego oka Wynikiem operatora ma być przeskalowana wartość do zakresu możliwego do wyświetlenia : 0-1

45 HDR Mapowanie tonalne Operator liniowy L = Lp / (1+Lp)
L – luminancja oczekiwana Lp – luminancja pixela Powoduje utratę kontrastu Mieści cały zakres w 0-1

46 HDR Mapowanie tonalne Operator średniej L = expKey * Lp / LpAvg
L – luminancja oczekiwana Lp – luminancja pixela LpAvg – średnia luminancja klatki expKey – klucz luminancji Powoduje utratę kontrastu Mieści cały zakres w 0-1

47 HDR Mapowanie tonalne Operator punktu białego
L = [Lp * (1 + Lp/LpMax^2)] / (1 + Lp) L – luminancja oczekiwana Lp – luminancja pixela LpMax – punkt biały, najjaśniejszy pixel Skaluje wg punktu białego, wzrost kontrastu Zachowuje kontrast Mieści cały zakres w 0-1

48 HDR Mapowanie tonalne Operator logarytmiczny
L = log(1 + Lp) / log(1 + LpMax) Skaluje wg punktu białego, wzrost kontrastu Zachowuje percepcyjna krzywa oka Mieści cały zakres w 0-1

49 HDR Mapowanie tonalne Pelne wyliczenie laczy w sobie operacje ustalenia ekspozycji wraz z pozniejszym uzytym operatorem

50 Auto Exp tonal Mapping Reinhard1: average_luminance = exp(1/n * sigma(log(delta + pixel_luminance))); exposure = image_key / average_luminance; luminance_scaled = exposure * color; tone_mapped = luminance_scaled / (1.0 + luminance_scaled); Reinhard2: tone_mapped = (luminance_scaled * (1.0 + luminance_scaled / (luminance_white^2))) / (1.0 + luminance_scaled); Exponential: Reinhard1 lub Reinhard2 tone_mapped = exp(-exposure * color);

51 HDR Pipeline Przed krokami zmian dynamiki powinnismy przeprowadzic caly postprocessing, rowniez w formacie HDR Mozemy uzyc kilku efektow imitujacych zachowanie ludzkiego oka Blooming DOF Motion Blur Dodatkowe efkety kamery Glare Flare

52 HDR Pipeline Blooming Symuluje efekt przepalenia jaskrawych kolorow
Najczesciej uzyskiwany Wybierz ze sceny bardzo jasne pixele (np >1.0) Przeskaluj do zakresu 0-1 Blur Kompozycja z oryginalnym obrazem poprzez operacje Add Mozna przeprowadzic obliczenia fizyczne Odpowiednie krzywe transformacji i uzyskania ‘przepalonych’ miejsc Dobor funkcji blur kompozycja

53 HDR Pipeline

54 HDR Pipeline

55 HDR Pipeline

56 HDR Pipeline DOF Glebia ostrosci
Efekt rozmazania obrazu wg zadanej funkcji odleglosci pixela w swiecie od ustalonego puntku ostrosci

57 HDR Pipeline Motion Blur Glare Flare Efekt rozmazania ruchu
Efekt jasnych plam / duchów na obrazie Wystepuje przy widzeniu skotopowym Flare Symulacja efektu lens flare z obiektywu

58 HDR Pipeline HDR Textures HDR Post Buffers HDR Lights HDR Buffer
Tonal Mapping LDR Textures HDR Bloom Buffer Luminance Calculation Auto Exposure Final Resolved LDR buffer

59 Podsumowanie For more information contact me hello@drobot.org
Slides will be available at Drobot.org

60 Questions ?


Pobierz ppt "HDR Rendering Pipeline"

Podobne prezentacje


Reklamy Google