GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

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

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

Bartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.

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

Bartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.

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

Grafika Komputerowa, Informatyka, I Rok

Grafika Komputerowa, Informatyka, I Rok

Bartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.

Gry Komputerowe - laboratorium 0

1. Prymitywy graficzne

Plan wykładu. Akcelerator 3D Potok graficzny

Bartosz Bazyluk OpenGL Współczesne podejście do programowania grafiki Część II: Programy cieniujące (shadery)

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

Grafika komputerowa i wizualizacja

Architektura Procesorów Graficznych

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

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

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Zaawansowana Grafika Komputerowa

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

Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

Transformacje obiektów 3D

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Bartosz Bazyluk GAME LOOP Podstawowy element silnika gry komputerowej. Programowanie Gier Komputerowych, Informatyka S1, III Rok

OpenGL i wprowadzenie do programowania gier

System graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D.

2 Przygotował: mgr inż. Maciej Lasota

1 LEKCJA. Definicja grafiki. Główne działy grafiki komputerowej. Programy graficzne: Grafika rastrowa. Grafika wektorowa. Grafika trójwymiarowa

Trójwymiarowa grafika komputerowa rzutowanie

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Wyświetlanie obrazu Techniki wyświetlania obrazu i ich zastosowanie w grach.

GRAFIKA KOMPUTEROWA. Plan wykładu. 1. Początki grafiki komputerowej. 2. Grafika komputerowa a dziedziny pokrewne. 3. Omówienie programu przedmiotu

Wykład 4. Rendering (1) Informacje podstawowe

KARTA KURSU (realizowanego w module specjalności) Modelowanie 3D

Grafika komputerowa Wykład 4 Geometria przestrzenna

Techniki animacji komputerowej

Technologie Informacyjne

KARTA KURSU (realizowanego w module specjalności) Modelowanie 3D

Ćwiczenia nr 4. TEMATYKA: Rzutowanie

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

GRK 2. dr Wojciech Palubicki

Rozdział VII. Przekształcenia geometryczne na płaszczyźnie Przekształcenia geometryczne Symetria osiowa Symetria środkowa 328

Programowanie Procesorów Graficznych

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 KOMPUTEROWA

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

Podstawy grafiki komputerowej

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

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

Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)

Grafika komputerowa. Obraz w informatyce

Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu

PRZEWODNIK PO PRZEDMIOCIE

Nawi zanie do gimnazjum Planimetria Trójk Rysujemy Rysujemy Rysujemy Zapisujemy t zewn trzny trójk ta, Trójk ty ze wzgl du na miary k tów Trójk

Rok akademicki: 2017/2018 Kod: JFM s Punkty ECTS: 7. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Zatem standardowe rysowanie prymitywów wygląda następująco:

WPROWADZENIE DO GRAFIKI KOMPUTEROWEJ

PRZEWODNIK PO PRZEDMIOCIE

Karty graficzne możemy podzielić na:

Architektura Komputerów

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

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

str 1 WYMAGANIA EDUKACYJNE ( ) - matematyka - poziom podstawowy Dariusz Drabczyk

GRK 4. dr Wojciech Palubicki

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny

KARTA KURSU. Grafika komputerowa

Śledzenie promieni w grafice komputerowej

Obraz jako funkcja Przekształcenia geometryczne

Krzyżówka oraz hasła do krzyżówki. Kalina R., Przewodnik po matematyce dla klas VII-VIII, część IV, SENS, Poznań 1997, s

Synteza i obróbka obrazu. Modelowanie obiektów 3D

INTERAKTYWNA KOMUNIKACJA WIZUALNA ANIMACJA

Symetria w fizyce materii

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

Photoshop. Podstawy budowy obrazu komputerowego

CYFROWA SYNTEZA FOTOREALISTYCZNYCH OBRAZÓW W ŚRODOWISKU 3D

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

gdzie (4.20) (4.21) 4.3. Rzut równoległy

PRZEWODNIK PO PRZEDMIOCIE

SYNTEZA OBRAZU. Wprowadzenie. Synteza obrazu

Pracownia Technik Reklamy Semestr Jesienno-Zimowy 2012/2013

PRZEDMIOTOWE ZASADY OCENIANIA I WYMAGANIA EDUKACYJNE Z MATEMATYKI Klasa 3

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

Wprowadzenie do grafiki komputerowej. W. Alda

GEOMETRIA PRZESTRZENNA (STEREOMETRIA)

Temat: Transformacje 3D

Przygotowanie grafiki 3D do gier komputerowych

Obraz realistyczny. Realizm w grafice komputerowej. Realizm modelu: z!o#one siatki wielok$tów. Realizm modelu geometrycznego. Realizm modelu: spline'y

OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23

i = [ 0] j = [ 1] k = [ 0]

Opis efektów kształcenia dla modułu zajęć

GRAFIKA KOMPUTEROWA podstawy matematyczne. dr inż. Hojny Marcin pokój 406, pawilon B5 Tel.

Trójwymiarowa wizualizacja danych przestrzennych

Transformacje. dr Radosław Matusik. radmat

OpenGL przezroczystość

rgbf<składowa_r,składowa_g,składowa_b,filter>. Dla parametru filter przyjmij kolejno wartości: 0.60, 0.70, 0.80, 0.90, 1.00, np.:

Stereometria bryły. Wielościany. Wielościany foremne

1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych

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

Transkrypt:

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok

Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy stworzenie grafiki na podstawie jej opisu Komputerowa synteza grafiki to procesy algorytmiczne prowadzące do uzyskania cyfrowego obrazu na podstawie opisu jego zawartości Synteza grafiki 3D bazuje na opisie przestrzennego świata, znajdujących się w nim obiektów, ich cech, środowiska, itp. Opis wycinka świata na potrzeby syntezy grafiki 3D nazywamy sceną Celem syntezy grafiki 3D jest uzyskanie obrazu 2D będącego wizualizacją sceny przy zadanych kryteriach 2

Synteza grafiki 3D Scena Algorytm graficzny Geometryczny opis rozmieszczenia obiektów, oświetlenia, kamery,... Proces często nazywa się renderowaniem Obraz 2D Wizualizacja, "zdjęcie" sceny 3D widzianej w zadany sposób 3

Renderowanie Grafika realistyczna Renderowanie off-line Grafika czasu rzeczywistego Nieograniczony czas na przygotowanie każdej klatki animacji Celem jest uzyskanie jak najlepszego obrazu Zastosowania: Film Wizualizacja produktów Sztucznie generowane obrazy Sztuka Renderowanie on-line Konieczność szybkiego wyświetlania kolejnych klatek animacji Celem jest uzyskanie satysfakcjonującego obrazu przy zachowaniu płynności animacji Stosowane są liczne uproszczenia Zastosowania: Gry komputerowe Interaktywne symulacje Wirtualna rzeczywistość 4

Grafika realistyczna Nieograniczony czas na renderowanie Aby uzyskać najlepszy efekt, można poświęcić od kilku sekund do nawet kilku dni na wyrenderowanie jednej klatki animacji Algorytmy mające za zadanie naśladować rzeczywiste zjawiska optyczne Ogromna ilość obliczeń, algorytmy takie jak np.: Raytracing Photon mapping Źródło obrazu: http://venturebeat.com 5

Grafika czasu rzeczywistego Konieczność uzyskania płynności animacji Często mniej, niż 1/60 sekundy aby wyrenderować klatkę Generowanie grafiki poprzez uproszczenia Redukcja szczegółowości Uproszczony model oświetlenia Ograniczona symulacja zjawisk wizualnych Źródło obrazu: Crysis 3, Crytek 6

Scena 3D Elementy sceny: Obiekty geometryczne Cechy obiektów (tzw. materiałów z których są zbudowane) Położenie, rodzaj, kolor, intensywność,... Cechy środowiska Położenie, kierunek widzenia, kąt widzenia,... Źródła światła Cechy powierzchni, kolor, tekstura,... Kamera Bryła, położenie, kierunek obrotu, skala,... Mgła, dym, dodatkowe efekty wizualne,... 7

Modele 3D Obiekty wirtualnego świata reprezentowane są na scenie najczęściej przez tzw. modele Modele to geometryczna reprezentacja brył obiektów Model nie jest grafiką, dopóki nie zostanie wyrenderowany on tylko opisuje obiekt Analogia do grafiki wektorowej Źródła obrazów: http://nzchristie.blogspot.com http://maxattivo.blogspot.com 8

Modele 3D Modele składają się z wierzchołków Wierzchołki tworzą wielokąty (ang. Polygons) które składają się na powierzchnię modelu 9

Modele 3D W grafice czasu rzeczywistego często stosuje się tzw. modele low-poly, czyli o małej liczbie wielokątów W ten sposób uzyskuje się znacznie większą wydajność kosztem utraty jakości (szczegółowości) High-poly Low-poly (15488 trójkątów) (968 trójkątów) 10

Modele 3D Modele tworzy się w wyspecjalizowanym oprogramowaniu do tworzenia grafiki 3D, np.: Blender (darmowy) 3ds Max Maya Google SketchUp (darmowy) 11

Modele 3D Przykładowy format, w którym zapisuje się modele: Wavefront OBJ Plik tekstowy Kolejne linijki odpowiadają m.in. pozycjom wierzchołków, wektorom normalnym, współrzędnym tekstur, ścianom 12

Kamera Jest to wirtualny koncept opisujący sposób oglądania sceny przez obserwatora, dla którego renderujemy obraz Istnieją dwa podstawowe rodzaje kamer: Rzut perspektywiczny Rzut prostokątny (ang. orthographic) 13

Kamera perspektywiczna Kamera musi być opisana w sposób matematyczny, aby możliwe było uwzględnienie jej cech w procesie renderowania Przede wszystkim musi posiadać zdefiniowane: Pozycję (punkt zaczepienia): p Kierunek widzenia: d d p 14

Kamera perspektywiczna Położenie w przestrzeni 3D jest po prostu 3-elementowym wektorem Zmiana położenia powoduje przemieszczenie naszego wirtualnego "aparatu fotograficznego" 15

Kamera perspektywiczna Kierunek w przestrzeni 3D również jest 3-elementowym wektorem Kierunek można rozumieć jako wektor leżący na półprostej łączącej punkt zaczepienia z miejscem, na które kamera ma być skierowana Kierunek zwyczajowo przechowuje się jako wektor jednostkowy ( d = 1 ) 16

Kamera perspektywiczna To jednak nie wystarczy, aby jednoznacznie określić sposób obserwacji sceny Oba poniższe przykłady zostały wyrenderowane z tego samego miejsca, w tym samym kierunku: 17

Kamera perspektywiczna Konieczne jest wprowadzenie dodatkowo wektora pionu (ang. up vector): u Najczęściej jest to (0, 1, 0) jeśli za drugą współrzędną przyjmiemy tę skierowaną ku górze świata u d p 18

Kamera perspektywiczna Dodatkowo kamerę określają: Kąt widzenia (najczęściej w stopniach) fov Jego zmiana odpowiada zmianie ogniskowej obiektywu (popularnie zwanej "zoomem" w aparacie fotograficznym) Nie jest tożsamy z przybliżeniem/oddaleniem kamery! Szeroki kąt Wąski kąt (krótka ogniskowa) (długa ogniskowa) 19

Kamera perspektywiczna Dodatkowo kamerę określają: Odległość płaszczyzn przycinania: bliskiej n i dalekiej f (ang. near/far clipping plane) Określają, od jakiej do jakiej odległości będzie renderowana scena Ma to związek z precyzją bufora głębokości Im większy zakres odległości jest renderowany, tym większa szansa powstania problemów typu z-fighting wartości powinny zostać dobrane odpowiednio do charakterystyki danej sceny f n 20

Kamera perspektywiczna Dodatkowo kamerę określają: Proporcje boków podstawy ściętego ostrosłupa (ang. frustum) Stosunek szerokości do wysokości 4:3, 16:9, 16:10,... 21

Kamera perspektywiczna Podsumowując, do jednoznacznego opisania kamery potrzebne są wartości następujących atrybutów: Cechy widoku: Położenie Kierunek Wektor pionu Cechy projekcji: Kąt widzenia Odległości płaszczyzn przycinania Proporcje 22

Przekształcenia geometryczne Przekształcenia geometryczne w przestrzeni 3D opisane są macierzami 4x4 Aby poddać współrzędne (x, y, z) danemu przekształceniu T, macierz T mnożona jest przez wektor (rozszerzony o dodatkową współrzędną w = 1), a cały wynik jest dzielony przez ostatnią współrzędną w' 23

Przekształcenia geometryczne Podstawowe transformacje geometryczne to: Translacja Rotacja Skalowanie Macierze, które je opisują: 24

Przekształcenia geometryczne Macierz modelu jest złożeniem odpowiednich translacji, rotacji i skalowań Czyli iloczynem macierzy odpowiadających takim transformacjom Ważna jest kolejność mnożenia! Służy do umieszczenia naszego modelu, opisanego lokalnymi współrzędnymi, w pożądanym miejscu wirtualnego świata Dzięki takiemu podejściu możliwe jest wielokrotne używanie dokładnie tego samego modelu, opisanego tymi samymi współrzędnymi wierzchołków 25

Przekształcenia geometryczne Macierz widoku, a więc macierz związana z transformacją kamery, jest złożeniem odpowiednich translacji i rotacji Czyli iloczynem macierzy odpowiadających takim transformacjom Macierz projekcji perspektywicznej wygląda następująco: Gdzie: f = 1 / tan(fov / 2) aspect = proporcje znear = odległość bliskiej płaszczyzny przycinania zfar = odległość dalekiej płaszczyzny przycinania 26

Przekształcenia geometryczne Podczas procesu renderowania sceny dokonywane są przejścia pomiędzy różnymi układami współrzędnych Współrzędne modelu Macierz modelu Współrzędne świata Macierz widoku Współrzędne kamery Macierz projekcji Współrzędne projekcji Kanoniczna bryła widzenia Normalizacja, przycinanie itp. Mapowanie na ekran Współrzędne ekranu 27

Renderowanie geometrii Geometria jest opisana przede wszystkim pozycjami wierzchołków Podczas procesu renderowania obiekty rysowane są za pomocą tzw. prymitywów Prymitywy to figury geometryczne odpowiadające za to, jak informacja o kolejnych pozycjach zostanie wykorzystana podczas rysowania Mogą to być np. punkty, linie, łamane, trójkąty, pasy trójkątów, czworokąty, wielokąty, itp. 28

Renderowanie geometrii Prymitywy dostarczane przez OpenGL: Źródło obrazu: http://www.opengl.org 29

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v1 v2 v0 v3 v4 v5 Myślimy o punktach w przestrzeni 3D, nie na płaszczyźnie 30

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v1 v2 v0 v3 v4 v5 Użycie prymitywu punkty (ang. points) 31

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v1 v2 v0 v3 v4 v5 Użycie prymitywu linie (ang. lines) 32

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v1 v2 v0 v3 v4 v5 Użycie prymitywu łamana (ang. line strip) 33

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v1 v2 v0 v3 v4 v5 Użycie prymitywu łamana zamknięta (ang. line loop) 34

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v1 v2 v0 v3 v4 v5 Użycie prymitywu łamana zamknięta (ang. line loop) 35

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v2 v1 v0 v3 v4 v5 Użycie prymitywu wachlarz (ang. triangle fan) 36

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v2 v1 v0 v3 v4 v5 Użycie prymitywu pas trójkątów (ang. triangle strip) 37

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v2 v1 v0 v3 v4 v5 Dwa ostatnie wierzchołki nie są wykorzystane - aby powstał kolejny quad, potrzebne byłyby dwa następne! Użycie prymitywu czworokąty (ang. quads) 38

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v2 v1 v0 v3 v4 v5 Ten czworokąt jest niepoprawny ( zdegenerowany ) nie jest wypukły! Użycie prymitywu pas czworokątów (ang. quad strip) 39

Renderowanie geometrii Przykład: Mamy dane 6 wierzchołków o następujących położeniach: v2 v1 v3 v0 v4 v5 Ten wielokąt jest niepoprawny ( zdegenerowany ) nie jest wypukły! Użycie prymitywu wielokąt (ang. polygon) 40

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i omówienie potoku renderowania Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok

Literatura Grafika komputerowa Peter Shirley, Stephen Robert Marschner. "Fundamentals of Computer Graphics". AK Peters, 2009. Grafika czasu rzeczywistego Tomas Akenine-Moller, Eric Haines, Naty Hoffman. "Real-Time Rendering, Third Edition". AK Peters, 2008. Mike McShaffry, David Graham. "Game Coding Complete, Fourth Edition". Course Technology, 2012. "OpenGL Blue Book", czyli dokumentacja OpenGL. http://www.opengl.org/sdk/docs/ "OpenGL Red Book", czyli wprowadzenie do OpenGL. http://www.glprogramming.com/red/