Wykład 4 mgr inż. 1/30
Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego na podstawie opisu zawartości. polega na rekonstrukcji obrazu zawierającego elementy umieszczone w przestrzeni trójwymiarowej. Opis elementów obrazu nazywany jest sceną. Celem syntezy grafiki 3D jest uzyskanie obrazu dwuwymiarowego będącego wizualizacją trójwymiarowej sceny przy ustalonych parametrach. 2/30
Zawiera w sobie opis i położenie brył, kamerę, źródła światła itd. Algorytm Proces przetwarzania sceny i generowanie na jego podstawie nazywamy renderingiem. Obraz Wynik w postaci dwuwymiarowego obrazu rastrowego. 3/30
Rendering Grafika rzeczywista Celem jest wyrenderowanie trójwymiarowej sceny w najlepszej jakości. Celem jest wyrenderowanie danego obrazu w jak najkrótszym czasie (np. 16ms 60 klatek na sekundę). Nieograniczony renderowanie! na Próba implementacji zjawisk optycznych występujących w rzeczywistości w taki sposób, aby były bardzo podobne, lub wręcz idealnie odwzorowane. W celu przyspieszenia obliczeń stosuje się uproszczenia w implementacji zjawisk zachodzących w prawdziwym świecie. Wykorzystywana w filmach, reklamach, komputerowo generowanych obrazach, w sztuce Upraszcza się jakość renderowanej sceny, obiektów 3D, modelu oświetlenia, nie symuluje się także części zjawisk. Wykorzystywana w grach komputerowych, symulacjach, wirtualnej rzeczywistości. czas 4/30
Brak ograniczeń czasowych w czasie procesu renderingu. Generowanie pojedynczej klatki obrazu może trwać od kilku sekund do nawet kilku dni! Algorytmy używane mają za zadanie naśladować rzeczywiste zjawiska optyczne. Przykładowe algorytmy : Ray Tracing Photon Mapping 5/30
Konieczność uzyskania płynnych animacji Najczęściej 60 klatek na sekundę, często nawet krócej. Użycie uproszczeń w celu przyspieszenia renderingu. Redukcja szczegółowości Uproszczony model oświetlenia Ograniczona symulacja zjawisk wizualnych 6/30
zawiera opis elementów wirtualnego świata. Składa się z : Obiekty Bryła, położenie, kierunek obrotu, skala itd. Cechy obiektów Kolor i typ materiału, tekstura. Położenie, kierunek widzenia, kąt widzenia, typ. Źródła światła Rodzaj, intensywność, położenie. Parametry środowiska Mgła, dym itd. 7/30
Obiekty zawarte w scenie nazywamy modelami. Modele to geometryczna reprezentacja obiektów. Sam model nie jest grafiką, jest opisem obiektu. Podobieństwo do grafiki wektorowej. 8/30
Model składa się z wierzchołków. Wierzchołki te łączą się w wielokąty (ang. Polygons), które tworzą powierzchnię obiektu. Wierzchołki mogą się różnie łączyć w poligony, zależnie od zastosowania. Mogą to być trójkąty, czworokąty itd. 9/30
Model High-poly Model Low-poly Stosuje się w grafice realistycznej z uwagi na dużą ilość szczegółów. Stosuje się w grafice czasu z uwagi na dokonane uproszczenia. 10/30
Modele tworzy się w wyspecjalizowanym oprogramowaniu do tworzenia grafiki 3D, np : Blender 3ds Max Maya Google SketchUp 11/30
Układ współrzędnych Obiekty są zawarte w układzie współrzędnych kartezjańskich. Jednostki w tych układach są arbitralne, można przyjąć dowolną wartość, np. jednostka to jeden metr, jeden cal, 24 cm, 2 ft... Układ osii może się różnić w zależności od użytego oprogramowania. Układ prawoskrętny - np. OpenGL Układ lewoskrętny - np. Blender 12/30
Często zdarza się, że na scenie występuje więcej niż jedna instancja obiektu różniąca się położeniem, orientacją i wielkością. Kopiowanie wszystkich wierzchołków drugiego nie jest optymalne. z Przesuwanie obiektów za pomocą wierzchołków także nie jest optymalne. edytowania Do obydwóch przytoczonych sytuacji stosuje się przekształcenia. jednego obiektu do wszystkich 13/30
modelu W procesie renderowania mnoży się każdy wierzchołek przez macierz modelu (ang. model matrix). Macierz modelu to iloczyn macierzy transformujących bryłę. Każda z tych macierzy wykonuje jedną z podstawowych transformacji geometrycznych. Translację - przesunięcie obiektu. Rotację - zmianę orientacji obiektu o daną oś. Skalowanie - zmiana wielkości obiektu. 14/30
modelu 15/30
modelu 16/30
Ważnym elementem sceny jest także kamera. sceny jest to wirtualne oko, z którego obserwujemy świat. posiada swoje położenie w przestrzeni sceny, a także punkt patrzenia. Manipulacja kamerą pozwala nam wyświetlić tę samą scenę z wielu innych punktów odniesienia. 17/30
Różne punkty widzenia w zależności od położenia kamery. Nieodpowiednie operowanie kamerą skutecznie poprawnemu przedstawienie wyrenderowaniem sceny. Ekipy filmowe tworzące animacje wykorzystywania wirtualnych kamer. zatrudniają zapobiegnie specjalistów od 18/30
Pojedynczy rzut kamery nie jest w stanie wyświetlić wszystkich szczegółów sceny. W grafice czasu często pozwala się graczowi na manipulację kamerą. Należy poprawnie zaprojektować obsługę kamery w sposób poprawny dla wyświetlanej sceny. 19/30
Kamerę opisujemy za pomocą trzech parametrów : Pozycja (p) - współrzędne położenia kamery w przestrzeni sceny. Kierunek (d) - wektor patrzenia kamery. Wektor góry (u) - wektor wskazujący pion. 20/30
Wektor góry jest także ważnym elementem kamery, dzięki niemu możemy dobrać pion. Najczęściej ustawiany jako wektor (0, 1, 0) 21/30
Macierz widoku W OpenGL stosuje się parametry kamery w postaci macierzy widoku. 22/30
Rzut kamery Wyróżniamy dwa rzuty kamery. (po lewej) Rzut ortogonalny (po prawej) 23/30
W rzucie perspektywicznym kamery występują cztery parametry. Kąt widzenia (ang. field of view - FOV) Aspekt (ang. aspect) - proporcje ekranu Odległość płaszczyzny (ang. near clipping plane) bliskiego odcinania Odległość płaszczyzny (ang. far clipping plane) dalekiego odcinania 24/30
Kąt widzenia Kąt widzenia wyrażany w stopniach (70 po lewej, 35 po prawej). Jest tożsamy ze zmianą ogniskowej obiektywu. Nie jest tożsamy z przybliżeniem/oddaleniem kamery! 25/30
Aspekt Aspekt - proporcje boków podstawy ściętego ostrosłupa (ang. frustum). Stosunek szerokości do wysokości. 4:3, 16:9, 16:10... 26/30
Płaszczyzny odcinania Odległość płaszczyzn przycinania : Bliskiej - n Dalekiej - f Określają zakres odległości, w jakiej będzie renderowana scena. Ma związek z precyzją bufora głębokości - im większy zakres, tym większa szansa powstania problemu z-fighting. 27/30
Macierz projekcji W OpenGL stosuje się parametry związane z rzutem kamery w postaci macierzy projekcji. opisuje się za pomocą macierzy perspektywy. Można zastosować także rzut ortogonalny za pomocą macierzy ortogonalnej. 28/30
Podsumowanie Do przekształceń związanych z modelem stosujemy : Macierz modelu, która składa się z : Translacji Rotacji Skalowania Do przekształceń związanych z kamerą stosujemy : Macierz widoku, która składa się z : Pozycji kamery Kierunku patrzenia kamery Wektora góry Macierz projekcji, która składa się z : Kąt widzenia Aspektu Odległość płaszczyzny bliskiego odcinania Odległość płaszczyzny dalekiego odcinania 29/30
Wykład 4 Dziękuję za uwagę :) mgr inż. 30/30