wybrane aspekty teorii grafiki komputerowej
TRANSCRIPT
![Page 1: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/1.jpg)
Wybrane aspekty teorii grafiki komputerowej -dążenie do wizualnego realizmu
Mirosław Głowacki
![Page 2: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/2.jpg)
Ustawianie geometrii bryły widzenia
Rozpoczynając generowanie trójwymiarowej sceny niezbędne jest utworzenie „mapy” opisującej położenie wszystkich występujących na niej obiektów
Następnie wszystkie obecne na ekranie bryły należy poddać trzem operacjom transformacjigeometrycznych: skalowaniu translacji rotacji
ustawia to obiekty w odpowiednim położeniu oraz we właściwej skali.
![Page 3: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/3.jpg)
Ustawianie geometrii bryły widzenia
![Page 4: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/4.jpg)
Ustawianie geometrii bryły widzenia Operacje ustawiania geometrii wymagają
skomplikowanych rachunkówzmiennoprzecinkowych
Należy do tego celu zaangażować dużą moc obliczeniową
Najnowsze układy graficzne wyposażone są w specjalizowane procesory równoległe i wykonują tego typu obliczenia znacznieszybciej niż byłyby to w stanie zrobić procesory centralne komputerów.
![Page 5: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/5.jpg)
Wycinanie i zakrywanie linii niewidocznych Obiekty mogą być modelowane jedynie jako:
zbiory powierzchni lub
bryły
Tylko tak sprecyzowane mogą w sposób jednoznaczny zasłaniać inne obiekty.
Rzuty z liniami zasłoniętymi niosą mniejinformacji niż rzuty złożeniowe i przekroje
Dlatego czasami pozostawia się niektóre linie niewidoczne jako: mniej intensywne,
przerywane lub
w innych kolorach
![Page 6: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/6.jpg)
Pokój z kamerą – kolorowe linie widoczne na rysunku nie będą oczywiście wizualizowane
![Page 7: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/7.jpg)
Przetwarzanie – obraz dynamiczny Czasami obraz nie jest obrazem statycznym.
W przypadku animacji w celu skrócenia czasu obliczeń kolejnej klatki: wszystkie opisywane wcześniej
przekształcenia wykonywane są tylko raz w trakcie tzw. Preprocesingu
kolejny raz wykonywane są dopiero przy znacznych zmianach sceny graficznej lub położenia obserwatora
![Page 8: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/8.jpg)
Przetwarzanie
Dzięki temu, jeżeli tylko trójwymiarowy obraz nie zmienił się w znaczący sposób, kolejne rachunki sprowadzają się do:
zmiany punktu widzenia obserwatorazmiany położenia niektórych obiektówponownych kalkulacji oświetleniaewentualnych przesunięć kadrowania itp.
Jeżeli trójwymiarowy obraz zmienił się w znaczący sposób to następuje powtórzenie renderingu
![Page 9: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/9.jpg)
Rendering
Na przygotowane w fazie operacji geometrycznych złożone z trójkątów szkieletowe bryły akceleratornakłada wypełnienie pustych przestrzeni
wewnątrz wielokątów oraz
symuluje światła padające na wielokąty
Ten kolejny ciąg operacji w strumieniu graficznym 3D nosi nazwę renderingu
![Page 10: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/10.jpg)
Rendering
Rendering można podzielić na trzy główne procesy:
teksturowanie
oświetlanie i cieniowanie
dodawanie efektów specjalnych
![Page 11: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/11.jpg)
Teksturowanie
Najważniejszym i najbardziejskomplikowanym etapem renderingu jest teksturowanie
Zabieg ten polega na nakładaniu na trójwymiarowy szkielet płaskich obrazków nazywanych teksturami mających imitowaćspotykane w realnym świecie powierzchnie
![Page 12: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/12.jpg)
Mapowanie tekstur
Cały proces mapowania (nakładania) tekstursprowadza się do odpowiedniego owijania brył teksturami.
Problem polega na tym, iż wszystkie elementy trójwymiarowej sceny składają się z trójkątów o różnych rozmiarach.
Tekstury należy więc dopasować dowielkości odpowiadającej poszczególnych trójkątów.
Proces ten nazywa się wycinaniem (ang. clipping)
![Page 13: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/13.jpg)
Wycinanie (clipping)
Polega on na wyodrębnieniu trójkąta o żądanej wielkości z kwadratowej zazwyczaj tekstury
W tym celu określane są współrzędne trzech punktów na teksturze, a następnie przyporządkowuje się je stosownym wierzchołkom teksturowanego trójkąta
![Page 14: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/14.jpg)
Wycinanie (clipping)
![Page 15: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/15.jpg)
Teksturowanie
MIP mapping
Próbkowanie punktowe
Filtrowanie
Korekcja perspektywy
Mapowanie wybojów
Alpha-blending
![Page 16: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/16.jpg)
Teksturowanie - MIP mapping
Ponieważ z pierwotnych tekstur, które mają ściśle określony rozmiar, np. 8×8 lub 64×64 piksele, prawie nigdy nie da się wyciąć odpowiedniego pod względem rozmiarówtrójkąta do mapowanej przestrzeni
Mając to na uwadze oraz aby zapobiec ciągłemu przeskalowywaniu tekstur opracowano mechanizm MIP mappingu (Multum in Parvo -wiele w niewielu)
![Page 17: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/17.jpg)
MIP mapping
Przed renderowaniem sceny z każdej tekstury tworzonych jest kilka (zazwyczaj osiem) tzw. map MIP.
Mapy MIP to nic innego jak zmniejszone bitmapy utworzone na podstawie tekstury wzorcowej.
Każda kolejna mapa MIP jestczterokrotnie mniejsza od poprzedniej.
![Page 18: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/18.jpg)
MIP mapping
![Page 19: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/19.jpg)
MIP Mapping
Jeśli pierwsza miała rozmiar 256×256 pikseli, to następna będzie miała wielkość128×128 punktów, kolejna 64×64 itd.
Przy nakładaniu na trójkąt tekstury do wycinania wybierana jest jedna lub dwie sąsiednie ze zbioru map MIP.
Do poteksturowania obiektu trójwymiarowego używa się tej tekstury, której rozdzielczość jest wystarczającado reprezentowania obiektu obserwowanego z pewnej odległości.
Właśnie od odległości zależy, która mipmapa zostanie wybrana.
Im obiekt znajduje się dalej od obserwatora, tym mniejszą zajmuje powierzchnię i tym mniejsza teksturajest potrzebna.
![Page 20: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/20.jpg)
MIP Mapping
Przykładowo: Jeśli obiekt ma wymiary ok. 10x13 pikseli, to do jego
poteksturowania wystarczy tekstura 16x16, Jeśli obiekt ma ok. 54x40 to wystarcza tekstura 64x64
itd.
W obu przykładach nie ma sensu odwoływać się do tekstury o najwyższej rozdzielczości (powiedzmy 256x256) bo i tak duża część pikseli nigdy niebędzie widoczna.
W praktyce najczęściej nie jest wybierana jednamipmapa, ale brane są dwie najbliższe i dokonywana jest ich interpolacja.
![Page 21: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/21.jpg)
Przykładowe MIP mapy
![Page 22: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/22.jpg)
MIP mapping
Tekstura nałożona: bez MIP mappingu (z lewej) i z MIP mappingiem (z prawej)
![Page 23: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/23.jpg)
MIP Mapping
Zalety mipmappingu: Wstępne usuwanie zakłóceń skalowanych tekstur, co
ma istotne znaczenie w grafice czasu rzeczywistego (gry komputerowe, symulatory lotu).
Zwiększenie prędkości teksturowania, ponieważ przetwarzana jest o wiele mniejsza liczba pikseli tekstury.
Wady: Zwiększenie wymagań pamięciowych o 1/3.
Mipmapping jest implementowany sprzętowo w kartach grafiki.
![Page 24: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/24.jpg)
Teksturowanie - próbkowanie punktowe
Zastosowanie MIP mappingu nie rozwiązuje w pełni problemu dokładnego dopasowania tekstur do wielkości trójkątów.
Dlatego bardzo często przy teksturowaniu, pojedyncze teksele, czyli najmniejsze elementy (punkty) tekstury, powielane są w różnych miejscach wielokąta.
Technika przyporządkowania każdemu pikselowi trójkąta tylko jednego teksela tekstury i w razie potrzeby kilkukrotnego powielenia punktów nosi nazwę próbkowania punktowego (ang. point samplingtexturing)
![Page 25: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/25.jpg)
Próbkowanie punktowe
Wadą tego sposobu jest to, że powielenie jednego punktu do kilku objawia się efektem potocznie nazywanym pikselozą – widoczne stają się kolorowe piksele
Jest to szczególnie wyraźne wtedy, gdy teksturamusi pokryć obszar znacząco większy niż ona sama
Aby uniknąć powyższego efektu korzysta się z tzw. filtrowania tekstur
![Page 26: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/26.jpg)
Teksturowanie - filtrowanie
Filtrowanie tekstur można dokonać na różne sposoby. Do najważniejszych należą:
filtrowanie dwuliniowe
filtrowanie trójliniowe
filtrowanie anizotropowe
![Page 27: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/27.jpg)
Filtrowanie dwuliniowe
(ang. bilinear filtering) Polega na przyporządkowaniukażdemu punktowi teksturowanego trójkąta nie jednego koloru teksela, ale barwy otrzymanej w wyniku interpolacji czterech sąsiednich tekselitekstury
![Page 28: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/28.jpg)
Filtrowanie trójliniowe
Bardziej zaawansowaną metodą jest filtrowanie trójliniowe (ang. Trilinear filtering) polegające na tym, że do ujednolicania barwy zamiast sąsiednich tekselistosuje się dwie kolejne mapy MIP
Najpierw poddaje się interpolacji dwuliniowej mapę pierwszą, bezpośrednio mniejszą - później drugą, bezpośrednio większą np. jeśli trójkąt wymaga wycinania z mapy o rozdzielczości
100 tekseli, to brane są pod uwagę mapy 64x64 i 128x128
Dopiero uśredniony wynik obu tych operacji (w sumie interpolujemy wartość ośmiu tekseli) nakłada się na mapowany trójkąt
![Page 29: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/29.jpg)
Filtrowanie dwu i trójliniowe
Różnica pomiędzy filtrowaniem dwuliniowym (po lewej), a trójliniowym (po prawej).
Strzałkami oznaczono miejsca widocznych przejść pomiędzy poziomami szczegółowości mipmap.
![Page 30: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/30.jpg)
Filtrowanie anizotropowe
Filtrowanie to (ang. anisotropic filtering) jest najbardziej zaawansowaną metoda filtrowania wymagająca największej mocy obliczeniowej.
Bierze ona dodatkowo pod uwagę orientację przestrzenną tekseli względem obserwatora, dzięki czemu obszary, z których interpolowane są brakujące wartości, układają się w kształt elipsy, prostokąta lub rombu (długa oś wyznacza kierunek obserwacji)
![Page 31: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/31.jpg)
Filtrowanie anizotropowe
Filtrowanie anizotropowe umożliwia zatem zachowanie oryginalnego kształtu tekstur również na obiektach znajdujących się pod pewnym kątem w stosunku do obserwatora
![Page 32: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/32.jpg)
Teksturowanie - korekcja perspektywy
Podczas odwzorowania często występują problemy z zachowaniem odpowiedniej perspektywy. Dotyczy to: dużych trójkątów z nałożonymi teksturami (np. ściany, sufity lub
podłogi)
znajdujących się niemal prostopadle do płaszczyzny ekranu
Elementy sceny rozjeżdżają się, dając dziwne powykrzywiane wzory spowodowane załamywaniem się tekstur lub ich znikaniem (np. w scenach z długim tunelem).
Błąd ten wynika ze złej metody uwzględnienia położeniawielokąta w przestrzeni.
![Page 33: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/33.jpg)
Teksturowanie - korekcja perspektywy
W celu wyeliminowania tych niepożądanych efektów stosuje się algorytmy korekcji perspektywy (ang. perspective correction)
Metoda ta polega na: stworzeniu wirtualnego punktu w nieskończoności. nastepnie każda linia poprowadzona z dowolnego
miejsca obrazu musi zbiec się w owym punkcie. dopiero wówczas akcelerator, zgodnie z zasadą rzutu
perspektywicznego, nakłada tekstury już bez tych niechcianych deformacji.
![Page 34: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/34.jpg)
Teksturowanie - korekcja perspektywy
brak perspektywy
po korekcji perspektywy
po filtrowaniu dwuliniowym
![Page 35: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/35.jpg)
Teksturowanie - korekcja perspektywy
![Page 36: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/36.jpg)
Mapowanie wybojów
Mapowanie wybojów powoduje złudzenie, że obiekt nie jest gładki, a chropowaty.
Gdy na niego patrzymy zdaje nam się, że widzimy wyboje, rysy czy rowki
Z jednej strony wybój (wypukłość) będzie jasny, z drugiej ciemny.
Należy pamiętać, że mapowanie wybojów to efekt manipulujący wyłącznie grą światła a nie wielokątami
![Page 37: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/37.jpg)
Mapowanie wybojów
Metody mapowania wybojów można podzielić na: Mapowanie wypukłości (bump mapping)
Tłoczenie wybojów (emboss bump mapping)
Środowiskowe mapowanie wybojów (Environment-Mapped Bump Mapping, EMBM)
DOT 3 mapping
Często jest łączone z mapowaniem środowiska
Multiteksturowanie
Mapowanie trójwymiarowe
![Page 38: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/38.jpg)
Mapowanie wypukłości
W metodzie tej dla każdej tekstury tworzone są tzw. mapy wybojów (ang. bump maps).
Są one płaskimi bitmapami, podobnie jak zwykłe tekstury,
Jasność poszczególnych pikseli określa położenie (wysokość) tekseli nad płaszczyzną tekstury
Mapa wybojów jest nakładana na pierwotną teksturę,
Dzięki temu otrzymujemy dodatkową informację o usytuowaniu każdego teksela względem płaszczyzny tekstury.
![Page 39: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/39.jpg)
Mapowanie wypukłości
![Page 40: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/40.jpg)
Mapowanie wypukłości
![Page 41: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/41.jpg)
Tłoczenie wybojów
Sprawdza się ono dobrze wtedy, gdy
na tekstury spoglądamy pod niewielkim kątem lub
są one nakładane na poruszające się obiekty.
Tłoczenie realizowane jest w trzech etapach
W pierwszym z nich z mapy opisującej wygląd wypukłości (mapy
wybojów) tworzone są dwa monochromatyczne obrazy.
Jeden zostanie wykorzystany do przedstawienia obszarów
jaśniejszych, a drugi będzie odpowiadał za fragmenty zacienione
![Page 42: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/42.jpg)
Tłoczenie wybojów
W drugiej fazie obie bitmapy przesuwane są o kilka pikseli względem siebie (jedna do tyłu, druga do przodu) wzdłuż kierunku padającego światła
Ostatni z etapów polega na zlaniu rozsuniętych bitmap(przy wykorzystaniu omawianego w dalszej części prezentacji alpha-blendingu) z właściwą teksturą obiektu
![Page 43: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/43.jpg)
Tłoczenie wybojów
Od lewej: obiekt 3D obłożony zwykłą teksturą,
obiekt 3D obłożony mapą wybojów, obiekt 3D
obłożony mapą wybojów i teksturą
![Page 44: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/44.jpg)
Torus z wgłębieniami – funkcja wgłębień określona ręcznie
![Page 45: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/45.jpg)
Truskawka z wgłębieniami – funkcja wgłębień określona ręcznie
![Page 46: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/46.jpg)
Jednoczesne teksturowanie, oświetlanie i mapowanie wybojów
![Page 47: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/47.jpg)
Środowiskowe mapowane wybojów
W bardziej zawansowanych metodach bump-mappingu dodatkowo wykorzystuje się tzw. mapy środowiska (ang. environment maps).
Mapowanie środowiskowe w połączeniu z bump-mappingiem pozwala otrzymać zaawansowaneefekty, takie jak falująca powierzchnia wody, w której odbijają się nadbrzeżne drzewa.
![Page 48: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/48.jpg)
Środowiskowe mapowane wybojów
Uzyskanie takich rezultatów możliwe jest dzięki nałożeniu w jednym przebiegu trzech bitmap: podstawowej tekstury,
mapy wypukłości oraz
mapy środowiska.
Mapa wybojów nakładana jest na mapę środowiska,
W wyniku tego powstaje zaburzona mapa środowiska (ang. perturbed environment map), a następnie łączona jest ona z właściwą teksturą nakładaną na obiekt
![Page 49: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/49.jpg)
Środowiskowe mapowane wybojów II ćwiartka – obraz szkieletowy I ćwiartka – tekstura III ćwiartka – mapa wybojów IV ćwiartka – sumaryczna mapa w środowisku
![Page 50: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/50.jpg)
Środowiskowe mapowane wybojów
Mapy środowiska zawierają w sobie informacje m.in. o refleksach na powierzchni przedmiotu od rozstawionych na generowanej scenie wielokolorowych:
świateł lustrzanych,
odbić i refleksów świetlnych, które pochodzą od innych przedmiotów otaczających obiekt
![Page 51: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/51.jpg)
Środowiskowe mapowane wybojów W procesie
mapowania środowiskowego dzięki nałożeniu na pierwotną teksturę przedmiotu bitmapy środowiskowej uzyskujesięwszelkiego rodzaju efekty luster, szklanych drzwi, itp.
![Page 52: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/52.jpg)
Środowiskowe mapowane wybojów
dla każdej powierzchni obliczany jest kąt odbicia padającego światła (dla wielu źródeł wyliczany jest najpierw wektor wypadkowy).
następnie otrzymana wartość modyfikowana jest zgodnie z danymi zapisanymi w tzw. mapie odbić (zawiera informacje o połyskujących fragmentach powierzchni)
na koniec całość łączona jest z właściwą teksturąobiektu.
![Page 53: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/53.jpg)
Mapowanie środowiska
![Page 54: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/54.jpg)
Mapowanie środowiska
![Page 55: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/55.jpg)
Środowiskowe mapowane wybojów
W przypadku mapowania środowiskowego obrazy przedmiotów na lśniącej powierzchni wyglądają dobrze do momentu, gdy ani obserwator, ani przedmiot nie zmieniają swojego położenia.
W chwili gdy przedmiot nieznacznie się przemieści, wystarczy przesunąć punkt zaczepienia tekstury.
Jeśli jednak przemieszenie jest zbyt duże, odbicia ulegają silnemu zniekształceniu.
![Page 56: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/56.jpg)
DOT 3 mapping
Rozwiązaniem
powyższego
problemu polega
na nakładaniu na
bryłę nie jednej,
ale sześciu
tekstur
odpowiadających
obrazowi dolnej,
górnej i czterech
bocznych części
otoczenia
obiektu.
![Page 57: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/57.jpg)
DOT 3 mapping
![Page 58: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/58.jpg)
Multiteksturowanie
Podczas teksturowania, w większości przypadków na jeden obiekt nakładanych jest kilka różnych bitmap.
Im więcej mapowanych jest tekstur, tym potrzeba większej mocy obliczeniowej akceleratora.
Szybkie chipy graficzne przeznaczone do użytku domowego umożliwiają mapowanie do kilkudziesięciu gigatekseli w ciągu jednej sekundy.
Tę podaną wartość nazywa się współczynnikiem fillrate i określa ona teoretyczną szybkość procesu wypełniania wielokątów przez procesor graficzny.
![Page 59: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/59.jpg)
Mapowanie trójwymiarowe
W pakiecie Microsoft DirectX począwszy od wersji 8.0 programiści uwzględnili obsługę całkiem nowego rodzaju tekstur, a mianowicie tekstur 3D
Podobne funkcje zaimplementowano też już w bibliotekach OpenGL 1.2
Oczywiście techniki tekstur trójwymiarowych nie są niczym nowym, gdyż z obrazów tego typu, nazywanych często warstwowymi lub wolumetrycznymi, od dłuższego czasu korzystają lekarze wykonujący komputerową tomografię
![Page 60: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/60.jpg)
Mapowanie trójwymiarowe
Nowa technika oznacza przede wszystkim, iż tekstury przestają wyłącznie okrywać powierzchnię przedmiotów, ale wnikają wgłąb nich.
W przypadku tekstur 3D proces obliczeniowy jest wyjątkowo prosty. Aby obejrzeć wnętrze bryły należy części tekseli (wokseli) nadać atrybut przezroczystości.
Można wtedy zobaczyć wszystkie najdrobniejsze detale, gdyż budowa i faktura wnętrza zawarte są w mapie wolumetrycznej.
![Page 61: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/61.jpg)
Mapowanie trójwymiarowe
![Page 62: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/62.jpg)
Mapowanie trójwymiarowe
Objętość trójwymiarowych tekstur jest jednak wyjątkowo duża. Np. 32-bitowa dwuwymiarowa tekstura o wymiarach 16×16 pikseli ma objętość 1024 bajtów.
Po dodaniu trzeciego wymiaru (16×16×16 punktów) rozrasta się jednak do 16 384 bajtów!
Tak znaczne pojemności przetwarzanych obiektów wymagają od systemu olbrzymiej przepustowości magistrali pamięci i stosowania algorytmów kompresji tekstur
![Page 63: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/63.jpg)
Alpha-blending
Aby określić stopień przezroczystości tekstury wykorzystywany jest tzw. kanał alfa, a cała technika nazywana jest alpha-blendingiem
Kanał alfa jest parametrem określającym stopień przezroczystości nakładanej tekstury. Przyjmuje on wartości od zera (obiekt zupełnie transparentny) do
255 (powierzchnia nieprzezroczysta)
Jeśli nałożona zostanie tekstura z kanałem alfa równym zero, nic się nie zmieni na rysunku, tekstura będzie niewidoczna
![Page 64: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/64.jpg)
Alpha-blending
Jeżeli wartość kanału wynosi np. 128, wówczas obłożony nią obiekt będzie półprzezroczysty, a znajdujące się za nim przedmioty będą przezeń widoczne.
Przy maksymalnej wartości mamy do czynienia z typową nieprzezroczystą teksturą
Wartość kanału alfa jest jednym z czterech parametrów opisujących teksturę.
![Page 65: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/65.jpg)
Kule i szachownica
![Page 66: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/66.jpg)
Alpha-blending
Praktycznie wszystkie nowoczesne akceleratory potrafią obsługiwać 32 bitowy kolor.
Jak wiadomo do przedstawienia pełnej palety barw wystarczą 24 bity
Brakujące osiem bitów to właśnie kanał alfa, a tekstury takie nazywane są RGBA
Trzy kolory składowe oraz kanał alfa.
![Page 67: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/67.jpg)
Alpha-blending z mapowaniem środowiska
![Page 68: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/68.jpg)
Cieniowanie Bardzo ważnym elementem sceny jest oświetlenie. To
właśnie odpowiednie dobranie oświetlenia sprawia, że cała trójwymiarowa scena nabiera prawdziwej głębi 1. etap - kalkulacja oświetlenia – obliczane są wektory natężenia
światła dla każdego z wierzchołków trójkątów tworzących scenę 3D lub nawet dla każdego piksela
2. etap - zostają one zamienione na odpowiednią jasność na powierzchniach wielokątów z nałożonymi nań teksturami
Drugi etap generowania trójwymiarowego obrazu nazywa się cieniowaniem (ang. shading)
Niektórzy używają tego pojęcia dla całości procesu, ale to dwa oddzielne typy algorytmów
![Page 69: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/69.jpg)
Oświetlanie sceny Obliczenia związane z oświetleniem polegają na określeniu
współrzędnych oraz typów źródeł światła punktowe,
rozproszone,
ruchome
i obliczaniu natężenia promieniowania w każdym z wierzchołków
W wyniku tego procesu do poszczególnych punktówsceny zostają przypisane wektory określające natężenie światła w danym miejscu
Karty graficzne wyposażone w moduł T&L (Transform & Lighting) wykonują najbardziej czasochłonne obliczeniazwiązane z oświetleniem samodzielnie, bez udziałuprocesora głównego
![Page 70: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/70.jpg)
Efekt oświetlania
i cieniowania
![Page 71: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/71.jpg)
Oświetlenie światłem otoczenia
W najprostszych rozwiązaniach zakłada się, że światło dociera ze wszystkich kierunków
Zakłada się wtedy stałe oświetlenie obiektów niezależnie od ich pozycji i orientacji
Powstały obraz jest mało realistyczny ponieważ bardzo niewiele rzeczywistych scen jest oświetlanych w ten sposób
![Page 72: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/72.jpg)
Pokój z kamerą oświetlony przez światło otoczenia
![Page 73: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/73.jpg)
Punktowe i kierunkowe źródła światła
Modele oświtlenia punktowym i kierunkowym źródłem światła mają cechy wspólne
Oświtlenie punktowym źródłem światła – jasnośćobiektu zmienia się w zależności od kierunku i odległości od źródła
Oświtlenie kierunkowym źródłem światła – źródło światła znajduje się daleko od oświetlanego obiektu i promienie są równoległe
![Page 74: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/74.jpg)
Dodatkowe możliwości oświetlenia
Modele podstawowe są często modyfikowane poprzez:
stosowanie barwnych świateł i powierzchni
model oświetlenia Warna – światło jest modelowane jako odbicie zwierciadlane od jednego punktu oświetlanego przez punktowe źródło światła
wieloma źródłami światła
![Page 75: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/75.jpg)
Rendering waz – model oświetlenia Cooka-
Torrence’a: a) plastik, b) miedź
![Page 76: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/76.jpg)
Samochód oświetlony przez pięć świateł ze sterowaniem Warna
![Page 77: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/77.jpg)
Oświetlanie
klapy Warna – odpowiednik przysłon reflektorów fotograficznych
stożki Warna – światło rozchodzi się tylko w obszarze ograniczonym stożkiem z wierzchołkiem w źródle światła
modele oświetlenia mające podłoże fizyczne
![Page 78: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/78.jpg)
Cieniowanie
Istnieje wiele metod cieniowania. Najważniejsze z nich to:
cieniowanie płaskie
cieniowanie interpolacyjne Gourauda
cieniowanie Phong’a
![Page 79: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/79.jpg)
Cieniowanie płaskie
Cieniowanie płaskie (ang. flat shading) jest najprostszą metodą cieniowania.
Polega ono na przyporządkowaniu całej powierzchni trójkąta jednego poziomu jasności
Dodatkowo uwzględnia barwy w przypadku gdy na scenie, rozstawione są kolorowe źródła światła.
Poziom jasności i barwa są określane przez jeden z jego wierzchołków – zazwyczaj przez znajdujący się najbliżej obserwatora
![Page 80: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/80.jpg)
Cieniowanie płaskie
Oznacza to, że każdemu trójkątowi przypisuje się jeden ściśle określony odcień, niezależnie od otaczających go wielokątów.
Zakłada się wtedy również rozproszone odbicie światła
Niestety, rezultaty cieniowania płaskiego nie są zadowalające, gdyż szczególnie na okrągłych przedmiotach (np. kulach) uzyskuje się efekt kanciastości obiektów, wynikający z gwałtownychzmian jasności przylegających do siebie trójkątów.
![Page 81: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/81.jpg)
Indywidualne cieniowanie płaskie
![Page 82: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/82.jpg)
Cieniowanie płaskie i cieniowanie Gourauda
![Page 83: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/83.jpg)
Cieniowanie Gourauda
Cieniowanie to (ang. Gouraud shading) zakłada, iż pojedynczy odcień wnętrza każdego trójkąta powstaje z interpolacji:
kolorów świateł
natężenia światła występujących w każdym z jego wierzchołków
Przy okazji uwzględniona zostaje w pewnym zakresie jasność sąsiednich wielokątów
![Page 84: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/84.jpg)
Cieniowanie płaskie i cieniowanie Gourauda
![Page 85: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/85.jpg)
Cieniowanie wielokątów metodą Gourauda z odbiciem rozproszonym
![Page 86: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/86.jpg)
Cieniowanie Gourauda
W metodzie tej wnętrzu trójkąta przypisuje się nie jeden, ale kilka różnych poziomów jasności
Otrzymane są one przez interpolacje natężeniaświatła wzdłuż linii przechodzącej przez trójkąt i biegnącej od obserwatora do punktu w nieskończoności
Zakłada zwierciadlane odbicie światła.
![Page 87: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/87.jpg)
Cieniowanie Gourauda
Wreszcie, każdy wielokąt jest cieniowany na zasadzie: interpolacji liniowej między wierzchołkami wzdłuż każdej krawędzi,
a potem między krawędziami wzdłuż każdego przeglądanego wiersza w
sposób przedstawiony równaniami z prawej strony rysunku
Określenie cieniowanie Gourauda jest często uogólniane na: cieniowanie metodą interpolacji jasności jednego wielokąta albo na interpolację dowolnych barw związanych z wierzchołkami
wielokąta.
![Page 88: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/88.jpg)
Cieniowanie Gourauda
W ten sposób zostają zachowane płynne przejścia poziomów jasności pomiędzy poszczególnymiwielokątami,
Nie ma przylegających do siebie obszarów o drastycznie różnych poziomach natężenia światła.
Co ciekawe, cieniowanie Gourauda wywołujezłudzenie gładkości sferycznych obiektówzłożonych nawet z niewielkiej liczby trójkątów
![Page 89: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/89.jpg)
Cieniowanie wielokątów metodą Gourauda z odbiciem zwierciadlanym
![Page 90: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/90.jpg)
Cieniowanie Phonga Spośród klasycznych, najbardziej zaawansowanym i
skomplikowanym pod względem obliczeniowym sposobem odwzorowywania jasności obiektów jest cieniowanie Phonga(ang. Phong shading), nazywane też techniką per-pixel lighting.
W metodzie tej kolor i natężenie światła przyporządkowywane są oddzielnie do każdego punktu sceny 3D - piksela obrazu
W metodzie tej interpolacji podlega wektor normalny do powierzchni na podstawie normalnych wektorów węzłowych.
Jasność wewnątrz trójkąta może się zatem wyraźnie różnić od wartości węzłowych
![Page 91: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/91.jpg)
Wielokąty cieniowane metodą Phonga z odbiciem zwierciadlanym
![Page 92: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/92.jpg)
Porównanie metod Phongai Gorauda
![Page 93: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/93.jpg)
Cieniowanie Phonga z krzywoliniową interpolacją kształtu obiektów
Często w celu poprawienia wyglądu sceny stosuje się prymitywy krzywoliniowe – np. bikubiczne płaty powierzchni – metodę modelowania niektórych powierzchni
![Page 94: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/94.jpg)
Powierzchnie krzywoliniowe z odbiciem zwierciadlanym
![Page 95: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/95.jpg)
Zastosowanie wielu źródeł światła w stosunku do sceny
Obrazy oświetlone jednym źródłem światła nie zawsze wyglądają naturalnie.
Często w celu poprawienia wyglądu sceny stosuje się oświetlanie bardziej złożone, uwzględniające wiele źródeł światła, odbiciaświatła, itp.
Dodatkowe efekty daje nałożenie tekstury
![Page 96: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/96.jpg)
Ulepszony model oświetlania i wiele świateł
![Page 97: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/97.jpg)
Cieniowanie z odwzorowaniem tekstury
![Page 98: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/98.jpg)
Oświetlenie globalne
W celu dalszej poprawy jakości obrazu stosuje się wzajemne oddziaływanie obiektów:
mapowanie środowiska,
algorytmy z oświetleniem obiektami sceny graficznej
Oddziaływanie takie może dotyczyć zarówno oświetlenia pochodzącego od obiektów sceny jak i być uzupełnione innymi efektami, takimi jak odbicia
Wszystko to składa się na pojęcie OŚWIETLENIA GLOBALNEGO
![Page 99: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/99.jpg)
Odwzorowanie z oddziaływaniem wzajemnym obiektów
![Page 100: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/100.jpg)
Obraz z odbiciami
![Page 101: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/101.jpg)
Śledzenie promieni
Algorytm uwzględnia cienie, załamania i odbicia
Występują promienie pierwotne i wtórne pochodzące od odbić, załamań, itp.
Odbicia i załamania światła mogą być wielokrotne
![Page 102: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/102.jpg)
Śledzenie promieni – klatka z filmu Quest
![Page 103: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/103.jpg)
Śledzenie promieni: funkcje do modyfikacjibarw, normalnych do powierzchni i przezroczystości prawie w każdym pikselu
![Page 104: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/104.jpg)
Algorytm śledzenia promieni
Z punktu w którym znajduje się obserwatorwyprowadzany jest promień pierwotny, który przecina rzutnięw miejscu analizowanego piksela
Dla takiego promienia wyszukiwany jest najbliższy punkt przecięcia z obiektamiznajdującymi się na scenie graficznej.
![Page 105: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/105.jpg)
Algorytm śledzenia promieni
Następnie dla każdego źródła światła zdefiniowanego na scenie wyznaczana jest jasnośćw tym punkcie, zgodnie z określonym modelem oświetlenia (np. Lamberta czy Phonga).
Najczęściej także określa się cienie – w tym celu jest testowana widoczność źródła światła z danego punktu, tj. czy światło nie jest przesłaniane przez jakiś obiekt
Jeśli nie – to dopiero wtedy oblicza się jasność punktu dla tego źródła.
![Page 106: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/106.jpg)
Algorytm rekurencyjny śledzenia promieni Algorytmie rekurencyjny sprawdza
czy punkt przecięcia należy do obiektu
odbijającego światło lub
przezroczystego,
Jeśli tak, to z tego punktu wysyłane są promienie wtórne:
promień odbity i/lub
promień załamany
Następnie algorytm rekursywniepowtarza się od wyszukiwania najbliższego punktu przecięcia z obiektami sceny.
![Page 107: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/107.jpg)
Algorytm rekurencyjny śledzenia promieni W większości przypadków
ogranicza się liczbę przejść rekurencyjnych.
Kolor punktu wyznaczany jest dopiero, gdy znane są wynikiprzetwarzania promieni wtórnych.
Zwykle projektant podaje procentowo wpływ kolorów z promieni wtórnych, tj. określa stopień odbicia/załamaniaświatła przez obiekt.
![Page 108: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/108.jpg)
Śledzenie promieni
![Page 109: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/109.jpg)
Śledzenie promieni - przykład Obserwator znajduje się w punkcie O
Na scenie umieszczone zostały dwa światła L1 i L2 oraz trzy obiekty:
a (elipsa): nieprzezroczysty, nie odbija światła,
b (koło): przezroczysty, odbija światło,
c (prostokąt): tylko odbija światło.
Z punktu O wyprowadzany jest promień pierwotny (zielony), który przechodząc przez punkt rzutni trafia w obiekt b
Ponieważ odbija i załamuje światło, toteż z punktu przecięcia wypuszczane są dwa promienie wtórne: odbity (czerwony) i załamany (niebieski).
Promień odbity trafia z kolei w obiekt a – tutaj już nie są generowane żadne promienie wtórne.
![Page 110: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/110.jpg)
Śledzenie promieni - przykład Z kolei promień załamany znów trafia w
obiekt b i ponownie ulega załamaniu (tak naprawdę powinien tutaj być jeszcze promień odbity, ale ze względu na przejrzystość rysunku został pominięty).
Ten promień trafia w obiekt c, który odbijaświatło, toteż generowany jest tylko jeden promień wtórny (odbity), który jednak nie przecina się z żadnym obiektem na scenie i na tym kończy się analiza.
Kreskami przerywanymi zaznaczono pomocnicze promienie, służące określeniu widoczności świateł w punktach przecięcia (dla punktów obiektu b te promienie nie zostały narysowane)
Jak widać zarówno inne obiekty (b) jak i sam obiekt (a) może blokować światło.
![Page 111: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/111.jpg)
Metoda energetyczna Brana jest pod uwagę zasada zachowania energii promieni
świetlnych w środowisku zamkniętym Całkowita energia emitowanana lub odbijana przez jedną
powierzchnię jest odbijana lub pochłaniana przez innepowierzchnie
We wcześniej prezentowanych rozwiązaniach źródłoświatła i powierzchnie przez nie oświetlane były traktowane oddzielnie
Metoda energetyczna zakłada, że każda powierzchnia może emitować światło
Źródła światła zawsze mają pewną powierzchnię Powierzchnie dzieli się na niewielkie płaty Rozpraszające powierzchnie są zabarwione barwami
innych powierzchni
![Page 112: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/112.jpg)
Sześcian (na rysunku brak
emitującej białej ściany
przedniej). Metoda energetyczna
– zdjęcie (a) z widocznym
efektem „rozlewania barwy”,
rendering klasyczny przy 49
płatach na ścianę (b i c) -
cieniowanie stałe (b) i
interpolowane (c)
![Page 113: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/113.jpg)
Efekty specjalne Ostatnim etapem renderingu sceny 3D jest
dodanie tzw. efektów atmosferycznych (ang. atmospheric effects).
Nazwa ta niezbyt dobrze oddaje sens nakładanych na scenę elementów, gdyż oprócz typowych zjawisk atmosferycznych, takich jak mgły, opary nad lustrem wody, falowanie rozgrzanego powietrza, mżawka.
zalicza się do nich dym, ogień oraz zmętnienia lustra wody, itp.
![Page 114: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/114.jpg)
Efekt mgły
W programach najczęściej wykorzystywanym efektem atmosferycznym jest mgła (ang. fog).
Tworzy się ją za pomocą czterech różnychtechnik:
mgła liniowa
tablica mgieł
mgła wykładnicza
mgła wolumetryczna
![Page 115: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/115.jpg)
Efekt mgły
![Page 116: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/116.jpg)
Mgła w tle
![Page 117: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/117.jpg)
Mgła liniowa
Najprostszą z technik tworzenia jest tzw. mgła liniowa (ang. linear fog). Stosowanie tej metody polega na liniowym zamgleniu obiektów wraz ze wzrostem ich odległości od obserwatora.
Wykorzystuje się w tym przypadku funkcje liniowe
![Page 118: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/118.jpg)
Tablica mgieł
Lepszą i częściej stosowaną metodą jest tzw. tablica mgieł (ang. table fog).
W tym przypadku stopień zamglenia, zależny od odległości od obserwatora, zapisany jest w przygotowanej uprzednio tablicy.
Ta metoda doskonale się sprawdza w przypadku tworzenia takich efektów, jak
opary nad powierzchnią jeziora,
nieciągłe smugi mgły nad bagnami itp.
![Page 119: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/119.jpg)
Mgła wykładnicza
Trzecim sposobem otrzymywania mgły jest tzw. mgła wykładnicza (ang. Expotentialfog).
W działaniu przypomina ona efekty uzyskiwane za pomocą tablicy mgieł.
Jednak w tym przypadku nie wymaga się predefiniowania stopni zamglenia, które obliczane są na bieżąco na podstawie zaprogramowanej funkcji wykładniczej.
![Page 120: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/120.jpg)
Mgła wolumetryczna
Do jej tworzenia mgły wolumentarycznej(ang. volumetric fog) wykorzystywane są półprzezroczyste tekstury trójwymiarowe.
Mgła zbudowana jest z warstw o różnej gęstości, co pozwala na wyjątkowo realne odwzorowanie otaczającego nas świata.
![Page 121: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/121.jpg)
Zamglenie tła
W realnym świecie, odległe obiekty, jak np. góry na horyzoncie, zawsze są widziane dosyć niewyraźnie.
Z tym problemem akceleratory 3D radzą sobie w identyczny sposób jak w przypadku mgły wykładniczej
Obrazy obiektów rozmazywane są wraz ze wzrostem ich odległości od obserwatora.
![Page 122: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/122.jpg)
Sygnalizacja głębokości
Efekt ten (ang. depth cueing) polega na wykładniczej zmianie koloru i odcieniaprzedmiotu w zależności od dystansu od obserwatora – im jest on większy, tym mniej wyraźnie widać nawet duże obiekty.
![Page 123: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/123.jpg)
Rasteryzacja
Etap zamiany wszystkich parametrów generowanej sceny na zbiór pikseli gotowych do wysłania na monitor nazywa się rasteryzacją.
Wykonuje go specjalizowany moduł znajdujący się wewnątrz każdego, nawet najprostszego układu graficznego, nazywany jednostką rasteryzującą.
![Page 124: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/124.jpg)
Rasteryzacja
Rasteryzacja nie dotyczy wyłącznie grafiki 3D.
Jest również stosowana do tworzenia płaskiegoobrazu, np. z edytora tekstu.
Wyświetlenie obrazu go na ekranie monitora, który składa się z matrycy punktów o ustalonym z góry wymiarze (rozdzielczości), np. 1920×1080 pikseli wymaga tej techniki
W trakcie procesu dopasowywania wszystkie obiekty, jak np. okręgi, muszą zostać narysowane za pomocą ograniczonej liczby pikseli.
![Page 125: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/125.jpg)
Rasteryzacja Każdemu punktowi sceny przyporządkowane są trzy
współrzędne: x, y, z.
Przeniesienie dwóch pierwszych wartości na obraz dwuwymiarowy nie stanowi problemu
Współrzędna z określa zaś odległość obiektu od płaszczyzny ekranu.
W większości programów wykorzystuje się 16-bitową głębię, która umożliwia odwzorowanie 65 536 pozycji obiektu
W aplikacjach inżynierskich oraz przy tworzeniu profesjonalnej grafiki używa się 24 – lub nawet 32 –bitowej głębi.
![Page 126: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/126.jpg)
Techniki towarzyszące rasteryzacji
Najważniejszymi technikami towarzyszącymi rasteryzacji są:
bufor głębokości, tzw. z – bufor
bufor szablonowy
antyaliasing
dithering
![Page 127: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/127.jpg)
z - bufor Podczas odwzorowywania trójwymiarowej
sceny na obraz dwuwymiarowy jednostka rasteryzująca przechowuje wyniki swojej pracy w wydzielonej pamięci lokalnej akceleratora 3D, nazywanej buforem ramki (ang. frame buffer).
To właśnie z tego obszaru w ostatniej fazie generowania obrazu na ekran monitora wysłana zostanie gotowa, pojedyncza klatka tworzonej sceny 3D.
![Page 128: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/128.jpg)
z - bufor W pamięci RAM karty graficznej wydzielona
zostaje również matryca odpowiadająca swoją wielkością rozdzielczości ekranu, a głębokością 16, 24 lub 32 bitom, w zależności od zastosowanej głębi współrzędnej z.
Ten duży objętościowo fragment pamięci lokalnej karty, mający za zadanie przechowywać dane o współrzędnej z nazywany jest z-buforem (ang. z-buffer).
![Page 129: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/129.jpg)
Z – bufor
![Page 130: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/130.jpg)
Z – bufor
![Page 131: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/131.jpg)
Z - bufor
Zasada działania bufora z polega na tym, że np.dla dwóch trójkątów przed ich narysowaniemporównuje się ich współrzędne z z wartością zapamiętaną w z-buforze.
Jeśli nowy rysowany punkt ma wartość niższą(to znaczy zasłania poprzedni obiekt), jest rysowany
Cały proces powtarzany jest dla każdego obiektugenerowanej sceny 3D.
![Page 132: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/132.jpg)
Z - bufor
Zastosowanie Z-bufora pozwala znacząco odciążyć jednostkę rasteryzującą akceleratora, która w przeciwnym razie musiałaby narysować zupełnie niepotrzebnie wiele dodatkowych trójkątów.
Z drugiej strony technika ta skutecznie obciąża wewnętrzną magistralę pamięci karty, powodując zatory w dostępie do danych.
![Page 133: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/133.jpg)
Bufor szablonowy Większość nowoczesnych akceleratorów wyposażona jest
w tzw. bufor szablonowy (ang. stencil buffer) stosowany m.in. po to, aby zmniejszyć obciążenie procesora graficznego i magistrali pamięci.
Może on zostać wykorzystany na kilka sposobów, jednak najczęściej programiści posługują się nim w symulatorachlotu lub jazdy samochodem.
W tym przypadku najpierw tworzony jest szablon deskirozdzielczej lub kokpitu, który następnie umieszczany jest w buforze.
Następnie akcelerator renderuje grafikę 3D tylko w miejscu nie zakrytym przez szablon
Po wygenerowaniu sceny nakłada się oba obrazy na siebie.
![Page 134: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/134.jpg)
Bufor szablonowy
![Page 135: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/135.jpg)
Bufor szablonowy
Do tego zadania wystarczy bufor jednobitowy
Większość układów graficznych dysponuje 8 bitowym buforem szablonowym.
Dzięki nim można uzyskać dodatkowe efekty, jak: ślady po hamowaniu samochodu,
plamy oleju na jezdni czy
tzw. cienie wolumetryczne (ang. volumetricshadow) dokładnie odwzorowujące kształtrzucających je przedmiotów.
![Page 136: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/136.jpg)
Wykorzystanie bufora szablonowego do tworzenia cienia
![Page 137: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/137.jpg)
Antyaliasing
Ponieważ ekran ma ograniczoną rozdzielczość rysując ukośną linię czy też granicę pomiędzy dwoma kolorami, zapalają się piksele znajdujące się najbliżej teoretycznego przebiegu linii (rasteryzacja odcinka).
Taki sposób rysowania powoduje powstanie schodkowatych odcinków, a im niższa rozdzielczość, tym większe wrażenie schodkowatości.
Aby się pozbyć tego efektu, w kartach zastosowano specjalne techniki nazywane antyaliasingiem.
![Page 138: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/138.jpg)
Antyaliasing
![Page 139: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/139.jpg)
Antyaliasing
Można wyróżnić dwa główne typy antyaliasingu:
krawędziowy
pełnoekranowy
![Page 140: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/140.jpg)
Antyaliasing krawędziowy
Najczęściej wykorzystywaną metodą jest antyaliasing krawędziowy (ang. Edge Anti-Aliasing), polegający na odpowiednim rozmywaniu krawędzi wzdłuż rysowanej linii czy granicy kolorów.
Procedury antyaliasingu wymagają znacznej mocy obliczeniowej, dlatego w większości wypadków nie wygładza się wszystkich widocznych na ekranie linii, lecz tylko tę część z nich, która najbardziej wpływa na wygląd generowanej sceny
![Page 141: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/141.jpg)
Antyaliasing pełnoekranowy
Sposób realizacji pełnoekranowego antyaliasingu (ang.
Full Scene Anti-Aliasing) jest różny w zależności dla
różnych procesorów graficznych.
Niektóre procesory graficzne przetwarzają każdą klatkę w
dwukrotnym powiększeniu, a następnie przeskalowują ją
do żądanej wielkości
Inne karty używają bufora akumulacyjnego, tzw. T-bufora.
Umieszczane są w nim dwie lub cztery identyczne ramki obrazu,
Każda z nich jest minimalnie przesuwana względem pozostałych
po czym następuje ich zlanie w jeden obraz
![Page 142: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/142.jpg)
Antyaliasing pełnoekranowy
Niezależnie od stosowanej metody antyaliasingu pełnoekranowego ilość danych, które trzeba wygenerować, jest zawsze dwu -lub czterokrotnie większa od ilości normalnej, tj. bez wygładzania krawędzi, co prowadzi do poważnego spadku wydajności.
Stosowanie tej metody powoduje jednak, że w odróżnieniu od antyaliasingu krawędziowego cały obraz na ekranie monitora pozbawiony jest schodków.
![Page 143: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/143.jpg)
Dithering
Dla 24-bitowej głębi barw dostępnych jest aż 16 777 216 odcieni. Jednak w przypadku czasami wykorzystywanego trybu 16-bitowego liczba ta spada do 65 536. Aby więc oddać brakujące w 16-bitowej palecie barwy, stosuje się metodę nazywaną ditheringiem.
Polega ona na symulacji niedostępnego w systemie koloru poprzez kompozycję kilku zbliżonych do niego barw z dostępnej palety.
Może to doprowadzić jednak do obniżenia jakości wyświetlanego obrazu, efektu - ziarnistości.
![Page 144: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/144.jpg)
Dithering
16 bitowa-paleta kolorów –obraz po ditheringu
24 bitowa-paleta kolorów –
obraz nie wymaga
ditheringu
![Page 145: Wybrane aspekty teorii grafiki komputerowej](https://reader031.vdocuments.mx/reader031/viewer/2022012422/6176ee722d25567d5134e26f/html5/thumbnails/145.jpg)
Głębia ostrości uzyskana metodą
przetwarzania końcowego