Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni. Cieniowanie W grafice komputerowej łowo cieniowanie odnoi ię do zatoowania modeu oświetenia oraz odbić da powierzchni obiektu. Ponieważ obiekt będziem definiować prz pomoc trójkątów to prote metod cieniowania prowadzają ię do wznaczenia intenwności światła docierającego do ścianki obiektu ub jej wierzchołków. Sformułowanie cieniowanie można również odnieść do technik wpełniania dwuwmiarowch wieokątów, a w zczegóności trójkątów... Cieniowanie płakie Najprotz agortm cieniowania da obiektu złożonego z trójkątów poega na wpełnianiu trójkątów jednoitm koorem. Intenwność kooru okreśa ię na podtawie kąta jaki tworz normana do powierzchni ścianki i wektor poprowadzon z punktu umiezczenia światła do środka powierzchni. W przpadku nazch rozważań probem wznaczania intenwności światła całkowicie pominiem i kupim ię na zadaniu narowania na ekranie trójkąta wpełnionego jednoitm koorem. W ceu zreaizowania powżzego zadania można połużć ię natępującm agortmem:. Poortuj wierzchołki trójkąta wzgędem ich wpółrzędnch (od najmniejzej do najwiękzej).. Obicz przrot międz wierzchołkami trójkąta na podtawie wzorów a) d b) d c) d. ; ; 4. Ruj inię poziomą od punktu (, ) do punktu (, ) pamiętaj, ab prawdzić cz (w razie potrzeb zamień koejność punktów) 5. + d 6. + d 7. + 8. Jeżei < to kacz do punktu 4. 9. ; ; 0. Ruj inię poziomą od punktu (, ) do punktu (, ) pamiętaj, ab prawdzić cz (w razie potrzeb zamień koejność punktów). + d. + d. + 4. Jeżei < to kacz do punktu 0. - -
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni Dodam, iż przed potawieniem każdego z punktów naeż prawdzić cz mieści ię w obrębie ekranu ub okna, na którm rowan jet trójkąt. Powżz agortm poiada jedną, ecz bardzo itotną wadę. Otóż w każdej rowanej, poziomej inii muim prawdzić cz wpółrzędna końca inii nie jet mniejza od wpółrzędnej początku. W najbardziej pechowm przpadku naeż zamienić te wpółrzędne i narować inię. Podpowiem, że wadę tą można tounkowo proto uunąć anaizując ułożenie trójkąta, prozę ię przjrzeć poniżzm runkom, próbować zmodfikować agortm. (,) (,) (,) (,) (,) (,) d Da ułatwienia podam, że da trójkąta z ewej tron wrażenie ( ) wartość ujemną, natomiat da trójkąta po prawej dodatnią. ma. Cieniowanie Gouraud a Cieniowanie Gouraud a okreśane jet mianem biiniowej interpoacji kooru ub interpoacji janości. Działanie tego tpu agortmu poega na interpoowaniu wartości kooru oraz wartości natężenia światła międz koejnmi wierzchołkami trójkąta, w jego wnętrzu. R. Trójkąt po ewej tronie runku utworzon zotał w wniku interpoacji wierzchołków o janości 80%, 5% i 0%, natomiat drugi przedtawia wnik interpoacji miedz koorami: czerwonm, zieonm i niebiekim. Trzeci trójkąt powtał w wniku moduacji kooru intenwnością janości Da więkzej janości przpomnę, że interpoacja miedz dwoma wartościami poega na topniowm przejściu od wartości początkowej do wartości końcowej, proce ten można wrazić wzorem V V f + ( f ) V. Wpółcznnik f okreśa bieżąc zaięg interpoacji ub procentow udział, każdej z krańcowch wartości w wniku. Patrząc na wzór oczwite taje ię, że wpółcznnik f powinien przbierać wartości z zakreu od 0 do. W agortmie Gourauda rowan trójkąt powtaje w wniku nanozenia koejnch, poziomch inii z jednoczeną interpoacją wartości kooru oraz intenwności oświetenia. Dodatkowo muze wpomnieć, że pike tawian na ekranie jet wnikiem mnożenia kooru i wartości oświetenia. Na poniżzm runku przedtawion jet trójkąt z aktuanie rowaną inią - -
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni - - (,, ) (,, ) (,, ) p,, a p k,, b V V V Jeżei przjrzm ię temu runkowi od razu widać, że trójkąt mui bć rowan w dwóch częściach. W pierwzej, będziem wznaczai wpółrzędne początku rowanch inii ( p, ), w wniku interpoacji miedz wartością i, natomiat ich końce ( k, ), wznaczać będzie wartość otrzmana w wniku interpoacji miedz wpółrzędnmi i. Jednocześnie ze wpółrzędnmi naeż obiczać wartość kooru oraz intenwności da początku i końca aktuanej inii. ( ) p ( ) k ( ) a ( ) b Janość punktu w rowanej inii otrzmwana jet w wniku interpoacji międz wartościami a i b na podtawie natępującego wzoru ( ) k p p b a a p ;gdzie jet wpółrzędną aktuanie rowanego punktu. W trakcie rowania drugiej części trójkąta zmieniają ię tko wzor dotczące parametrów końca inii i mają natępującą potać ( ) k ( ) b Proce wpełniania trójkąta z użciem cieniowania Gouraud a można opiać natępującm agortmem.. Poortuj wierzchołki trójkąta wzgędem ich wpółrzędnch (od najmniejzej do najwiękzej).. Obicz przrot międz wierzchołkami trójkąta na podtawie wzorów a) d b) d c) d d)
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni e) f) W przpadku kooru 4-bitowego naeż interpoować każdą ze kładowch kooru oddzienie. ; ; 4. Ruj inię poziomą od punktu (, ) do punktu (, ) z płnnm przejściem kooru od c do c, pamiętaj, ab prawdzić cz (w razie potrzeb zamień koejność punktów) 5. + d + 6. d 7. c c + 8. c c + 9. + 0. Jeżei < to kacz do punktu 4.. ; ; c. Ruj inię poziomą od punktu (, ) do punktu (, ) (, ) z płnnm przejściem kooru od c do c, pamiętaj, ab prawdzić cz (w razie potrzeb zamień koejność punktów). + d 4. + d 5. c c + 6. c c + 7. + 8. Jeżei < to kacz do punktu 0. Agortm cieniowania Gourauda jet podtawowm agortmem toowanm w grafice D, rowanej w czaie rzeczwitm. Nietet nie jet won od błędów, którch głównm powodem powtawania jet metoda wznaczania natężenia światła, tko w wierzchołkach rowanch trójkątów. Efekt ten zczegónie wraźn jet w przpadku rowania dużch powierzchni utworzonch z małej iości trójkątów. W takim przpadku można uzkać nienaturane oświetenie powierzchni oraz możem utracić możiwość uzkania punktowch rozbłków. Ab epiej zrozumieć ten mechanizm, można obie wobrazić tuację, w której oświetam np. tuł, prz pomoc atarki umiezczonej protopade do jego powierzchni i w nie dużej odegłości od niej. Oczwite jet, że w efekcie tego działania uzkam bardzo intenwne, punktowe rozświetenie fragmentu tołu. Pamiętając, że agortm Gourauda użwa jednie wartości światła w rogach powierzchni tołu, to oczwite taje ię, że na ekranie uzkam obraz powierzchni tołu w jednoitm odcieniu. - 4 -
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni. Uuwanie niewidocznch powierzchni Podtawowm probemem związanm z tworzeniem trójwmiarowej grafiki, jet uuwanie niewidocznch da oberwatora powierzchni. Jedną z metod, łużącch temu ceowi jet obiczenie kąta, jaki tworz wektor norman badanej powierzchni z wektorem poprowadzonm z punktu oberwacji do środka powierzchni. Jeżei uzkan kąt zawiera ię w przedziae 0 do 90, to ścianka jet widoczna. Częściej touje ię anaizę widoczności wieokąta, już po operacji rzutowania, w przetrzeni ekranu. Jeżei zauważm, że płazczzna ekranu może odpowiadać płazczźnie XY, w przetrzeni trójwmiarowej, to oczwite jet, że da okreśenia widoczności ścianki wtarcz anaiza wpółrzędnej z wektora normanego do tej ścianki. z z Y V Y V V V V V X X Jeżei da runku po ewej tronie przjmiem, że M V V i N V V i pamiętając, że wpółrzędne z wektorów M i N ą równe 0 to ich ioczn wektorow wraża ię natępującm worem 0 0 M N M N Oczwite taje ię, że znak wpółrzędnej z determinuje widoczność ścianki. Metoda ta jet tounkowo prota, jednak jednoznacznie okreśonego poobu definiowania koejności wierzchołków, tworzącch pozczegóne ścianki, ogónie mówiąc numer wierzchołków powinn bć podawane zgodnie z kierunkiem ruchu wkazówek zegara. V V V V V V Runek Widoczna ścianka. Runek. Ścianka niewidoczna. - 5 -
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni Otatecznie można powiedzieć, że da twierdzenia widoczności ścianki wtarcz obiczć wpółrzędną z wektora, będącego wnikiem iocznu wektorowego MN na podtawie natępującego wrażenia W ( X X) ( Y Y) ( X X ) ( Y Y) W zaeżności od przjętej konwencji (wierzchołki podawane ą zgodnie z ruchem wkazówek zegara, wierzchołki ą podawane przeciwnie do ruchu wkazówek zegara) da ścianki widocznej powżze wrażenie przjmuje odpowiednio wartości ujemną, dodatnią. Tego tpu agortm nazwan jet eekcjonowaniem (ang. cuing). V4 V5 V0 V V7 V6 V V Korztając z powżzego runku, przedtawiającego ześcian, i decdując ię na koejność wierzchołków zgodną z ruchem wkazówek zegara to, prawidłowa definicja, indeków wierzchołków, dwóch pierwzch ścianek powinna bć natępująca {0,,;,,0;}. Natomiat błędnie zdefiniowane indek mogą wgądać natępująco {0,,; 0,,;}.. Z bufor Częto dochodzi do przpadku nakładania ię dwóch, ub więcej wieokątów zakwaifikowanch przez agortm eekcjonowania, jako widocznch. Przpadek taki zobrazowan jet na runku. Y W W Powierzchnia ekranu Z X Oba wieokąt zwrócone ą frontem do oberwatora, jednak eżą od niego, w różnej odegłości. Jeżei wieokąt te zotałb narowane w takiej koejności, jak ich oznaczenia to nie błob żadnego błędu. Jednak może dojść do tuacji, w której tak ułożone powierzchnie zotaną narowane w odwrotnej koejności i brła położona daej przełoni wcześniej narowan wieokąt. W ceu uniknięcia tego tpu probemów zotał opracowan w 975r. przez Catmua agortm z-bufor. Główną zaadą działania tego agortmu jet interpoacja wartości Z międz odpowiednimi wierzchołkami rowanego trójkąta. Spoób wkonania tej metod jet bardzo podobn do cieniowania Gourauda i częto jet z nim połączon. Do działania tego agortmu potrzebn jet dodatkow bufor, w którm - 6 -
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni przechowwane ą wartości Z narowanch punktów, o wiekości takiej amej jak bufor ekranu. W początkowej fazie z-bufor wpełnion jet wartościami odpowiadającmi np. położeniu tnej płazczzn obcinającej. Natępnie da każdego rowanego trójkąta przeprowadzana jet interpoacja wartości Z, odpowiednich wierzchołków. Tak wiczona wartość Z porównwana jet z aktuanie przechowwaną w buforze i w zaeżności od tego cz otrzmana wartość eż biżej, cz daej od oberwatora, niż wartość przechowwana w buforze, punkt jet tawian na ekranie, a wartość Z zapamiętwana jet w miejce tarej. W ten poób bez przezkód możem narować wieokąt jednie częściowo widoczne. Stworzenie włanej procedur obługującej z-bufor nie jet pecjanie kompikowane i może bć zreaizowane w natępując poób: Naeż poortować wierzchołki rowanego trójkąta wzgędem wpółrzędnej Y. Obiczć wartości przrotów wpółrzędnej Z, da krawędzi międz wierzchołkami -, i - zgodnie ze wzorami. Y Y zk V(z) V(z) zk V(z) dz dz dz z z z z z z Natępnie cała procedura dzieona jet na dwie części, w pierwzej przegądane ą wierze międz wierzchołkiem V-V, w drugiej międz wierzchołkami V-V. Przegądanie trójkąta w pierwzej połowie, poega na dodawaniu do zmiennch zk i zk odpowiednich przrotów dz i dz, co w efekcie powoduje, że poruzam ię po krawędziach trójkąta. W każdm przegądanm wierzu naeż przeprowadzić interpoację międz, aktuanmi wartościami zk i zk, jednocześnie porównując otrzmane wartości z iczbami przechowwanmi w z-buforze. Jeżei otrzmana wartość jet mniejza od wartości w z-buforze, to możem potawić punkt na ekranie, a bieżącą wartość Z zapamiętać w z-buforze. Cznności wkonwane da drugiej połówki trójkąta ą dokładnie takie ame, a jedną modfikacją jet to, że do zmiennch zk zk będziem dodawać odpowiednio przrot dz i dz. Agortm cieniowania Gouraud a wraz z impementacją z-bufora może wgądać natępująco:. Poortuj wierzchołki trójkąta wzgędem ich wpółrzędnch (od najmniejzej do najwiękzej).. Obicz przrot międz wierzchołkami trójkąta na podtawie wzorów a) d - 7 -
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni b) d c) d d) e) f) z z g) dz z z h) dz z z i) dz W przpadku kooru 4-bitowego naeż interpoować każdą ze kładowch kooru oddzienie. ; ; ;z z;z z; 4. Ruj inię poziomą od punktu (, ) do punktu (, ) z płnnm przejściem kooru od c do c, oraz interpoacją z od z do z ; pamiętaj, ab prawdzić cz (w razie potrzeb zamień koejność punktów) Punkt na ekran tawian jet tko wted, gd wartość z jet więkza od zera oraz mniejza od wartości aktuanie przechowwanej w z-buforze. W przpadku potawienia punktu o wpółrzędnch (,) naeż potawić aktuaną wartość z w z-buforze również w punkcie o wpółrzędnch (,). 5. + d + 6. d 7. c c + 8. c c + 9. z z + dz 0. z z + dz. +. Jeżei < to kacz do punktu 4.. ; ; c ;z z ;z z ; 4. Ruj inię poziomą od punktu (, ) do punktu (, ) z płnnm przejściem kooru od c do c, oraz interpoacją z od z do z ; pamiętaj, ab prawdzić cz (w razie potrzeb zamień koejność punktów) Punkt na ekran tawian jet tko wted, gd wartość z jet więkza od zera oraz jet mniejza od wartości aktuanie przechowwanej w z-buforze. W przpadku potawienia punktu o wpółrzędnch (,) naeż potawić aktuaną wartość z w z-buforze również w punkcie o wpółrzędnch (,). - 8 -
Grafika komputerowa Cieniowanie i uuwanie niewidocznch powierzchni 5. + d 6. + d 7. c c + 8. c c + 9. z z + dz 0. z z + dz. +. Jeżei < to kacz do punktu 4. Zadania do wkonania w trakcie ćwiczeń Napiać program rując trójkąt z interpoacją koorów (koor wierzchołków mają mieć koor odpowiednio: czerwon (55,0,0); zieon (0,55,0); niebieki (0,0,55). W trakcie wkonwania tego zadania naeż wkorztać trb 6 ub 4 bitow. Napiać program wświetając ześcian, zaimpementować agortm wkrwania niewidocznch powierzchni. - 9 -