1/49 2/49 Obiekty regularne Powierzchnie proste możliwe do wymodelowania ręcznie na podstawie poligonów lub powierzchni parametrycznych. 1
3/49 Opis parametryczny obiekty parametryczne opisane równaniami matematycznymi, reprezentacja wielokątowa, krzywe i powierzchnie, reprezentacja fraktalna. x 2 + y 2 + z 2 = r 2 4/49 Modelowanie Modelowanie - opisanie kształtu obiektu. Najczęściej stosuje się reprezentację powierzchniową - opis powierzchni obiektu. Popularną reprezentacją powierzchniową stanowi siatka wielokątów." v10 v9 v8 2
5/49 Reprezentacja wielokątowa trójkąt - obiekt podstawowy (wierzchołki trójkąta zawierają się w tej samej płaszczyźnie), duża liczba identycznych obiektów, wykorzystanie tych samych algorytmów do przetwarzania wszystkich obiektów (architektura SIMD kart graficznych), ograniczona dokładność odwzorowania powierzchni krzywoliniowych (aproksymacja powierzchni za pomocą wielokątów), duża liczba obiektów potrzebna do zbudowania prostego kształtu geometrycznego (np. kula). Siatka (mesh) zawiera: - wierzchołki (vertex), - krawędzie (edge), - wielokąty (polygon, face). 6/49 Podział powierzchni Dokładność odwzorowania powierzchni kontrolowana jest przez liczbę wielokątów w łacie. Obiekty deformowane są w sposób ciągły. Podział powierzchni rozpoczyna się od zgrubnej siatki wielokątowej. W kolejnych krokach tworzona jest nowa siatka, złożona z większej liczby wielokątów, przy użyciu odpowiednio: aproksymacji, interpolacji. Podział kończy się gdy uzyskany zostanie wymagany kształt. 3
7/49 Powierzchnie parametryczne Łata Beziera ( Bezier patch) - 16 punktów kontrolnych. Składa sie z wielokątów o krawędziach będących krzywymi Beziera. Łaty łączone są w powierzchnie krzywoliniowe Beziera. NURBS - uogólnienie krzywych/powierzchni Beziera. B-splines - krzywe/powierzchnie parametryczne powstale poprzez polączenie łat punkt kontrolny poligon kontrolny 8/49 Konfiguracje trójkątów Optymalizacja reprezentacji wielokątowej - unikanie powtórzeń definicji wierzchołków. v 2 v 6 v 3 v 2 v 4 v 4 v 1 v 1 v 5 v 6 v 3 v 5 v 7 v 7 konfiguracja strip konfiguracja fan v 6 v 2 v 4 v 1 v 10 v 3 v 5 v 7 v 9 v 8 konfiguracja mesh 4
9/49 Wizualizacja dużego terenu 10/49 Wizualizacja dużego terenu video Wizualizacja dużego terenu 5
11/49 Teselacja Kształt obiektu opisany jest pierwotnie za pomocą punktów. Teselacja ( tesselation) - proces tworzenia siatki wielokątowej (poprzez łączenie punktów) reprezentującej powierzchnię obiektu. Zwykle tworzy się trójkąty, a proces nazywany jest triangularyzacją. W efekcie powstaje szkielet obiektu ( wireframe). Na etapie teselacji szkielet można poddawać przekształceniom, symulując np. zniekształcenia lub uszkodzenia obiektu. Przykład: sześcian jest opisany za pomocą współrzędnych jego ośmiu wierzchołków po triangularyzacji powstaje siatka złożona z 12 trójkątów. 12/49 Pixar s Renderman 6
13/49 Kości - na nich rozpięta jest skóra 14/49 Animacja blender Video Przykładowe animacje wygenerowane w blenderze 7
15/49 Obiekty nieregularne Odtworzenie nieregularnych obiektów jest dużo bardziej złożone... The Kiss, Rodin, 1889 16/49 Akwizycja obiektów 3D obiekt oryginalny powierzchnia spróbkowana wyrównanie powierzchni rekonstrukcja powierzchni efekt końcowy 8
17/49 Pozyskiwanie próbek 3D - CMM (Coordinate Measuring Machine) 18/49 Próbki 3D - CMM 9
19/49 Odtworzenie kształtu z obrazu stereo - dopasowanie odpowiadających sobie obrazów wykonanych przy różnym położeniu kamery, cieniowanie - odtworzenie na podstawie zmian tonalnych oraz koloru w obrazie, wyostrzenie - analiza wielu obrazów z różną głębią ostrości, filtr koloru - zdjęcia wykonane z wykorzystaniem filtrów koloru, projekcja wzorca - informacja o głębokości pobrana jest z serii zdjęć wykonanych z wzorcem projektowanym na obiekt. 20/49 Kształt z obrazów stereo wejście: 2 obrazy wykonane z dwóch niewiele różniących się (znanych) kierunków problem: odtworzenie współrzędnych pikseli w przestrzeni 3D (tzw. wokseli) 10
21/49 Kształt z obrazów stereo - algorytm dla danego piksela s 1 z obrazu lewego znajdź odpowiadający mu piksel s 2 w prawym obrazie dla zadanego punktu w przestrzeni 3D S, jeśli punkty s 1 oraz s 2 są znane, to współrzędne punktu S można wyznaczyć na podstawie triangularyzacji. punkt na powierzchni sceny w przestrzeni 3D plan lewego obrazu plan prawego obrazu 22/49 Kształt na podstawie cieniowania Dla zdjęć wykonanych w idealnych warunkach technika zwraca wyniki poprawne... siatka odtworzona z obrazów 2D Mozart - obraz syntetyczny 11
23/49 Kształt na podstawie skanera Odczytanie dystansu na podstawie czasu odbicia i powrotu impulsu lasera. 24/49 Kształt na podstawie projekcji wzorca Laser/projektor wysyła wiązkę świetlną a kamera rejestruje jej położenie 12
25/49 Kształt na podstawie projekcji wzorca - idea rzutowanie pojedyńczej linii jest bardzo powolne, problem: dziury oraz przesłaniające obiekty mogą zmienić kolejność rejestrowanego wzorca lub spowodować że będzie niewidoczny, rozwiązanie: rzucanie na zmianę kolorowych wzorców RGB. obiekt plan projektor (x,y) kamera 26/49 Kształt na podstawie projekcji wzorca - idea 13
27/49 Kształt na podstawie projekcji wzorca - idea analiza lini po linii, zakładając analizę 16 linii: - log16 = 4 następujące po sobie ramki, - w każdej ramce wzorzec jest włączony lub wyłączony, - informacja o włączonym/wyłączonym wzorcu wykorzystywany jest do identyfikacji kolejnej linii. czas przestrzeń 28/49 Dopasowanie chmury punktów Problem: większość skanerów umożliwia skanowanie w danej chwili tylko jednej strony obiektu,, dla danego widoku część powierzchni obiektu może być niewidoczna. Rozwiązanie: chmura punktów powinna być zarejestrowana dla różnego położenia obiektu, aby umożliwić rekonstrukcję, chmury punktów należy połączyć. Dopasowanie chmur punktów: zgrubne siatki: ręcznie lub PCA, szczegółowe siatki: dopasowanie najbliższych par. 14
29/49 video realistyczna wizualizacja obiektów 30/49 Technika IBR (wizualizacja z wykorzystaniem obrazów 2D) istota grafiki czasu rzeczywistego, ze względu na czas renderingu, jest precomputing wszystkiego co możliwe, do tej pory obiekty opisane były za pomocą wierzchołków zbudowane były z poligonów, IBR jest techniką polegającą na renderingu z wykorzystaniem obrazów, mniej kosztowna - reprezentacja obiektu za pomocą obrazu który może być szybko wysłany na ekran dzięki innej reprezentacji nie trzeba zmeniać geometrii obiektu dla każdego ruchu kamery, tworzenie obiektów na podstawie składania wielu wartstw z ustawionym parametrem przeźroczystości, Zalety: szybkość, niezależna od złożoności generowanej sceny (proporcjonalna do liczby pikseli a nie wierzchołków), dużo efektywniejsza w przypadku złożonych obiektów takich jak chmury czy drzewa, źródło obrazów: realne lub syntetyczne Wady zajętość pamięci ograniczona rozdzielczość - problem aliasingu często konieczne jest wykonanie wcześniej dość kosztownych obliczeń. 15
31/49 Wizualizacja obiektów - Spektrum modele geometryczne" obrazy" bazowanie na wyglądzie" lumigraph oraz light field" sprites" warstwy" poligony" plakaty" bazowanie na fizyce" oświetlenie globalne" VR - dla każdego punktu widzenia, mapowanie cylindryczne. Każdej zmianie kamery odpowiada jakaś część obrazu, która jest pobierana, zniekształcana i wyświetlana." Lumigraph - seria obrazów jednego obiektu dla różnego położenia obserwatora. Na podstawie aktualnego punktu patrzenia dwa najbliższe obrazy są pobierane i interpolowane. " 32/49 Efekty cz steczkowe sprites + = sprite" tło " wynik " zbór niezależnych małych obiektów, wykonujących ruch w oparciu " o zastosowany algorytm (symulacji ognia, dymu, ekspozji, ruchu lisci " i innych), nie jest to forma renderingu a raczej sposób animacji ruchu. Idea" polega na kontrolowaniu tworzenia cząsteczek, ich ruchu, zmian oraz" usuwania, pojedyncza czasteczka to najczęściej linia lub punkt (prostsza niż sprite). Każda cząsteczka może stanowić pojedynczy punkt" renderowany na scenie. 16
33/49 IBR: Warstwy obiekt renderowany jest to warstw i później składany, każda warstwa traktowana jest niezależnie tył ciężarówki, skrzydła i ogon, głowa, różna częstotliwość zmian w zależności od ruchu ciężarówki lub kurczaka, tył ciężarówki najrzadziej będzie zmieniany - kąt kamery nie zmienia się zbytnio obiekty częściowo przysłaniające się skrzydło i ogon na jednym sprites - skrzydło częsciowo przed częsciowa za ogonem, oznacza to konieczność zmiany całej warstwy przy ruchu skrzydła, podział skrzydła na część przed i za ogonem. Microsoft Chicken Crossing" 34/49 Warstwy - przykład video wizualizacja złożonych obiektów za pomocą danych w postaci obrazów 2D 17
35/49 Bilboarding - wprowadzenie efekty specjalne takie jak flares renderują obraz na poligon zwrócony zawsze przodem do obserwatora, orientowanie poligonu - bilboarding, poligon naktóry nakładany jest obraz - bilboard, połączenie bilboardingu, animacji oraz kanału alpha umożliwia wizualizację różnych zjawisk nie posiadających powierzchni dym, ogień, chmury, wybuchy. orientacja bilborad u - na podstawie wektora u (do góry) oraz wektora normalnego do powierzchni, tworzony prostokątny układ współrzędnych iloczyn wektorowy, jeśli wektory nie są prostopadłe, wykorzystanie krawędzi bilboardu (normalizacja) i jednego z wektorów - drugi jest dopasowywany środek stworzonego układu wspólrzędnych - translowany jest do pożdanej lokalizacji obiektu, określenie wektorów u i n - różne techniki bilboardingu u'= n " r n'= r " u M = (r,u',n)! 36/49 Screen Aligned Bilboarding najprostrze podejście, wektor normalny - przeciwny do kierunku patrzenia, wektor u - wektor up kamery, oba wektory są zawsze prostopadłe, ponieważ wektory są stałe dla kamery - jedna macierz transformacji dla wszystkich bilboard ów tego typu np. tekst który powinien być zawsze dobrze widoczny, dla systemów cząsteczek - kulisty kształt (symetria). 18
37/49 World/Viewpoint Oriented Bilboarding w przypadku kształtów różnych od kulistych odpowiedni dobór wektora u ma znaczenie, wektor normalny - przeciwny do kierunku patrzenia, wektor u - wektor up świata, problem przy projekcji dla obiektów mocno oddalonych od osi patrzenia, dla małych FOV i małych sprites nie ma problemu, w przeciwnym wypadku - należy zmienić wektor normalny na wektor od bilboard u do obserwatora - VIEWPOINT ORIENTED B. widoczna w takim przypadku deformacja jest poprawna. billboards rzeczywistość courtesy of mark Harris, UNC-Chapel Hill.! 38/49 Axial Bilboarding wektor u jest stały - dowolnie wybrana oś, wektor normalny - od bilboard u do obserwatora inne podejście - brak równoległego ustawiania sie przodem do obserwatora, rotacja dookoła wektora u i w miarę możliwości ustawienie się przodem do obserwatora, obiekty o geometry cylindrycznej, np. drzewo, swiatło lasera. poprawne w przypadku patrzenia na obiekty z boku, w przypadku patrzenia z góry - iluzja znika należy dodać kolisty poligon ustawionu prostopadle do wcześniejszego Direct3D Billboarding Tree http://zeus.uni-lj.si/~aleks/slicing-and-blending/! 19
39/49 Efekty cz steczkowe cd. Podstawowa zasada dzialania metody: - zobrazowanie efektu np. dym, ogień za pomocą dużej ilości małych obiektów Przygotowanie efektu: - dobranie odpowiednich bitmap na podstawowe obiekty zawarte w efekcie - podzielenie efektu na podstawowe części Typowe problemy: - trudność z dobraniem odpowiedniej ilości cząsteczek - wygląd efektu pod różnymi kątami i w różnej odległości Kiedy warto stosować: - efekty wizualne o dużym stopniu losowości - dym - ogień - eksplozje Przykłady użycia: - wybuchy - smugi od rakiet Zalety/wady - mogą być kosztowne obliczeniowo 40/49 Efekty cząsteczkowe - siatka - przykład 20
41/49 System cząsteczek - przykład źródło: http://www.nzone.com/object/nzone_downloads_nvidia.html 42/49 video wizualizacja wybuchów za pomocą danych w postaci obrazów 2D 21
43/49 IBR: Impostors bilboard generowany na bieżąco, poprzez rendering złożonego obiektu dla bieżącego punktu patrzenia rendering proporcjonalny do ilości pikseli, które dany obiekt zajmuje na ekranie,, prerendering obrazu trójwymiarowego obiektu: szybciej rysowany niż obiekt który reprezentuje, dokładnie odwzorowuje obiekt, jednym z typowych zastosowań impostors jest zbór małych, statycznych elementow, możliwość użycia dla paru punktów widzenia, ulokowanych blisko siebie, ruch obrazu będącego projekcją obiektu zmniejsza się wraz ze wzrostem odległości, wolno poruszające się obiekty, usytuowane daleko od obserwatora są dobrymi kandydatami, obiekty znajdujące się blisko obserwatora a zwrócone zawsze tą samą stroną do niego, również nadaja się do zastąpienia ich przez impostors. 44/49 Impostors - generowanie inicjalizacja offscreenowego buffora z kanalem alpha = 0 (przezroczysty), rysowanie obiektu do bufora z kanalem alpha ustawionym na 1, teksele odpowiadające niezapisanym pikselom pozostają przezroczyste, podczas generowania obrazu, obiekt otaczany jest prostopadłościanem w taki sposób aby obserwator widział dokładnie jego środek, utworzony obraz orientowany jest w taki sposób aby jego normalna wystawiona w środku wskazywała dokładnie punkt patrzenia - viewpoint orented bilboard. 22
45/49 Impostor - przykład Odległy model......zamieniony przez impostor impostor połączony z modelem 46/49 Impostor - przykład cd. geometria" kamera" impostor" 23
47/49 Impostor - przykład cd. 48/49 Impostors - ograniczenia rozdzielczość tekstury stanowi ogranieczenie użyteczności impostor a nie może przekraczać rozdzielczości ekranu texres = screenres objsize 2! distance! tan( fov / 2) jeśli impostor przesunie się bliżej, poszczególne teksele tekstury staną się widoczne dla : βtex > βscr błąd dla : βtex βscr poprawnie kąt dla piksela ekranu : βscr =fov/screenres, kąt dla teksela tekstury : βtex =fov/texres. 24
49/49 Impostors - ograniczenia cd. generowanie impostor a dla poruszającego się obserwatora, błąd paralaksy, impostor musi być odświeżony za każdym razem gdy:!tex >!scr 25