Geometria obrazu Wykad 11 1 Rzutowanie skone 2
Geometria obrazu Wykład 11 1. Rzutowanie skośne. 2. Stabbing w R 3. 3. Niepunktowe źródła światła.
Rzutowanie skośne. Definicja. Dla danej płaszczyzny rzutowania z = 0 (ekranu) i dwóch prostych (osi) wyznaczanych przez przecięcia płaszczyzn (z = a) (x = 0) (prosta k) oraz (z = b) (y = 0) (prosta l) definiujemy rzutowanie skośne : R 3 {(x, y, z): z {a, b}} {(x, y, z): z = 0} w następujący sposób: punkt (p, q, 0) jest obrazem wszystkich punktów leżących na prostej m przechodzącej przez (p, q, 0) i przecinającej k i l oprócz m k i m l. l k
Lemat. Rzutowanie skośne jest zdefiniowane jednoznacznie, tzn. dla każdego punktu z R 3 {(x, y, z): z {a, b}} istnieje dokładnie jeden punkt na ekranie będący jego obrazem. Dowód. Dany punkt p i prosta l wyznaczają płaszczyznę P, która przecina prostą k w punkcie q. Punkty p i q jednoznacznie wyznaczają prostą, która przecina prostą l w punkcie r oraz ekran w punkcie s. p r l q s k
Lemat. Kierunki rzutowania punktów należących do danej prostej m wyznaczają powierzchnię paraboloidy hiperbolicznej lub hiperboloidy jednopowłokowej, w zależności od położenia prostej m.
Lemat. Obrazem przy rzutowaniu skośnym prostej niezawartej w płaszczyznach równoległych do ekranu, zawierających proste k i l, może być punkt, prosta lub hiperbola. Dowód. Punkt otrzymujemy, gdy dana prosta przecina proste k i l. Prostą otrzymamy, gdy dana prosta jest równoległa do ekranu. W pozostałych przypadkach otrzymamy hiperbolę. Fakt (ćwiczenia). Rzut skośny odcinka nie musi być spójny. Fakt (ćwiczenia). Wnętrze spójnego rzutu skośny wielokąta wypukłego może nie być spójne.
Stabbing w R 3. Rozpatrzmy następujący problem prostej przeszywającej w R 3: dla danego zbioru wypukłych wielościanów w R 3 o łącznym rozmiarze n znajdź (o ile istnieje) prostą przeszywającą wszystkie z nich. Lemat. Jeśli prosta przeszywająca istnieje, to istnieje prosta przeszywająca przechodząca przez co najmniej dwie krawędzie wielościanów. Dowód. Możemy przesunąć prostą przeszywającą w dowolnym kierunku aż dotknie jednej krawędzi w punkcie p, a następnie obrócić względem punktu p aż osiągnie drugą krawędź.
W ten sposób otrzymujemy następujący algorytm. for każda para krawędzi wielościanów do begin if wybrane krawędzie są równoległe then znajdź przekrój wielościanów płaszczyzną zawierającą wybrane krawędzie i rozwiąż stabbing dwuwymiarowy else begin przekształć afinicznie przestrzeń tak, aby wybrane krawędzie przeszły w osie rzutowania skośnego; zrzutuj wielościany na ekran; if część wspólna rzutów jest niepusta then punkty części wspólnej i odcinki wyznaczające osie wyznaczają proste przeszywające; end;
Twierdzenie. Problem stabbingu w R 3 można rozwiązać w czasie O(n 4 (n) log n). Dowód. Złożoność powyższego algorytmu wynosi: O(n 2) x (O(n log n) (rozwiązanie stabbingu planarnego) + O(n) (rzutowanie) + O(n 2 (n) log n) (znalezienie części wspólnej z wykorzystaniem ciągów Davenporta- Schinzela) ) = O(n 4 (n) log n).
Niepunktowe źródła światła. Definicja. Punkt p znajduje się w cieniu, gdy źródło światła nie jest widoczne z tego punktu. Punkt p znajduje się w półcieniu, gdy źródło światła jest częściowo widoczne z tego punktu. Punkt p znajduje się w antycieniu, gdy całe źródło światła jest widoczne z tego punktu. źródło światła przeszkoda antycień półcień antycień
Definicja. Wartość oświetlenia w danym punkcie p opisana jest następującą całką LS(p) = s M(cos out cos in /R 2)d. S Gdzie M oznacza jasność źródła światła, R jest odległością od źródła światła, a out i in odpowiednio oznaczają kąty między wektorami normalnymi do powierzchni źródła światła i badanego obiektu a odcinkiem łączącym punkt p ze źródłem światła. out R in p
Siatka nieciągłości oświetlenia. Aby realistycznie przedstawić oświetlenie sceny musimy - określić granice obszarów, w których oświetlenie zmienia się w sposób jednostajny (siatkę nieciągłości), - na tej podstawie określić oświetlenie w konkretnych punktach sceny (siatka nieciągłości pomaga w określeniu rzeczywistego rozmiaru źródła światła oświetlającego dany punkt).
W celu określenia siatki nieciągłości musimy zbadać następujące układy - EV – krawędź i wierzchołek przeszkody, - EEE – trzy krawędzie przeszkód. W pierwszym przypadku badamy płaszczyzny, w drugim zaś powierzchnie stopnia drugiego. Oczywiście nie trzeba badać wszystkich układów. Tworząc wcześniej podział przestrzeni z pomocą np. drzewa BSP i stosując algorytm podobny do algorytmu malarza jesteśmy w stanie przyspieszyć ten proces.
Gdy określimy siatkę nieciągłości, znacznie łatwiej możemy obliczyć wartość oświetlenia w danym punkcie p, gdyż granice widzialności źródła światła z punktu p wyznaczają krawędzie, których obrazy tworzą brzeg ściany siatki zawierającej punkt p. Należy z punktu p poprowadzić płaszczyzny zawierające odpowiednie krawędzie, aby określić obszary źródeł światła, które oświetlają punkt p i na tej podstawie obliczyć wartość oświetlenia w tym punkcie. Co więcej, możemy wykorzystać informacje, otrzymane w trakcie tworzenia siatki nieciągłości, w postaci zależności wzajemnego zacieniania elementów sceny. Możemy je zapamiętać w postaci grafu, po którym będziemy się przemieszczać w fazie obliczania wartości oświetlenia.
Algorytm obliczania wartości oświetlenia. zacznij od całkowicie oświetlonych elementów sceny; poruszając się po grafie opisującym zależności wzajemnego zacieniania przechodź do obiektów coraz bardziej odległych od źródeł światła; dla odpowiednich ścian siatki nieciągłości oblicz wartości oświetlenia i zsumuj je po wszystkich ścianach zawierających odpowiedni punkt; Złożoność pesymistyczna całego algorytmu wynosi O(n 4), ale w praktyce jest znacznie niższa.
Dziękuję za uwagę.
Ćwiczenia. 1. Jaki jest prostych (t, 0, 0), (t, t, t) na ekran z = 0 względem prostych (z = 1) (x = 0) oraz (z = 2) (y = 0). 2. Co mogłyby być skośnym rzutem prostej, gdyby ekran nie był równoległy do osi ? 3. Podaj przykład położenia odcinka, którego rzut nie musi być spójny. 4. Podaj przykład spójnego rzutu skośnego wielokąta wypukłego, którego wnętrze nie jest spójne.
- Slides: 16