Podstawy grafiki komputerowej Synteza realistycznych obrazów cyfrowych 3D za pomocą metody śledzenia promieni – model cieniowania Phonga
Etapy syntezy obrazu metodą śledzenia promieni 1. Promień pierwotny 2. Trafienie obiektu 3. Wyznaczenie koloru 4. Właściwości materiałowe 5. Oświetlenie 6.Promienie wtórne 7. Składanie obrazu Potok obróbki promienia
Wyznaczanie koloru powierzchni W metodzie śledzenia promieni ważne jest aby móc określić jaki kolor ma powierzchnia trafionego przez promień obiektu. Najprostszym sposobem jest przypisanie koloru dla wszystkich pikseli obiektu na stałe jednak aby osiągnąć podstawowy stopień realizmu trzeba uwzględnić różnorodność kolorystyczną powierzchni obiektu. Rozwiązaniem problemu różnorodności kolorystycznej powierzchni obiektów są tekstury, czyli bitmapy symulujące powierzchnię. Ponieważ bitmapa jest powierzchnią 2-wymiarową, dla każdego punktu dowolnego teksturowanego obiektu musi istnieć przekształcenie z 3-wymiarowej przestrzeni obiektu do 2-wymiarowej płaszczyzny bitmapy (mapowanie tekstury).
Metody mapowania tekstur Mapowanie ze współrzędnych sferycznych Mapowanie ze współrzędnych cylindrycznych Mapowanie ze współrzędnych planarnych Mapowanie dla siatek trójkątów
Materiały powierzchni i oświetlenie Tekstury służą do generowania koloru powierzchni obiektów, zwanego też pigmentem Kolor (pigment) jest podstawową własnością powierzchni, która jednak ulega modyfikacji pod wpływem światła pochodzącego z otoczenia obiektów. Kolejną cechą podstawową obiektów ( obok tekstury) jest materiał. Określa on sposób interakcji powierzchni obiektów ze światłem, w jaki sposób światło modyfikuje kolor powierzchni, jak się od niej odbija i jak przez nią przenika.
Symulacja efektów świetlnych zachodzących na powierzchni obiektów - model cieniowania Phonga Model cieniowania opisuje sposób odbijania światła przez daną powierzchnię pod różnymi kątami jej widzenia. Ilość odbitego światła pochodzącego od określonego źródła w określonym kierunku zależy od kilku czynników. Phong (1975) zaproponował podstawowy, uproszczony model cieniowania.
Model cieniowania Phonga - główne założenia W modelu cieniowania Phonga z powierzchnią obiektu oddziaływują następujące, trzy składowe oświetlenia: 1. Składowa rozproszona ( ambient ): pochodzi od światła równomiernie rozproszonego po całej scenie. 2. Składowa dyfuzyjna ( diffuse ) : światło pochodzące od konkretnego źródła światła, które zostało rozproszone na powierzchni obiektu z powodu jego faktury. 3. Składowa bezpośrednia ( specular ): światło pochodzące od konkretnego źródła światła, które zostało bezpośrednio odbite od powierzchni obiektu ( widoczne na powierzchni obiektu jako charakterystyczne podświetlenie - tzw. highlight spots).
Model cieniowania Phonga c.d. Obiekt lub sam materiał może zawierać osobne kolory dla osobnych składowych modelu Phonga. Każda składowa może mieć trzy osobne wartości dla osobnych składowych koloru: czerwonej, zielonej i niebieskiej (RGB). Ostateczny kolor promienia ( wynikowego piksela obrazu) jest równy: K = ambient + difffuse + specular Definicja składowej rozproszonej (ambient): gdzie KA jest wartością składowej ambient powierzchni obiektu, A jest sumarycznym kolorem świateł znajdujących się w scenie. Składowa ambient jest dodawana do koloru wynikowego,
Definicja składowej dyfuzyjnej (diffuse): KD - kolor dyfuzyjny powierzchni obiektu L -L P N obiekt L - wektor padania światła Di - wartość składowej dyfuzyjnej i-tego źródła światła dla kąta padania N - wektor normalny do powierzchni w punkcie P Składowa diffuse jest liczona osobno dla każdego źródła światła i dodawana do kolory wynikowego i zależy wyłącznie od kąta padania światła na punkt P, ponieważ po odbiciu światło to jest równomiernie rozpraszane we wszystkich kierunkach.
Definicja składowej bezpośredniej (specular): KS - wartość składowej specular dla powierzchni Si - wartość składowej bezpośredniej i-tego źródła światła dla kąta padania L -L P N obiekt R -D obserwator D - wektor kierunkowy promienia Ri - odbity wektor światła p - współczynnik połysku materiału Składowa specular tak jak składowa diffuse jest liczona osobno dla każdego światła, a potem dodawana do koloru wynikowego powierzch.
Model cieniowania Phonga w POV-Ray’u Program POV-Ray posługuje się następującą wersją modelu cieniowania Phonga: I = ambient + diffuse * color * (color_Lj * NLj) + phong * (NLj ')phong_size + reflection * Ir + refraction * If gdzie: ambient - symulacja światła "tła" diffuse - współczynnik dyfuzyjnego odbicia światła color - kolor oświetlanej powierzchni N - wektor normalny do oświetlanej powierzchni color_Lj - kolor wysyłany przez j-te źródło światła Lj - wektor do j-tego źródła światła phong - współczynnik odblasku Phonga phong_size - wykładnik odblasku Phonga
Lj' - wektor idealnego odbicia j-tego źródła światła od oświetlanej powierzchni reflection - współczynnik odbicia lustrzanego Ir - ilość i kolor światła dochodzącego z kierunku odbicia lustrzanego refraction - współczynnik przezroczystości If - ilość i kolor światła dochodzącego z kierunku załamania
Modele oświetlenia: Światła są nierenderowalnymi elementami sceny wpływającymi bezpośrednio na wygląd powierzchni obiektów o określonych kolorach. Sposób interakcji światła z powierzchniami jest określony modelami cieniowania, natomiast samo światło jest generowane przez obiekty „żródła światła” (light source). Sposób wytwarzania światła jest zależny od poszczególnych obiektów - świateł. Natężenie światła może zmieniać się w funkcji odległości (np. światło od lampy) lub być stałe w każdym punkcie przestrzeni ( np. światło od słońca).
Światło punktowe ( point light) Model światła punktowego opiera się na założeniu, że obiekt generuje światło we wszystkich kierunkach ( „wypromieniowane w kulę”) W wybranym punkcie przestrzeni P, wektor L światła pochodzącego od źródła znajdującego się w punkcie C jest zatem równy: L = || C-P || L C P Jeśli natężenie podstawowe światła wynosi a0 , natężenie aP w punkcie P jest równe: aP = a0 f (||P-C||) gdzie f(x) jest funkcją natężenia światła od odległości.
Światło stożkowe (spot light) Światło stożkowe jest podobne do światła punktowego ponieważ pochodzi z jednego punktu, natomiast jego rozchodzenie się jest ograniczone przez stożek. Promienie świetlne wzdłuż osi stożka mają największe natężenie. L C P V - kąt wewnętrzny - kąt zewnętrzny Dla wybranego punktu przestrzeni P światło wpływa na niego wtedy i tylko wtedy gdy:
Światło cylindryczne (directional light) Światło cylindryczne symuluje najczęściej odległe źródła światła, gdyż jego promienie świetlne są wzajemnie równoległe. Typowe światło cylindryczne jest ograniczone cylindrem o promieniu rmax.. W wewnętrznym cylindrze o promieniu rmin wszystkie promienie świetlne mają takie samo natężenie. C V L P r Dla wybranego punktu przestrzeni P światło wpływa na niego wtedy i tylko wtedy gdy:
Modyfikacja ray-tracingu – metoda energetyczna (radiosity) Metoda śledzenia promieni daje bardzo dobre wyniki przy modelowaniu odbić zwierciadlanych i bezdyspersyjnego załamania przy pewnej przezroczystości obiektów. Ray-tracing korzysta jednak z członu ambient dla wpuszczenia bezkierunkowego oświetlenia otoczenia razem ze wszystkimi innymi elementami oświetlenia globalnego, a zatem nie jest to dokładna metoda modelowania oświetlenia.
Modyfikacja ray-tracingu – metoda energetyczna (radiosity) - cd. W metodach energetycznych cała energia świetlna emitowana albo odbijana od każdej powierzchni jest odbijana lub absorbowana przez inne powierzchnie, a zatem zamiast stałego członu ambient należy określić promienie o zmiennej energii. Energia opuszczająca powierzchnię jest sumą energii emitowanej przez powierzchnię, odbijanej od powierzchni albo transmitowanej przez powierzchnię do innych powierzchni.
Metoda energetyczna - c.d. W przeciwieństwie do konwencjonalnych metod renderingu w metodach energetycznych najpierw określa się wszystkie interakcje światła w otoczeniu w sposób niezależny od obserwatora. Następnie wykonuje się rendering dla jednego lub kilku rzutów, z czym wiąże się tylko dodatkowe obliczanie powierzchni widocznych i interpolacyjne cieniowanie.
Ray-tracing vs. radiosity