56
Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu Miroslaw Glowacki

Wybrane aspekty teorii grafiki komputerowej - dąż enie do

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Wybrane aspekty teorii

grafiki komputerowej -

dążenie do wizualnego

realizmu

Mirosław Głowacki

Page 2: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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

Page 3: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Przetwarzanie

� Dzięki temu kolejne rachunki, jeżeli tylkotrójwymiarowy obraz nie zmienił się w znaczący sposób, sprowadzają się do:

� zmiany punktu widzenia obserwatora

� zmiany położenia niektórych obiektów

� ponownych kalkulacji oświetlenia

� ewentualnych przesunięć kadrowaniaoraz

� powtórzenia renderingu

Page 4: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Rendering

� Na przygotowane w fazie operacji geometrycznych złożone z trójkątów szkieletowe bryły akcelerator�nakł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 5: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Rendering

� Rendering można podzielić na

trzy główne procesy:

�teksturowanie

�oświetlanie i cieniowanie

�dodawanie efektów specjalnych

Page 6: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 7: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 8: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Wycinanie (clipping)

� Polega on na wyodrębnieniu trójkąta o żądanej wielkości z kwadratowejzazwyczaj 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 9: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Wycinanie (clipping)

Page 10: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Teksturowanie

� MIP mapping

� Próbkowanie punktowe

� Filtrowanie

� Korekcja perspektywy

� Mapowanie wybojów

� Alpha-blending

Page 11: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 12: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 13: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

MIP

mapping

Page 14: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 15: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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ęść pikselinigdy nie będzie widoczna.

� W praktyce najczęściej nie jest wybierana jednamipmapa, ale brane są dwie najbliższe i dokonywana jest ich interpolacja.

Page 16: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Przykładowe MIP mapy

Page 17: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

MIP mapping

� Tekstura nałożona: bez MIP mappingu (z lewej) i z MIP mappingiem (z prawej)

Page 18: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 19: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 punktowi trójkąta tylko jednego teksela tekstury i w razie potrzeby kilkukrotnego powielenia punktów nosi nazwę próbkowania punktowego (ang. point sampling texturing)

Page 20: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Próbkowanie punktowe

� Wadą tego sposobu jest to, że powieleniejednego punktu do kilku objawia się efektem potocznie nazywanym pikselozą – widocznestają 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 21: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Teksturowanie - filtrowanie

� Filtrowanie tekstur można dokonać na różne sposoby. Do najważniejszych należą:

� filtrowanie dwuliniowe

� filtrowanie trójliniowe

� filtrowanie anizotropowe

Page 22: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Filtrowanie dwuliniowe

� (ang. bilinear filtering) Polega na

przyporządkowaniu każdemu

punktowi teksturowanego trójkąta nie

jednego koloru teksela, ale barwy

otrzymanej w wyniku interpolacji

czterech sąsiednich tekseli tekstury

Page 23: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Filtrowanie trójliniowe

� Bardziej zaawansowaną metodą jest filtrowanie trójliniowe (ang. Trilinear filtering) polegające na tym, że do ujednolicania barwy zamiast sąsiednich tekseli stosuje 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 24: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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łtelipsy, prostokąta lub rombu (długa oś wyznacza kierunek)

Page 25: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 26: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Teksturowanie - korekcja

perspektywy

� Podczas odwzorowania dużych trójkątów znałożonymi teksturami (np. ściany, sufity lub podłogi) znajdujących się niemal prostopadle do płaszczyzny ekranu często występują problemy z zachowaniem odpowiedniej perspektywy

� 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 27: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Teksturowanie - korekcja

perspektywy

� W celu wyeliminowania tych niepożądanych efektów stosuje się algorytmy korekcji perspektywy (ang. perspective correction)

� Metoda ta polega na stworzeniu wirtualnegopunktu w nieskończoności.

� Teraz 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 nie chcianych deformacji.

Page 28: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Teksturowanie - korekcja

perspektywy

� brak

perspektywy

� po korekcji

perspektywy

� po filtrowaniu

dwuliniowym

Page 29: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 30: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Mapowanie wybojów

� Proces ten 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

� Mapowanie środowiska

� Multiteksturowanie

� Mapowanie trójwymiarowe

Page 31: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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, jednak jasność poszczególnych pikseliokreśla położenie (wysokość) tekseli nad płaszczyzną tekstury

� Następnie mapa wybojów jest nakładana na pierwotną teksturę, dzięki czemu otrzymujemy dodatkową informację o usytuowaniu każdego teksela względem płaszczyzny tekstury.

Page 32: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Mapowanie wypukłości

� Najprostszym rodzajem mapowania wypukłości jest tzw. pre-calculated bump mapping, sprowadzającym się do obliczenia mapyoświetlenia.

� W miejscach, gdzie występuje zagłębienie, teksel jest przyciemniany, a w miejscach wypukłości rozjaśniany

� Technika ta pozwala dość dobrze (i przede wszystkim niewielkim nakładem obliczeniowym) odwzorować nieruchome, prostopadłe lub znajdujące się nawet pod dość znacznym kątem względem obserwatora obiekty.

Page 33: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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

� W kolejnej 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 34: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 35: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Torus z wgłębieniami – funkcja

wgłębień określona ręcznie

Page 36: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Truskawka z wgłębieniami –

funkcja wgłębień określona ręcznie

Page 37: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Ś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ć zaawansowane efekty, takie jak falująca

powierzchnia wody, w której odbijają się

nadbrzeżne drzewa.

Page 38: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Ś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 czego powstaje zaburzona mapa środowiska (ang. perturbed environment map), a następnie łączona jest ona z właściwą teksturą nakładaną na obiekt

Page 39: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Środowiskowe mapowane wybojów� I ćwiartka – tekstura

� III ćwiartka – mapa wybojów

� IV ćwiartka – sumaryczna mapa w środowisku

Page 40: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Ś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 41: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Ś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 42: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Ś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 43: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Ś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 44: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 45: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

DOT 3 mapping

Page 46: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Mapowanie środowiska

� Polega na nakładaniu na obiekt teksturyprzedstawiającej otoczenie tego obiektu. Efekt ten powoduje, iż obiekt sprawia wrażenie refleksyjnego, "metalicznego„

Page 47: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Mapowanie środowiska

Page 48: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Mapowanie środowiska

Page 49: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 50: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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ż 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 51: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 52: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 53: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 54: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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 55: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

Kule i szachownica

Page 56: Wybrane aspekty teorii grafiki komputerowej - dąż enie do

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.