1/49 2/49 Obiekty regularne Powierzchnie proste możliwe do wymodelowania ręcznie na podstawie poligonów lub powierzchni parametrycznych. 3/49 Opis parametryczny 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." obiekty parametryczne opisane równaniami matematycznymi, reprezentacja wielokątowa, v10 krzywe i powierzchnie, v9 v8 reprezentacja fraktalna. x2 + y2 + z2 = r2 5/49 6/49 Podział powierzchni 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). 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. Siatka (mesh) zawiera: - wierzchołki (vertex), - krawędzie (edge), - wielokąty (polygon, face). 1
7/49 Powierzchnie parametryczne 8/49 Konfiguracje trójkątów Łata Beziera ( Bezier patch) - 16 punktów kontrolnych. Optymalizacja reprezentacji wielokątowej - unikanie powtórzeń definicji wierzchołków. Składa sie z wielokątów o krawędziach będących krzywymi Beziera. Łaty łączone są w powierzchnie krzywoliniowe Beziera. v2 NURBS - uogólnienie krzywych/powierzchni Beziera. v1 v4 v5 v1 v5 v3 v6 v7 v7 konfiguracja strip konfiguracja fan punkt kontrolny v6 v4 v2 v3 B-splines - krzywe/powierzchnie parametryczne powstale poprzez polączenie łat v2 v6 v4 v1 v10 v5 v7 v9 poligon kontrolny v3 v8 konfiguracja mesh 9/49 Wizualizacja dużego terenu 10/49 Wizualizacja dużego terenu video Wizualizacja dużego terenu 11/49 12/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. Pixar s Renderman 2
13/49 Kości - na nich rozpięta jest skóra 14/49 Animacja blender Video Przykładowe animacje wygenerowane w blenderze 15/49 Obiekty nieregularne 16/49 Akwizycja obiektów 3D Odtworzenie nieregularnych obiektów jest dużo bardziej złożone... obiekt oryginalny powierzchnia spróbkowana wyrównanie powierzchni rekonstrukcja powierzchni efekt końcowy The Kiss, Rodin, 1889 17/49 Pozyskiwanie próbek 3D - CMM (Coordinate Measuring Machine) 18/49 Próbki 3D - CMM 3
19/49 20/49 Kształt z obrazów stereo Odtworzenie kształtu z obrazu stereo - dopasowanie odpowiadających sobie obrazów wykonanych przy różnym położeniu kamery, 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) 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. 21/49 Kształt z obrazów stereo - algorytm 22/49 Kształt na podstawie cieniowania dla danego piksela s1 z obrazu lewego znajdź odpowiadający mu piksel s2 w prawym obrazie dla zadanego punktu w przestrzeni 3D S, Dla zdjęć wykonanych w idealnych warunkach technika zwraca wyniki poprawne... jeśli punkty s1 oraz s2 są znane, to współrzędne punktu S można wyznaczyć na podstawie triangularyzacji. punkt na powierzchni sceny w przestrzeni 3D siatka odtworzona z obrazów 2D plan lewego obrazu 23/49 Kształt na podstawie skanera 24/49 Kształt na podstawie projekcji wzorca Odczytanie dystansu na podstawie czasu odbicia i powrotu impulsu lasera. Mozart - obraz syntetyczny plan prawego obrazu Laser/projektor wysyła wiązkę świetlną a kamera rejestruje jej położenie 4
25/49 26/49 Kształt na podstawie projekcji wzorca - idea 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 27/49 28/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 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. przestrzeń 29/49 30/49 Technika IBR (wizualizacja z wykorzystaniem obrazów 2D) video realistyczna wizualizacja obiektów 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ń. 5
31/49 sprites modele geometryczne" obrazy" bazowanie na wyglądzie" sprites" warstwy" 32/49 Efekty cz steczkowe Wizualizacja obiektów - Spektrum lumigraph oraz light field" poligony" plakaty" bazowanie na fizyce" oświetlenie globalne" + = 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, 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." pojedyncza czasteczka to najczęściej linia lub punkt (prostsza niż sprite). Każda cząsteczka może stanowić pojedynczy punkt" 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. " renderowany na scenie. 33/49 IBR: Warstwy tył ciężarówki, 34/49 Warstwy - przykład 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 video wizualizacja złożonych obiektów za pomocą danych w postaci obrazów 2D 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" 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 orientacja bilborad u - na podstawie wektora u (do góry) oraz wektora normalnego do powierzchni, tworzony prostokątny układ współrzędnych 36/49 Screen Aligned Bilboarding obiekt renderowany jest to warstw i później składany, każda warstwa traktowana jest niezależnie dym, ogień, chmury, wybuchy. iloczyn wektorowy, jeśli wektory nie są prostopadłe, wykorzystanie krawędzi bilboardu (normalizacja) i jednego z wektorów - drugi jest dopasowywany 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). ś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)! 6
37/49 World/Viewpoint Oriented Bilboarding Axial Bilboarding 38/49 w przypadku kształtów różnych od kulistych odpowiedni dobór wektora u ma znaczenie, wektor normalny - przeciwny do kierunku patrzenia, 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, billboards 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. obiekty o geometry cylindrycznej, np. drzewo, swiatło lasera. Direct3D Billboarding Tree 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 rzeczywistość courtesy of mark Harris, UNC-Chapel Hill.! http://zeus.uni-lj.si/~aleks/slicing-and-blending/! 39/49 40/49 Efekty cząsteczkowe - siatka - przykład 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 41/49 42/49 System cząsteczek - przykład video wizualizacja wybuchów za pomocą danych w postaci obrazów 2D źródło: http://www.nzone.com/object/nzone_downloads_nvidia.html 7
43/49 Impostors - generowanie 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. 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. 45/49 Impostor - przykład Odległy model... 44/49 46/49 Impostor - przykład cd....zamieniony przez impostor impostor połączony z modelem geometria" kamera" impostor" 47/49 48/49 Impostors - ograniczenia Impostor - przykład cd. 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. 8
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 9