RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Podobne dokumenty
RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

HDR. Obrazy o rozszerzonym zakresie dynamiki

Synteza i obróbka obrazu HDR. Obrazy o rozszerzonym zakresie dynamiki

Plan wykładu. Akcelerator 3D Potok graficzny

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

Filtrowanie tekstur. Kinga Laurowska

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

Antyaliasing w 1 milisekundę. Krzysztof Kluczek

Animowana grafika 3D. Opracowanie: J. Kęsik.

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Karty graficzne możemy podzielić na:

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Formaty graficzne HDR

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Przykładowe pytania na teście teoretycznym

Przetwarzanie obrazów rastrowych macierzą konwolucji

Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38

Architektura systemów komputerowych Ćwiczenie 3

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej

Przekształcenia punktowe

Adam Korzeniewski p Katedra Systemów Multimedialnych

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Grafika Komputerowa. Wykład 8. Przygotowanie do egzaminu. mgr inż. Michał Chwesiuk 1/32

Różne rodzaje efektów

Grafika rastrowa (bitmapa)-

Ćwiczenie 2. Przetwarzanie graficzne plików. Wprowadzenie teoretyczne

Architektura Komputerów

Wykorzystanie grafiki wektorowej do tworzenia elementów graficznych stron i prezentacji

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Podstawy grafiki komputerowej. Teoria obrazu.

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Zasady edycji (cyfrowej) grafiki nieruchomej

Analiza obrazów - sprawozdanie nr 2

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 9. Przetwarzanie sygnałów wizyjnych. Politechnika Świętokrzyska.

Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT

Architektura Procesorów Graficznych

Ćwiczenia z grafiki komputerowej 5 FILTRY. Miłosz Michalski. Institute of Physics Nicolaus Copernicus University. Październik 2015

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30

dr hab. inż. Lidia Jackowska-Strumiłło, prof. PŁ Instytut Informatyki Stosowanej, PŁ

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

Wprowadzenie do technologii HDR

Gry komputerowe: efekty specjalne cz. 2

Metody komputerowe w obliczeniach inżynierskich

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 1 AiR III

Julia 4D - raytracing

Teksturowanie (ang. texture mapping)

Grafika komputerowa i wizualizacja

Formaty plików graficznych

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Dowiedz się, jak tworzyć zapierające dech w piersiach gry 3D i efektowne, trójwymiarowe wizualizacje!

Jak wybrać akcelerator 3D dedykowany aplikacjom typu MCAD?

Grafika komputerowa. Dla DSI II

GRAFIKA RASTROWA. WYKŁAD 2 Oprogramowanie i formaty plików. Jacek Wiślicki Katedra Informatyki Stosowanej

Gimp Grafika rastrowa (konwersatorium)

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

Poniżej pokazane są poszczególne etapy, w nawiasach kwadratowych znajdują się nazwy tekstur, które utworzymy w projekcie, a przy strzałkach nazwy

Operatory mapowania tonów

Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym

Grafika na stronie www

Obróbka grafiki cyfrowej

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Cyfrowe Przetwarzanie Obrazów. Karol Czapnik

SYMULACJA OPADÓW ATMOSFERYCZNYCH I POKRYWY ŚNIEŻNEJ W GENERATORZE OBRAZU JASKIER IG

Grafika komputerowa. Zajęcia IX

OpenGL Światło (cieniowanie)

Dane obrazowe. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Przetwarzanie obrazów wykład 4

Przetwarzanie obrazu

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Techniki wizualizacji. Ćwiczenie 4. Podstawowe algorytmy przetwarzania obrazów

dr inż. Piotr Odya dr inż. Piotr Suchomski

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Technologie Informacyjne

Podstawy grafiki komputerowej

OpenGL Światło (cieniowanie)

CS5 for Photographers

FORMATY PLIKÓW GRAFICZNYCH

Cała prawda o plikach grafiki rastrowej

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ

Teoria światła i barwy

Python: JPEG. Zadanie. 1. Wczytanie obrazka

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu

Automatyczne nastawianie ostrości

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

ECDL/ICDL Edycja obrazów Moduł S4 Sylabus - wersja 2.0

Rozpoznawanie Twarzy i Systemy Biometryczne

Transkrypt:

RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski

Plan wykładu Postprocessing wprowadzenie Rendering do tekstury Obliczenia w GLSL Odczyt transformacji (transform feedback) Pełnoekranowy czworokąt Rozmywanie Gaussowskie, dwuprzebiegowe Filtry bilateralne Wyostrzanie, wykrywanie krawędzi

Plan wykładu c.d. Obrazy o wysokim kontraście (HDR) Tekstury w formacie zmiennoprzecinkowym Formaty EXR i RGBE Przekształcenia kolorów, mapowanie kontrastu Głębia ostrości Zaznaczanie obiektów Promienie słoneczne Efekt flary (lens flare)

Literatura J. L. Mitchell i inni, Advanced Image Processing with DirectX 9 Pixel Shaders, Shader X 2, 2004 J. Novosad, Advanced High Quality Filtering, GPU Gems 2, 2005 S. Paris i inni, A Gentle Introduction to Bilateral Filtering and Its Applications, SIGGRAPH 2007 F. Durand, J. Dorsey, Interactive Tone Mapping, Eurographics 2000 G. Ward, Real Pixels, Graphics Gems II, 1991

Literatura c.d. F. Kainz i inni, The OpenEXR File Format, GPU Gems, 2004 G. Spencer i inni, Physically-Based Glare Effects for Digital Images, SIGGRAPH 1995 C. Maughan, Texture Masking for Faster Lens Flare, Game Programming Gems 2, 2001 D. Gillham, Real-time Depth of Field Implemented with a Postprocessing Only Technique, Shader X 5, 2005

Postprocessing wprowadzenie Przetwarzanie obrazów (image processing) Zarówno wejściem jak i wyjściem jest obraz w formacie rastrowym Jeżeli wejściem jest obraz wynikowy renderingu, to przetwarzanie jest nazywane postprocessingiem Koszt obliczeniowy postprocessingu Jest niezależny od złożoności sceny Zależy tylko i wyłącznie od rozdzielczości obrazu Pewne algorytmy lepiej jest wykonać jako postprocessing

Postprocessing wprowadzenie

Rendering do tekstury Konieczny aby wykonać postprocessing Zwykle tekstura o rozdzielczości ekranu Dowolny format, do którego GPU obsługuje rendering Niekoniecznie 32bit RGBA Możliwe więcej niż jedno wyjście (multiple render targets), wiele tekstur wynikowych Wszystkie tekstury muszą mieć taką samą rozdzielczość Ograniczenie na ilość tekstur

Obliczenia w GLSL Postprocessing opiera się na technikach przetwarzania obrazów nie jest to grafika 3D! Zatem nie współgra dobrze z OpenGL ani z DirectX Do postprocessingu najlepsze są obliczenia ogólnego przeznaczenia na kartach graficznych Do obliczeń została opracowana biblioteka OpenCL, ale jest ona nieco kłopotliwa w użyciu Jeżeli tylko można, to mimo wszystko lepiej jest użyć OpenGL do obliczeń ogólnego przeznaczenia

Obliczenia w GLSL c.d. Obliczenia ogólnego przeznaczenia w OpenGL można wykonać na dwa sposoby Z zastosowaniem techniki Transform Feedback Rendering czworokąta wypełniającego cały bufor ramki Obie te techniki wymagają pewnych dziwacznych chwytów (takich samych jak w DirectX) Nie wymagają natomiast środowiska OpenCL, co często jest wygodniejsze

Transform Feedback Tylko program wierzchołków i, opcjonalnie, geometrii Nie ma programu fragmentów Konieczność zapisu danych do bufora wierzchołków Upakowanie do czteroelementowych wektorów, nawet jeżeli logika algorytmu mówi inaczej Konieczne ze względu na wydajność Podobnie odczyt wyników

Rendering czworokąta Cztery wierzchołki, pasek dwóch trójkątów Pusty program wierzchołków tylko przepisanie danych Obliczenia tylko w programie fragmentów Ilość pikseli bufora ramki równa ilości danych do przetworzenia Wejście i wyjście przez tekstury Karta graficzna musi wykonać pewne operacje niepotrzebne z punktu widzenia logiki programu

Obliczenia wieloprzebiegowe Możliwość zastosowania zarówno przy technice transform feedback, jak i przy renderingu czworokąta Dwa zestawy buforów jeden wejściowy oraz jeden wyjściowy Wejście i wyjście musi mieć ten sam format Nie jest to konieczne przy pojedynczym przebiegu Po każdym przebiegu podmiana buforów

Rozmywanie Tworzenie nieostrego obrazu Przykładowe zastosowania Symulacja poruszenia kamery Rozbłyski światła od bardzo jasnych obiektów Usuwanie szumu (filtr dolnoprzepustowy) Powszechnie stosowane techniki Odczyt z tekstury z zastosowaniem MIP mappingu Rozmywanie gaussowskie, 1- i 2-przebiegowe Filtrowanie bilateralne

Rozmywanie obraz przykładowy

Odczyt z zastosowaniem MIP mappingu Wykonywany sprzętowo przez GPU Pewna ilość operacji odczytu z tekstury na jedno wykonanie programu jest darmowa GPU posiada specjalizowane jednostki do teksturowania Konieczność wygenerowania MIP-map Niestety wyniki o słabej jakości W rozmytym obrazie widać teksele

Odczyt z zastosowaniem MIP mappingu c.d.

Rozmywanie gaussowskie Bardzo dobre wyniki, ale kosztowne obliczeniowo Przy stałej sile rozmycia () można stosować algorytm dwuprzebiegowy Konieczność dobrania odpowiedniego N dla danej siły rozmycia N N j N N i j i N N j N N i j i j v i u v u e e T R 2 2 2 2,,

Rozmywanie gaussowskie c.d.

Filtr bilateralny Usuwanie szumów z możliwie małym rozmyciem krawędzi Zależność filtru od wartości tekseli N N j N N i v u N N j N N i v u j v i u v u T T j i v u j i f j i f T R e e j i f v u j v i u,,,,,,,, 2,, 2 2

Filtr bilateralny c.d.

Wyostrzanie Operacja odwrotna do rozmywania Filtr górnoprzepustowy Splot z np. taką maską: 0 C 0 M C 1 C 0 C 0 C może być dowolną stałą, często C = 1 Obcięcie wartości ujemnych

Wyostrzanie c.d.

Wykrywanie krawędzi Operacja podobna do wyostrzania Wartości bliskie zera gdy nie ma krawędzi Wartości bliskie maksimum w okolicach krawędzi Np. splot z taką maską: 0 1 0 M 1 0 1 0 1 0 Potrzebna jeszcze operacja abs()

Wykrywanie krawędzi c.d.

Obrazy o wysokim kontraście Elementy b. jasne i ciemne na tym samym obrazie Np. jasne niebo z chmurami i obszary zacienione Format 8-bitowy stałoprzecinkowy zapewnia, bez utraty precyzji, kontrast 1:2 Jeżeli potrzebny jest większy kontrast, to najstarsze bity muszą być wypełniane zerami, wyrzucając kolejne bity ze słowa Format 16-bitowy pomaga, ale nie rozwiązuje problemu

Obrazy o wysokim kontraście c.d. Dla obrazów HDR najlepiej nadaje się format zmiennoprzecinkowy zapewnia praktycznie nieograniczony kontrast przy pełnej precyzji Konieczność konwersji do formatu 8-bitowego stałoprzecinkowego przed wyświetleniem na ekranie Ale postprocessing jest wykonywany na liczbach zmiennoprzecinkowych Daje to o wiele większe możliwości i lepsze rezultaty

Obrazy o wysokim kontraście c.d.

Format EXR Format pliku opracowany przez Industrial Light and Magic w celu zapisywania wysokiej jakości wyników renderingu Dostępna biblioteka Open Source Przechowuje obrazy używając liczb zmiennoprzecinkowych 16- i 32-bitowej precyzji oraz 32- bitowych stałoprzecinkowych Obsługuje też metody kompresji stratnej i bezstratnej

Format RGBE Format zmiennoprzecinkowy zajmujący jedynie 32 bity na teksel Współdzielony wykładnik Po 9 bitów na kanały RGB, 5 bitów na wykładnik Wartości RGB nie mogą być znormalizowane Dopełnianie zerami jeżeli istnieje duża różnica jasności pomiędzy kanałami utrata precyzji Obecne GPU potrafią czytać format RGBE, ale nie obsługują odpowiedniego zapisu

Przekształcenia kolorów Operacje te polegają na zmianie barwy, nasycenia, przekolorowaniu sceny, itp. Jasność koloru można obliczyć: V = 0.2*R + 0.7*G + 0.1*B Operacje na nasyceniu: Kolory RGB traktowane jako punkty w przestrzeni 3D Linia pomiędzy kolorem danym, a szarym o tej samej jasności Zmiana nasycenia poruszanie się po tej linii

Przekształcenia kolorów c.d.

Przekształcenia kolorów c.d.

Przekształcenia kolorów c.d. Zmiana profilu kolorów Kolor RGB traktowany jako wektor Mnożenie macierz*wektor Przykładowe zastosowania Konwersja pomiędzy rożnymi wersjami RGB, np. srgb i Adobe RGB Stylizowanie na starą fotografię (sepia) Tworzenie anaglifów

Przekształcenia kolorów c.d.

Przekształcenia kolorów c.d. Dowolne przekolorowanie sceny Sterowane teksturą 3D o niewielkiej rozdzielczości np. 16x16x16, z interpolacją liniową Tekstura adresowana kolorem Z tekstury odczytywany jest nowy kolor Wartości neutralne: liniowo rosnące składowe RGB od 0 do max, po osiach tekstury odpowiednio u, v, w Zastosowanie np. dostosowanie klimatu gry do miejsca czy akcji

Mapowanie kontrastu Maksymalne jasność i kontrast monitora są mocno ograniczone w porównaniu ze światem rzeczywistym Konieczność redukcji kontrastu tak, aby można było wyświetlić obraz Techniki: Obcięcie Mapowanie globalne liniowe i nieliniowe Mapowanie lokalne

Głębia ostrości Ze względu na określoną średnicę obiektywu, bądź oka, układ soczewek jest w stanie zapewnić pełną ostrość obiektów w ściśle określonej odległości od obserwatora Wszystkie obiekty bliższe albo dalsze stają się coraz mniej ostre Symulacja tego zjawiska w oparciu o bufor głębi z zastosowaniem postprocessingu

Głębia ostrości c.d.

Głębia ostrości c.d. Rozmycie obrazu ze zmienną siłą zależną od wartości w buforze głębi Wszystkie obiekty bliższe bądź dalsze od pewnej zadanej odległości są rozmywane Niestety nie jest to algorytm poprawny z punktu widzenia optyki, ale może zapewnić dobre wyniki Należy uważać, aby przy rozmywaniu nie złapać tekseli z obiektów, które są blisko płaszczyzny idealnej ostrości

Zaznaczanie obiektów

Zaznaczanie obiektów c.d. Rendering obiektu przy pomocy programu zapisujacego same jedynki, z buforem glebi zawierajacym otoczenie zaznaczanego obiektu W postprocesie dla kazdego piksela ekranu zliczanie jedynek w pewnym kwadracie Tam, gdzie jest podobna ilosc zer i jedynek, znajduje sie krawedz obiektu Krawedz taka mozna pomalowac na jaskrawy kolor i zmieszac (mieszanie alfa) z wynikiem renderingu

Promienie słoneczne

Promienie słoneczne Potrzebne są: Znormalizowany bufor głębi (1.0 obiekty najdalsze, 0.0 najbliższe) Wynik renderingu sceny (najlepiej w HDR, ale niekoniecznie) Pozycja Słońca w przestrzeni ekranu Uwaga na odwrócenie projekcji, jeżeli Słońce jest z tyłu obserwatora Jeżeli Słońce znajdzie się poza ekranem to efekt jest zbyt słaby, ale niewiele można na to poradzić

Promienie słoneczne Algorytm: Wynik renderingu mnożony przez bufor głębi wyciemnienie obiektów bliskich, brak zmiany jasności najdalszych nieba i Słońca Radialne rozmycie wyniku renderingu po linii od danego punktu do pozycji Słońca Rozmycie można wykonać w kilku przebiegach jest wtedy nieco szybsze Na końcu: suma oryginalnego wyniku renderingu i obrazu rozmytego

Promienie słoneczne

Efekt flary Wielokrotne odbicia promieni od soczewek obiektywu W świecie rzeczywistym uważane jest to za wadę Często jednak efekt ten jest symulowany w grach Umieszczenie (poprzez mieszanie alfa) pewnych specyficznych kształtów na linii pomiędzy środkiem ekranu a bardzo jasnym obiektem (np. Słońcem) Podobne zjawisko zachodzi w ludzkim oku poświata wokół bardzo jasnych obiektów, tzw. glare effect

Efekt flary

Dziękuję za uwagę