Technologia Informacyjna Wykład 6


Technologia Informacyjna
Technologia Informacyjna
Podstawy grafiki 3D
Podstawy grafiki 3D
Podstawy grafiki 3D
Podstawy grafiki 3D
Wprowadzenie do grafiki trójwymiarowej
Wprowadzenie do grafiki trójwymiarowej
Ustawianie geometrii (geometry setup)
Ustawianie geometrii (geometry setup)
Ustawianie trójkątów (triangle setup)
Ustawianie trójkątów (triangle setup)
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Cieniowanie (shading)
Cieniowanie (shading)
Efekty atmosferyczne (atmospheric effects)
Efekty atmosferyczne (atmospheric effects)
Rasteryzacja
Rasteryzacja
1
Wprowadzenie
Wprowadzenie
Praktycznie ka\da nowoczesna karta graficzna
Praktycznie ka\da nowoczesna karta graficzna
wyposa\ona jest w funkcje akceleracji grafiki
wyposa\ona jest w funkcje akceleracji grafiki
przestrzennej (3D). Funkcje te mają
przestrzennej (3D). Funkcje te mają
wspomagać, lub nawet wyręczać procesor
wspomagać, lub nawet wyręczać procesor
komputera w tworzeniu trójwymiarowych
komputera w tworzeniu trójwymiarowych
obrazów czy animacji
obrazów czy animacji
Głównym problemem, z jakim musi się zmierzyć
Głównym problemem, z jakim musi się zmierzyć
komputer przy tworzeniu trójwymiarowych scen,
komputer przy tworzeniu trójwymiarowych scen,
to przedstawienie ich na płaskim ekranie
to przedstawienie ich na płaskim ekranie
monitora. Wszystkie bryły muszą być tak
monitora. Wszystkie bryły muszą być tak
pokazane, by oszukując nasz wzrok - sprawiały
pokazane, by oszukując nasz wzrok - sprawiały
wra\enie trójwymiarowych.
wra\enie trójwymiarowych.
Wprowadzenie
Wprowadzenie
Historycznie karty grafiki słu\yły wyłącznie do
Historycznie karty grafiki słu\yły wyłącznie do
generowania sygnałów analogowych sterujących
generowania sygnałów analogowych sterujących
monitorami na podstawie wcześniej
monitorami na podstawie wcześniej
przygotowanych przez procesor danych
przygotowanych przez procesor danych
tworzących obraz (tzw. ramkę). W miarę
tworzących obraz (tzw. ramkę). W miarę
rozwoju technologii przejmowały coraz to więcej
rozwoju technologii przejmowały coraz to więcej
funkcji związanych z fazą tworzenia obrazu
funkcji związanych z fazą tworzenia obrazu
Obraz 3D powstaje w wyniku realizacji wielu
Obraz 3D powstaje w wyniku realizacji wielu
operacji przetwarzania składowych obrazu - im
operacji przetwarzania składowych obrazu - im
więcej tych operacji wykona akcelerator 3D,
więcej tych operacji wykona akcelerator 3D,
tym szybszy i lepszy technicznie będzie efekt
tym szybszy i lepszy technicznie będzie efekt
końcowy tworzonego obrazu
końcowy tworzonego obrazu
2
Wprowadzenie
Wprowadzenie
Procesu tworzenia obrazu trójwymiarowego
Procesu tworzenia obrazu trójwymiarowego
mo\na podzielić na kilka faz z których
mo\na podzielić na kilka faz z których
najwa\niejsze to:
najwa\niejsze to:
Ustawianie geometrii
Ustawianie geometrii
Podział sceny na elementy trójkątne -
Podział sceny na elementy trójkątne -
triangularyzacja
triangularyzacja
Nakładanie tekstur
Nakładanie tekstur
Operowanie światłem - cieniowanie
Operowanie światłem - cieniowanie
Generowanie efektów atmosferycznych
Generowanie efektów atmosferycznych
Rasteryzacja
Rasteryzacja
Ustawianie geometrii (geometry setup)
Ustawianie geometrii (geometry setup)
To najwa\niejszy krok w tworzeniu
To najwa\niejszy krok w tworzeniu
trójwymiarowej sceny na ekranie komputera.
trójwymiarowej sceny na ekranie komputera.
Podczas tej fazy obiekty 3D (zbudowane z
Podczas tej fazy obiekty 3D (zbudowane z
wielokątów) są umieszczane w przestrzeni w
wielokątów) są umieszczane w przestrzeni w
wyznaczonym dla siebie miejscu. W tym celu
wyznaczonym dla siebie miejscu. W tym celu
poddaje się je trzem operacjom, znanym pod
poddaje się je trzem operacjom, znanym pod
wspólną nazwą transformacji:
wspólną nazwą transformacji:
Skalowania
Skalowania
Translacji
Translacji
Rotacji
Rotacji
3
Ustawianie geometrii (geometry setup)
Ustawianie geometrii (geometry setup)
Skalowanie to zmiana rozmiaru obiektu tak, \e
Skalowanie to zmiana rozmiaru obiektu tak, \e
staje się on większy bądz mniejszy.
staje się on większy bądz mniejszy.
Translacja to przesunięcie tego obiektu w
Translacja to przesunięcie tego obiektu w
wyznaczone dla niego miejsce.
wyznaczone dla niego miejsce.
Rotacja to odpowiednie obrócenie obiektu, by
Rotacja to odpowiednie obrócenie obiektu, by
znalazł się on w wymaganej pozycji.
znalazł się on w wymaganej pozycji.
Translacja Rotacja
Obiekt 3D Skalowanie
Ustawianie geometrii (geometry setup)
Ustawianie geometrii (geometry setup)
Ustawianie geometrii do niedawna (końcówka
Ustawianie geometrii do niedawna (końcówka
ubiegłego stulecia :& - 6 czy 7 lat to w
ubiegłego stulecia :& - 6 czy 7 lat to w
informatyce w istocie epoka& ) dokonywane było
informatyce w istocie epoka& ) dokonywane było
wyłącznie przez procesor komputera (CPU -
wyłącznie przez procesor komputera (CPU -
Central Processing Unit). Przy okazji liczone było
Central Processing Unit). Przy okazji liczone było
te\ natę\enie światła padającego na bryły przy
te\ natę\enie światła padającego na bryły przy
zadanym poło\eniu zródeł tego światła
zadanym poło\eniu zródeł tego światła
Współczesne układy graficzne wyposa\one są w
Współczesne układy graficzne wyposa\one są w
tzw. jednostki T&L (Transform & Lighting
tzw. jednostki T&L (Transform & Lighting
Engine - jednostka transformacji i
Engine - jednostka transformacji i
oświetlenia) zwane te\ procesorami
oświetlenia) zwane te\ procesorami
geometrii.
geometrii.
4
Ustawianie trójkątów (triangle setup)
Ustawianie trójkątów (triangle setup)
Program generujący obraz 3D, poprzez
Program generujący obraz 3D, poprzez
odpowiedni interfejs (np. Direct3D czy OpenGL),
odpowiedni interfejs (np. Direct3D czy OpenGL),
wysyła współrzędne wszystkich wierzchołków
wysyła współrzędne wszystkich wierzchołków
sceny z kroku pierwszego (ustawianie geometrii)
sceny z kroku pierwszego (ustawianie geometrii)
do tzw. układu ustawiania trójkątów (ang.
do tzw. układu ustawiania trójkątów (ang.
triangle setup engine).
triangle setup engine).
Zadaniem tego układu jest grupowanie
Zadaniem tego układu jest grupowanie
wszystkich trójek wierzchołków (punktów w
wszystkich trójek wierzchołków (punktów w
przestrzeni) w trójkąty. Proces grupowania
przestrzeni) w trójkąty. Proces grupowania
punktów w trójkąty zwany jest teselacją (lub
punktów w trójkąty zwany jest teselacją (lub
triangularyzacją).
triangularyzacją).
Ustawianie trójkątów (triangle setup)
Ustawianie trójkątów (triangle setup)
Ka\demu wierzchołkowi ka\dego trójkąta
Ka\demu wierzchołkowi ka\dego trójkąta
przypisuje się trzy współrzędne w przestrzeni:
przypisuje się trzy współrzędne w przestrzeni:
X,Y oraz Z (współrzędna "w głąb" ekranu)
X,Y oraz Z (współrzędna "w głąb" ekranu)
Ka\da trójka takich współrzędnych powinna być
Ka\da trójka takich współrzędnych powinna być
zapamiętana w oddzielnej macierzy. Jako \e
zapamiętana w oddzielnej macierzy. Jako \e
praktycznie ka\dy wierzchołek nale\y do kilku
praktycznie ka\dy wierzchołek nale\y do kilku
trójkątów, stosuje się pewne techniki, które
trójkątów, stosuje się pewne techniki, które
mają zmniejszyć ilość macierzy opisujących
mają zmniejszyć ilość macierzy opisujących
współrzędne wierzchołków. Techniki te to tzw.:
współrzędne wierzchołków. Techniki te to tzw.:
pasy (ang. strips)
pasy (ang. strips)
wachlarze (ang. fans).
wachlarze (ang. fans).
5
Ustawianie trójkątów (triangle setup)
Ustawianie trójkątów (triangle setup)
Technika wykorzystywania wspólnych
Technika wykorzystywania wspólnych
wierzchołków w celu minimalizacji ilości
wierzchołków w celu minimalizacji ilości
przetwarzanych informacji:
przetwarzanych informacji:
Pasy
Wachlarze
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Kolejnym, niezmiernie wa\nym krokiem w
Kolejnym, niezmiernie wa\nym krokiem w
tworzeniu trójwymiarowego obrazu jest
tworzeniu trójwymiarowego obrazu jest
nakładanie (mapowanie) tekstur na wszystkie
nakładanie (mapowanie) tekstur na wszystkie
trójwymiarowe obiekty. Tekstura jest zwykłym
trójwymiarowe obiekty. Tekstura jest zwykłym
płaskim obrazkiem (mapą bitową)
płaskim obrazkiem (mapą bitową)
Nakładanie tekstur polega na "oblepianiu"
Nakładanie tekstur polega na "oblepianiu"
teksturą przestrzennych przedmiotów. Tekstura
teksturą przestrzennych przedmiotów. Tekstura
przedstawiająca zdjęcie fragmentu ceglanej
przedstawiająca zdjęcie fragmentu ceglanej
ściany, nało\ona na obiekt 3D, daje wra\enie, i\
ściany, nało\ona na obiekt 3D, daje wra\enie, i\
obiekt ten jest zbudowany z cegieł.
obiekt ten jest zbudowany z cegieł.
6
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Teksturuje się poszczególne trójkąty
Teksturuje się poszczególne trójkąty
składające się na przestrzenne obiekty.
składające się na przestrzenne obiekty.
Tekstura podlega operacji wycinania (clipping)
Tekstura podlega operacji wycinania (clipping)
- wyodrębniany jest z niej trójkąt.
- wyodrębniany jest z niej trójkąt.
W tym celu określane są współrzędne trzech
W tym celu określane są współrzędne trzech
punktów na teksturze, a następnie wybrane
punktów na teksturze, a następnie wybrane
wierzchołki przyporządkowywane są
wierzchołki przyporządkowywane są
odpowiednim wierzchołkom
odpowiednim wierzchołkom
teksturowanego trójkąta.
teksturowanego trójkąta.
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Ka\demu punktowi teksturowanego trójkąta
Ka\demu punktowi teksturowanego trójkąta
przyporządkowuje się kolor odpowiadającego
przyporządkowuje się kolor odpowiadającego
mu teksela (odpowiednik piksela) tekstury.
mu teksela (odpowiednik piksela) tekstury.
7
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Po nało\eniu "ceglanej" tekstury na obiekt, nadal
Po nało\eniu "ceglanej" tekstury na obiekt, nadal
będziemy mieli wra\enie, \e jest on idealnie
będziemy mieli wra\enie, \e jest on idealnie
gładki. Współczesne układy 3D, w celu
gładki. Współczesne układy 3D, w celu
dalszego zwiększenia realizmu, stosują
dalszego zwiększenia realizmu, stosują
technikę zwaną mapowaniem wybojów (ang.
technikę zwaną mapowaniem wybojów (ang.
bump mapping).
bump mapping).
Dla ka\dej tekstury tworzone są mapy
Dla ka\dej tekstury tworzone są mapy
wybojów. Są one płaskimi mapami bitowymi,
wybojów. Są one płaskimi mapami bitowymi,
jednak wartość poszczególnych pikseli tych map
jednak wartość poszczególnych pikseli tych map
określa wysokość odpowiednich tekseli nad
określa wysokość odpowiednich tekseli nad
płaszczyzną tekstury (a nie kolor).
płaszczyzną tekstury (a nie kolor).
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Akcelerator 3D, odwzorowując efekt mapowania
Akcelerator 3D, odwzorowując efekt mapowania
wybojów, przy oświetlaniu tekstury bierze
wybojów, przy oświetlaniu tekstury bierze
pod uwagę wartość wysokości ka\dego
pod uwagę wartość wysokości ka\dego
teksela. Dzięki temu teksele znajdujące się
teksela. Dzięki temu teksele znajdujące się
wy\ej są jaśniejsze ni\ te znajdujące się głębiej.
wy\ej są jaśniejsze ni\ te znajdujące się głębiej.
Mapowanie wybojów pozwala odwzorować rowki
Mapowanie wybojów pozwala odwzorować rowki
i chropowatości w teksturach (chropowaty asfalt
i chropowatości w teksturach (chropowaty asfalt
na jezdni czy wypukłą dachówkę na dachu)
na jezdni czy wypukłą dachówkę na dachu)
Od lewej: Obiekt 3D obło\ony zwykłą teksturą,
obło\ony mapą wybojów, obło\ony mapą wybojów i teksturą
8
Techniki mapowania wybojów
Techniki mapowania wybojów
Mapowanie prekalkulowane. Podczas pisania
Mapowanie prekalkulowane. Podczas pisania
kodu aplikacji 3D, liczona jest mapa oświetlenia i
kodu aplikacji 3D, liczona jest mapa oświetlenia i
cieni. Mapę tę nakłada się na teksturę.
cieni. Mapę tę nakłada się na teksturę.
Najłatwiejszym do uzyskania i dość praktycznym
Najłatwiejszym do uzyskania i dość praktycznym
mapowaniem wybojów jest tłoczone
mapowaniem wybojów jest tłoczone
mapowanie wybojów (ang. emboss bump
mapowanie wybojów (ang. emboss bump
mapping). Mapa wybojów to "szary
mapping). Mapa wybojów to "szary
odpowiednik" tekstury. Akcelerator przesuwa ją
odpowiednik" tekstury. Akcelerator przesuwa ją
nieco względem tekstury właściwej i przy
nieco względem tekstury właściwej i przy
pomocy addytywnego zlewania alfa odejmuje
pomocy addytywnego zlewania alfa odejmuje
ją od tej tekstury. Następnie przesuwa ją z
ją od tej tekstury. Następnie przesuwa ją z
powrotem i wtapia w ową teksturę.
powrotem i wtapia w ową teksturę.
Techniki mapowania wybojów
Techniki mapowania wybojów
Znacznie bardziej zaawansowaną metodą jest
Znacznie bardziej zaawansowaną metodą jest
środowiskowe mapowanie wybojów
środowiskowe mapowanie wybojów
(Environment-Mapped Bump Mapping, EMBM).
(Environment-Mapped Bump Mapping, EMBM).
Technika ta stosuje trzy tekstury: właściwą,
Technika ta stosuje trzy tekstury: właściwą,
środowiska i wybojów. Najpierw mapa
środowiska i wybojów. Najpierw mapa
wybojów aplikowana jest na mapie środowiska,
wybojów aplikowana jest na mapie środowiska,
dzięki czemu powstaje tzw. wichrowata mapa
dzięki czemu powstaje tzw. wichrowata mapa
środowiska (Perturbed Environment Map).
środowiska (Perturbed Environment Map).
Następnie nakłada się ją na właściwą teksturę.
Następnie nakłada się ją na właściwą teksturę.
Środowiskowe mapowanie wybojów pozwala
Środowiskowe mapowanie wybojów pozwala
uzyskać wiele efektów, jak np. falującą
uzyskać wiele efektów, jak np. falującą
powierzchnię wody, w której odbija się otoczenie
powierzchnię wody, w której odbija się otoczenie
9
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Na ka\dy obiekt mo\na nakładać wiele tekstur.
Na ka\dy obiekt mo\na nakładać wiele tekstur.
Podstawowa to materiał obiektu, zaś kolejne to:
Podstawowa to materiał obiektu, zaś kolejne to:
Omówiona mapa wybojów,
Omówiona mapa wybojów,
Mapa światła (lightning map)
Mapa światła (lightning map)
Mapa środowiska (environment map).
Mapa środowiska (environment map).
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Ka\dy teksel tekstury najczęściej jest opisany
Ka\dy teksel tekstury najczęściej jest opisany
czterema parametrami: trzy parametry to
czterema parametrami: trzy parametry to
wartości kolorów składowych, zaś czwarty to
wartości kolorów składowych, zaś czwarty to
kanał przezroczystości "alfa" (alpha channel).
kanał przezroczystości "alfa" (alpha channel).
Dla przykładu, tekstura 8888 RGBA to tekstura
Dla przykładu, tekstura 8888 RGBA to tekstura
dedykująca 24 bity na opis koloru ka\dego
dedykująca 24 bity na opis koloru ka\dego
teksela plus 8 bitów dla kanału alfa.
teksela plus 8 bitów dla kanału alfa.
Kanał alfa określa stopień przezroczystości
Kanał alfa określa stopień przezroczystości
tekstury. Jeśli jego wartość jest maksymalna
tekstury. Jeśli jego wartość jest maksymalna
(255), oznacza to "zupełnie nieprzezroczysty".
(255), oznacza to "zupełnie nieprzezroczysty".
Jeśli jego wartość jest minimalna (0), oznacza
Jeśli jego wartość jest minimalna (0), oznacza
"zupełnie przezroczysty
"zupełnie przezroczysty
10
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Tekstura zawsze jest określonego rozmiaru.
Tekstura zawsze jest określonego rozmiaru.
Mo\e to być np. kwadratowy obrazek o
Mo\e to być np. kwadratowy obrazek o
rozmiarach 512x512 punktów.
rozmiarach 512x512 punktów.
W przypadku trójkątów mniejszych od tekstury,
W przypadku trójkątów mniejszych od tekstury,
gubi się z niej większość tekseli. Jeśli trójkąt jest
gubi się z niej większość tekseli. Jeśli trójkąt jest
większy od tekstury, odpowiednie teksele są po
większy od tekstury, odpowiednie teksele są po
prostu powielane.
prostu powielane.
Aby usprawnić proces dobierania rozmiaru
Aby usprawnić proces dobierania rozmiaru
tekstury do trójkąta, akceleratory 3D stosują
tekstury do trójkąta, akceleratory 3D stosują
technikę mapowania MIP (MIP mapping;
technikę mapowania MIP (MIP mapping;
"Multum in Parvam" - z łac. "wiele w niewielu").
"Multum in Parvam" - z łac. "wiele w niewielu").
Przed renderowaniem trójwymiarowej sceny, z
Przed renderowaniem trójwymiarowej sceny, z
ka\dej tekstury tworzone są mapy MIP.
ka\dej tekstury tworzone są mapy MIP.
Nakładanie tekstur (texture mapping)
Nakładanie tekstur (texture mapping)
Mapy MIP to zmniejszone tekstury
Mapy MIP to zmniejszone tekstury
utworzone na podstawie tekstury wzorcowej.
utworzone na podstawie tekstury wzorcowej.
Ka\da następna mapa MIP jest czterokrotnie
Ka\da następna mapa MIP jest czterokrotnie
mniejsza od poprzedniej
mniejsza od poprzedniej
Mimo stosowania techniki mapowania MIP,
Mimo stosowania techniki mapowania MIP,
praktycznie nigdy mapowany trójkąt nie
praktycznie nigdy mapowany trójkąt nie
będzie równy rozmiarami teksturze. Dlatego
będzie równy rozmiarami teksturze. Dlatego
przy teksturowaniu stosuje się ró\ne techniki
przy teksturowaniu stosuje się ró\ne techniki
mające na celu  maskowanie takich problemów
mające na celu  maskowanie takich problemów
Operacje związane z nakładaniem i łączeniem
Operacje związane z nakładaniem i łączeniem
tekstur nazywane są filtracją tekstur
tekstur nazywane są filtracją tekstur
11
Filtracja tekstur
Filtracja tekstur
W najstarszych rozwiązaniach problem
W najstarszych rozwiązaniach problem
niedopasowania tekstur do trójkątów
niedopasowania tekstur do trójkątów
rozwiązywany był poprzez powielanie tekseli
rozwiązywany był poprzez powielanie tekseli
do wielu punktów, w wyniku czego w obrazie
do wielu punktów, w wyniku czego w obrazie
powstawały całe obszary o jednakowym kolorze.
powstawały całe obszary o jednakowym kolorze.
Technika ta nazywana jest próbkowaniem
Technika ta nazywana jest próbkowaniem
punktowym.
punktowym.
Układy 3D wprowadziły metody tzw. filtrowania
Układy 3D wprowadziły metody tzw. filtrowania
tekstur, a więc odpowiedniej interpolacji
tekstur, a więc odpowiedniej interpolacji
obszarów o jednakowych kolorach powstałych z
obszarów o jednakowych kolorach powstałych z
powielania pojedynczych tekseli.
powielania pojedynczych tekseli.
Filtracja tekstur
Filtracja tekstur
Najprostszą techniką filtrowania tekstur jest
Najprostszą techniką filtrowania tekstur jest
filtrowanie dwuliniowe (ang. bilinear
filtrowanie dwuliniowe (ang. bilinear
filtering). Polega ona na przyporządkowaniu
filtering). Polega ona na przyporządkowaniu
ka\demu punktowi teksturowanego trójkąta
ka\demu punktowi teksturowanego trójkąta
koloru nie jednego teksela tekstury, ale koloru
koloru nie jednego teksela tekstury, ale koloru
otrzymanego w wyniku interpolacji czterech
otrzymanego w wyniku interpolacji czterech
sąsiednich tekseli tekstury.
sąsiednich tekseli tekstury.
Efekt "kwadratowości" próbkowania zanika,
Efekt "kwadratowości" próbkowania zanika,
jednak\e obraz staje się trochę rozmyty.
jednak\e obraz staje się trochę rozmyty.
12
Filtrowanie
Filtrowanie
dwuliniowe
trójliniowe
Filtracja tekstur
Filtracja tekstur
Filtrowanie trójliniowe (trilinear filtering)
Filtrowanie trójliniowe (trilinear filtering)
polega na stosowaniu dwóch kolejnych map
polega na stosowaniu dwóch kolejnych map
MIP przy teksturowaniu - jedna jest mniejsza
MIP przy teksturowaniu - jedna jest mniejsza
od teksturowanego trójkąta, zaś druga
od teksturowanego trójkąta, zaś druga
większa. Najpierw poddaje się interpolacji
większa. Najpierw poddaje się interpolacji
dwuliniowej mapę pierwszą, potem drugą, a
dwuliniowej mapę pierwszą, potem drugą, a
następnie uśredniony wynik tych operacji
następnie uśredniony wynik tych operacji
nakłada się na trójkąt.
nakłada się na trójkąt.
Filtrowanie trójliniowe powoduje usunięcie efektu
Filtrowanie trójliniowe powoduje usunięcie efektu
raptownie zmieniających się tekstur przy zmianie
raptownie zmieniających się tekstur przy zmianie
odległości, niestety wymaga operacji na ośmiu
odległości, niestety wymaga operacji na ośmiu
tekselach jednocześnie.
tekselach jednocześnie.
Filtracja tekstur
Filtracja tekstur
Najbardziej zaawansowaną metodą filtrowania
Najbardziej zaawansowaną metodą filtrowania
jest filtrowanie anizotropowe (anisotropic
jest filtrowanie anizotropowe (anisotropic
filtering). Polega na interpolacji tekseli
filtering). Polega na interpolacji tekseli
układających się w ró\ne kształty (nie tylko
układających się w ró\ne kształty (nie tylko
kwadraty, ale tak\e prostokąty czy elipsy),
kwadraty, ale tak\e prostokąty czy elipsy),
zale\nie od poło\enia obiektu względem ekranu.
zale\nie od poło\enia obiektu względem ekranu.
Jeśli obiekt nie le\y równolegle do płaszczyzny
Jeśli obiekt nie le\y równolegle do płaszczyzny
ekranu, to w wyniku filtrowania dwu- czy
ekranu, to w wyniku filtrowania dwu- czy
trójliniowego mogą powstawać zniekształcenia
trójliniowego mogą powstawać zniekształcenia
obrazu. Filtrowanie anizotropowe pozwala
obrazu. Filtrowanie anizotropowe pozwala
zachować oryginalny kształt tekstur tak\e
zachować oryginalny kształt tekstur tak\e
na obiektach ukośnych.
na obiektach ukośnych.
13
Korekcja perspektywy
Korekcja perspektywy
Podczas teksturowania du\ych i regularnych
Podczas teksturowania du\ych i regularnych
powierzchni (w szczególności w grach FPP First
powierzchni (w szczególności w grach FPP First
Person Perspective), akceleratory często mają
Person Perspective), akceleratory często mają
problemy z zachowaniem odpowiedniej
problemy z zachowaniem odpowiedniej
perspektywy.
perspektywy.
Tekstury się rozje\d\ają, łamią i powodują
Tekstury się rozje\d\ają, łamią i powodują
niemiły wizualnie efekt. W celu jego
niemiły wizualnie efekt. W celu jego
zniwelowania stosuje się algorytm korekcji
zniwelowania stosuje się algorytm korekcji
perspektywy: tworzy się wirtualny punkt
perspektywy: tworzy się wirtualny punkt
"nieskończoność". Dopiero zgodnie z zasadą linii
"nieskończoność". Dopiero zgodnie z zasadą linii
o wspólnym punkcie nakładane są tekstury, ju\
o wspólnym punkcie nakładane są tekstury, ju\
bez niepo\ądanych deformacji.
bez niepo\ądanych deformacji.
Anty-aliasing
Anty-aliasing
Aliasing to efekt "schodkowatości" ukośnych
Aliasing to efekt "schodkowatości" ukośnych
linii. Ekran komputera ma ograniczoną
linii. Ekran komputera ma ograniczoną
rozdzielczość, zatem rysując ukośną linię (czy
rozdzielczość, zatem rysując ukośną linię (czy
granicę między dwoma kolorami), karta
granicę między dwoma kolorami), karta
graficzna zapala najbli\sze dostępne piksele. W
graficzna zapala najbli\sze dostępne piksele. W
efekcie tego powstaje schodkowata linia
efekcie tego powstaje schodkowata linia
By pozbyć się efektu schodkowatości, karty
By pozbyć się efektu schodkowatości, karty
grafiki 3D stosują algorytmy zwane anty-
grafiki 3D stosują algorytmy zwane anty-
aliasingiem
aliasingiem
14
Anty-aliasing
Anty-aliasing
Anty-aliasing dzieli się na dwa rodzaje: anty-
Anty-aliasing dzieli się na dwa rodzaje: anty-
aliasing krawędziowy (Edge Anti-Aliasing) i
aliasing krawędziowy (Edge Anti-Aliasing) i
anty-aliasing całej sceny (Full-Scene Anti-
anty-aliasing całej sceny (Full-Scene Anti-
Aliasing, FSAA).
Aliasing, FSAA).
Pierwszy polega na rozmywaniu krawędzi
Pierwszy polega na rozmywaniu krawędzi
trójkątów. Wymaga odczytania wielokąta,
trójkątów. Wymaga odczytania wielokąta,
rozmycia go i zapisania z powrotem.
rozmycia go i zapisania z powrotem.
W Anty-aliasingu całej sceny scena
W Anty-aliasingu całej sceny scena
renderowana jest w wy\szej rozdzielczości ni\
renderowana jest w wy\szej rozdzielczości ni\
rzeczywiście na ekranie, a następnie
rzeczywiście na ekranie, a następnie
zmniejszana do rozmiarów rozdzielczości
zmniejszana do rozmiarów rozdzielczości
rzeczywistej z u\yciem specjalnych filtrów.
rzeczywistej z u\yciem specjalnych filtrów.
Cieniowanie (shading)
Cieniowanie (shading)
Najprostszą metodą cieniowania jest
Najprostszą metodą cieniowania jest
cieniowanie płaskie (flat shading). Polega ono
cieniowanie płaskie (flat shading). Polega ono
na przyporządkowaniu określonego poziomu
na przyporządkowaniu określonego poziomu
jasności do ka\dego całego trójkąta
jasności do ka\dego całego trójkąta
niezale\nie od trójkątów otaczających go
niezale\nie od trójkątów otaczających go
Lepszą metodą cieniowania jest cieniowanie
Lepszą metodą cieniowania jest cieniowanie
metodą Gourauda (Gouraud shading).
metodą Gourauda (Gouraud shading).
Technika ta przyporządkowuje kolor i
Technika ta przyporządkowuje kolor i
jasność ka\demu z trzech wierzchołków
jasność ka\demu z trzech wierzchołków
ka\dego trójkąta. Odcień wnętrza trójkąta
ka\dego trójkąta. Odcień wnętrza trójkąta
powstaje poprzez interpolację (uśrednienie)
powstaje poprzez interpolację (uśrednienie)
odcieni jego wierzchołków.
odcieni jego wierzchołków.
15
Cieniowanie (shading)
Cieniowanie (shading)
Najbardziej zaawansowaną metodą cieniowania
Najbardziej zaawansowaną metodą cieniowania
jest cieniowanie Phonga (Phong shading),
jest cieniowanie Phonga (Phong shading),
zwane tak\e operowaniem światłem z
zwane tak\e operowaniem światłem z
dokładnością do pojedynczego piksela
dokładnością do pojedynczego piksela
Jasność i odcień przyporządkowywana jest
Jasność i odcień przyporządkowywana jest
ka\demu punktowi obrazu 3D oddzielnie.
ka\demu punktowi obrazu 3D oddzielnie.
Ten typ cieniowania (czy raczej operowania
Ten typ cieniowania (czy raczej operowania
światłem) zaimplementowany jest dopiero w
światłem) zaimplementowany jest dopiero w
układach graficznych poczynając od GeForce2
układach graficznych poczynając od GeForce2
GTS (dzięki jednostce NSR - NVIDIA Shading
GTS (dzięki jednostce NSR - NVIDIA Shading
Rasterizer) oraz Radeon 256.
Rasterizer) oraz Radeon 256.
Efekty atmosferyczne (atmospheric
Efekty atmosferyczne (atmospheric
effects)
effects)
Najprostszym efektem atmosferycznym
Najprostszym efektem atmosferycznym
zwiększającym realność generowanych obrazów
zwiększającym realność generowanych obrazów
jest mgła liniowa (linear fog), polegająca na
jest mgła liniowa (linear fog), polegająca na
stopniowym, liniowym zamgleniu obiektów wraz
stopniowym, liniowym zamgleniu obiektów wraz
ze wzrostem ich odległości od obserwatora.
ze wzrostem ich odległości od obserwatora.
Du\o lepsze efekty daje mgła tablicowa (table
Du\o lepsze efekty daje mgła tablicowa (table
fog). W jej przypadku stopień zamglenia w
fog). W jej przypadku stopień zamglenia w
zale\ności od odległości zapisany jest w
zale\ności od odległości zapisany jest w
odpowiedniej tablicy. Mgła tablicowa pozwala
odpowiedniej tablicy. Mgła tablicowa pozwala
na tworzenie takich efektów, jak mgła w
na tworzenie takich efektów, jak mgła w
określonym miejscu, np. nad powierzchnią
określonym miejscu, np. nad powierzchnią
stawu.
stawu.
16
Efekty atmosferyczne
Efekty atmosferyczne
Bardzo wierne efekty daje tak\e mgła
Bardzo wierne efekty daje tak\e mgła
wykładnicza (expotential fog). Nie wymaga ona
wykładnicza (expotential fog). Nie wymaga ona
tworzenia tablicy wartości zamglenia, bowiem
tworzenia tablicy wartości zamglenia, bowiem
wartość ta jest wyliczana drogą
wartość ta jest wyliczana drogą
matematyczną.
matematyczną.
Na otwartych przestrzeniach du\o daje efekt
Na otwartych przestrzeniach du\o daje efekt
zacierania obiektu wraz ze wzrostem jego
zacierania obiektu wraz ze wzrostem jego
odległości od obserwatora (depth cueing). W
odległości od obserwatora (depth cueing). W
miarę, jak obiekt się przemieszcza względem
miarę, jak obiekt się przemieszcza względem
obserwatora, akcelerator zmienia jego kolor i
obserwatora, akcelerator zmienia jego kolor i
odcień. Krzywa zmiany koloru i odcienia jest
odcień. Krzywa zmiany koloru i odcienia jest
najczęściej krzywą wykładniczą.
najczęściej krzywą wykładniczą.
Efekty atmosferyczne
Efekty atmosferyczne
Ostatnie spośród istotnych efektów
Ostatnie spośród istotnych efektów
atmosferycznych to przezroczystość
atmosferycznych to przezroczystość
(transparency) i zlewanie (blending).
(transparency) i zlewanie (blending).
Polegają na porównaniu wartości kanałów
Polegają na porównaniu wartości kanałów
alfa dla dwóch nakładających się obiektów, a
alfa dla dwóch nakładających się obiektów, a
następnie zlaniu ich ze sobą. Wynikowy kolor
następnie zlaniu ich ze sobą. Wynikowy kolor
wylicza się albo po dodaniu czy odjęciu
wylicza się albo po dodaniu czy odjęciu
kolorów składowych (additive alpha blending),
kolorów składowych (additive alpha blending),
albo po ich pomno\eniu przez siebie
albo po ich pomno\eniu przez siebie
(multiplicative alpha blending).
(multiplicative alpha blending).
17
Efekty atmosferyczne
Efekty atmosferyczne
Zastosowanie wszystkich omówionych technik
Zastosowanie wszystkich omówionych technik
efektów atmosferycznych pozwala na
efektów atmosferycznych pozwala na
uzyskiwanie obrazów o bardzo wysokim stopniu
uzyskiwanie obrazów o bardzo wysokim stopniu
realizmu
realizmu
Rasteryzacja
Rasteryzacja
Ostatnią fazą tworzenia obrazu 3D jest
Ostatnią fazą tworzenia obrazu 3D jest
rasteryzacja, a więc zamiana wszystkich
rasteryzacja, a więc zamiana wszystkich
parametrów obrazu 3D na zbiór kolorowych
parametrów obrazu 3D na zbiór kolorowych
punktów (tzw. ramkę lub jedną klatkę
punktów (tzw. ramkę lub jedną klatkę
obrazu).
obrazu).
Obraz o rozdzielczości 1024x768 składa się z
Obraz o rozdzielczości 1024x768 składa się z
prawie 800 tys. punktów (1024 x 768 =
prawie 800 tys. punktów (1024 x 768 =
786432). Zapis samego obrazu bez u\ycia
786432). Zapis samego obrazu bez u\ycia
współrzędnej głębokości Z wymaga ponad 3 MB
współrzędnej głębokości Z wymaga ponad 3 MB
pamięci (4 bajty na ka\dy punkt, czyli 768432
pamięci (4 bajty na ka\dy punkt, czyli 768432
x 4 = 3145728 bajtów).
x 4 = 3145728 bajtów).
18
Rasteryzacja
Rasteryzacja
Do wcześniejszych obliczeń dochodzi jeszcze 16-
Do wcześniejszych obliczeń dochodzi jeszcze 16-
bitowa (najczęściej), czyli 2-bajtowa
bitowa (najczęściej), czyli 2-bajtowa
współrzędna Z, która wymaga dodatkowego
współrzędna Z, która wymaga dodatkowego
1,5 MB danych (768432 x 2 = 1536864 bajtów)
1,5 MB danych (768432 x 2 = 1536864 bajtów)
Obraz przechowywany jest przez akcelerator
Obraz przechowywany jest przez akcelerator
3D w pamięci lokalnej zwanej buforem ramki
3D w pamięci lokalnej zwanej buforem ramki
(frame buffer). Tutaj tak\e tworzona jest pamięć
(frame buffer). Tutaj tak\e tworzona jest pamięć
współrzędnej Z zwana buforem Z (Z-buffer)
współrzędnej Z zwana buforem Z (Z-buffer)
Bufor Z wykorzystywany jest przy rozstrzyganiu
Bufor Z wykorzystywany jest przy rozstrzyganiu
kwestii zasłaniania i przenikania obiektów
kwestii zasłaniania i przenikania obiektów
znajdujących się w określonym punkcie
znajdujących się w określonym punkcie
przestrzeni (wyznaczonym współrzędnymi X i Y)
przestrzeni (wyznaczonym współrzędnymi X i Y)
Rasteryzacja  bufor Z
Rasteryzacja  bufor Z
Podczas procesu rasteryzacji chip 3D rysuje na
Podczas procesu rasteryzacji chip 3D rysuje na
ekranie po kolei trójkąt po trójkącie.
ekranie po kolei trójkąt po trójkącie.
Ka\dy punkt ekranu ma przyporządkowaną mu
Ka\dy punkt ekranu ma przyporządkowaną mu
wartość głębi Z. Gdy akcelerator rysuje kolejne
wartość głębi Z. Gdy akcelerator rysuje kolejne
obiekty z punkcie (X,Y), przed zapaleniem
obiekty z punkcie (X,Y), przed zapaleniem
punktu w określonym kolorze porównuje jego
punktu w określonym kolorze porównuje jego
współrzędną Z ze współrzędną Z
współrzędną Z ze współrzędną Z
odpowiadającego mu punktu wcześniej
odpowiadającego mu punktu wcześniej
wyświetlonego obiektu. Jeśli nowy punkt ma
wyświetlonego obiektu. Jeśli nowy punkt ma
ni\szą wartość Z, jest rysowany. W przeciwnym
ni\szą wartość Z, jest rysowany. W przeciwnym
wypadku akcelerator nie zmienia wartości koloru
wypadku akcelerator nie zmienia wartości koloru
rozpatrywanego punktu (chyba \e kanał alfa
rozpatrywanego punktu (chyba \e kanał alfa
przezroczystości pozwala na taką operację)
przezroczystości pozwala na taką operację)
19
Rasteryzacja  bufor szablonowy
Rasteryzacja  bufor szablonowy
Współczesne akceleratory 3D wyposa\one są
Współczesne akceleratory 3D wyposa\one są
dodatkowo w specjalny bufor, zwany buforem
dodatkowo w specjalny bufor, zwany buforem
szablonowym (stencil buffer). Jest to
szablonowym (stencil buffer). Jest to
najczęściej 1-bitowy bufor którego wartość
najczęściej 1-bitowy bufor którego wartość
logiczna 1 oznacza "tu nie wolno renderować", a
logiczna 1 oznacza "tu nie wolno renderować", a
zero - "tu wolno
zero - "tu wolno
Technika ta pozwala znacznie zmniejszyć
Technika ta pozwala znacznie zmniejszyć
zło\oność obliczeniową w systemach z animacją
zło\oność obliczeniową w systemach z animacją
Dithering
Dithering
Ze względów wydajnościowych bardzo często
Ze względów wydajnościowych bardzo często
systemy komputerowe pracują w trybach o głębi
systemy komputerowe pracują w trybach o głębi
kolorów obni\onej do 16-bitów. Poniewa\ nie
kolorów obni\onej do 16-bitów. Poniewa\ nie
jest to głębia wystarczająca do wiernego
jest to głębia wystarczająca do wiernego
odwzorowania świata 3D, więc akceleratory
odwzorowania świata 3D, więc akceleratory
stosują technikę tzw. ditheringu.
stosują technikę tzw. ditheringu.
Brakujące kolory tworzone są przy pomocy
Brakujące kolory tworzone są przy pomocy
mieszanki pikseli o kolorach z dostępnej
mieszanki pikseli o kolorach z dostępnej
palety. Powstaje efekt "ziarnistości", zwany
palety. Powstaje efekt "ziarnistości", zwany
ditheringiem ale uzyskuje się bardziej płynne
ditheringiem ale uzyskuje się bardziej płynne
przejścia pomiędzy ró\nymi kolorami
przejścia pomiędzy ró\nymi kolorami
20
... i od początku...
... i od początku...
Całość wymienionych procesów prowadzi do
Całość wymienionych procesów prowadzi do
wygenerowania jednej trójwymiarowej sceny
wygenerowania jednej trójwymiarowej sceny
("klatki animacji").
("klatki animacji").
By scenę tę wprowadzić w ruch, trzeba wszystkie
By scenę tę wprowadzić w ruch, trzeba wszystkie
fazy rozpocząć od nowa - tworzenie "drucianych"
fazy rozpocząć od nowa - tworzenie "drucianych"
brył, okładanie ich teksturami, cieniowanie,
brył, okładanie ich teksturami, cieniowanie,
oświetlenie itd.
oświetlenie itd.
By obraz na ekranie zmieniał się w sposób
By obraz na ekranie zmieniał się w sposób
płynny, akcelerator musi stworzyć
płynny, akcelerator musi stworzyć
kompletną scenę 3D w czasie równym lub
kompletną scenę 3D w czasie równym lub
krótszym od jednej trzydziestej sekundy!
krótszym od jednej trzydziestej sekundy!
21


Wyszukiwarka