Modul 6 Charakterystyka potoku renderingu, Transport sudia, Grafika komputerowa
[ Pobierz całość w formacie PDF ]
Charakterystyka potoku renderingu
1. Potok renderingu
2. Przekształcenie rzutowania
3. Rasteryzacja i cieniowanie
4. Formaty plików graficznychzapisywanychwtrybierastrowym
5. Rendering w czasie rzeczywistym. Właściwości rzeczywistości wirtualnej
1
1. Potok renderingu
Wiele jest definicji procesu renderingu. Efektem renderingu jest „zdjęcie” wirtual-
nej (zapisanej w postaci danych binarnych) sceny. Najprostsza wydaje się definicja
określająca
rendering jako proces tworzenia obrazu sceny graficznejzapełnionej obiektami
(może być to scena dwu- lub trójwymiarowa).
Przy takiej definicjirenderingobrazów zapisywanych w trybie rastrowym jest bardzo
prosty — wymaga jedynie wyświetlenia tablicy pikseli w odpowiednio zdefiniowa-
nym oknie wymiarowym. W przypadku renderingu sceny zapisanej w modelu za-
stosowań w trybie wektorowym proces jest bardziej skomplikowany. Zanim jednak
przejdziemy do jego omówienia, podamy inne definicjeprocesurenderingu.
Rendering może być rozumiany jako proces tworzenia na ekranie obrazów na pod-
stawie modeli, uwzględniający ich oddziaływanie ze światłem podczas obserwacji
z określonej kamery.
Rendering jest skomplikowanym i kosztownym obliczeniowo procesem przekształ-
cającym zaprojektowaną scenę graficzną w obraz wyświetlany na płaskim ekranie.
Wszystkie te definicjemożna przedstawić na jednym prostym schemacie (rysunek 1).
rasteryzacja i przetwarzanie
sygnału cyfrowego na analogowy
budowa wirtualnego modelu
przeglądanie i odczytywanie
modelu hierarchicznego
Rysunek 1
Ogólny potok przepływu informacji w postaci potoku renderingu przedstawiono na
rysunku 2.
Miejsce renderingu w procesach
graficznychprowadzonychprzy
pomocy komputera
Rysunek 2
Program użytkowy rozpoczyna rendering od przeglądu danych zapisanych w mo-
delu zastosowań. Na podstawie wybranych reprezentacji budowany jest wirtualny
model geometryczny obiektów na scenie. Po ustaleniu wszystkich warunków wirtu-
Schemat blokowy ogólnego
potoku renderingu
2
alnego modelu jest on rzutowany na rzutnię wybranej kamery. W trakcie rzutowania
pikselom rzutni
(obszary odpowiadające obszarom odpowiednich pikseli ekranu przy
określonej rozdzielczości wyświetlacza — rozdzielczość wyświetlacza wybieramy
wcześniej, definiując w programie użytkowym rozmiar obrazu) przyporządkowywa-
ne są
teksele
powierzchni obiektów sceny. Takie przyporządkowanie definiujepoję-
cie teksela używanego przy nakładaniu tekstur. Opisaną fazę renderingu nazywamy
przetwarzaniem geometrycznym
.
Współbieżnie z rzutowaniem wyznaczane są warunki
obcinania
(odrzucane są części
elementów niemieszczące się w bryle widzenia) i
przesłaniania
(obiekty znajdujące
się bliżej kamery przesłaniają lub częściowo przesłaniają obiekty znajdujące się da-
lej). Jako wskaźnik przesłaniania jest wykorzystana wartość ostatniej współrzędnej
jednorodnej przechowywana w tzw.
buforze
Z
(wydzielona do działań operacyjnych
część pamięci systemu graficznego — karty). Jednocześnie dla widocznych (nie-
przesłoniętych) dla kamery części powierzchni odbywa się proces obliczania bar-
wy każdego piksela rzutni, uwzględniający parametry oddziaływania ze światłem
każdego teksela, którego wartości przypisywane są powierzchniom w trakcie ich
modelowania. W obliczeniach uwzględnione zostają wszystkie światła zdefiniowane
dla sceny i właściwości przestrzeni sceny oddzielającej dany teksel od źródła światła
oraz od kamery (obserwatora). W obliczeniach uwzględniane są także tekstury, które
były przypisane wcześniej do powierzchni (najczęściej zapisywane są w zbiorach ze-
wnętrznych w stosunku do modelu zastosowań, a w tym ostatnim przechowywane
są jedynie wskaźniki na zbiory zawierające tekstury). Tę fazę renderingu nazywamy
rasteryzacją
.
Na rysunku 3 przedstawiono schematy blokowe obu faz potoku renderingu.
Rysunek 3
Dokładniejszego omówienia wymagają: przekształcenie rzutowania i cieniowanie.
Pozostałe składowe potoku renderingu zostały już omówione wcześniej.
Schematy blokowe
faz: przekształcania
geometrycznego i rasteryzacji
potoku renderingu
3
2. Przekształcenie rzutowania
Wirtualny model musi zostać zrzutowany na rzutnię wybranej kamery. Możliwe jest
zastosowanie dwóch rodzajów rzutu: równoległego i perspektywicznego (zwanego
też środkowym). Rzut równoległy jest wykorzystywany w kierunkowych oknach wi-
dokowych programów modelerskich. W przypadku renderingu obrazu widzianego
w kamerze najczęściej wykorzystywany jest rzut perspektywiczny jednopunktowy.
Układ współrzędnych, w którym odbywa się rzutowanie (jego początkiem jest punkt
przecięcia promieni rzutowania), pokrywa się z układem kamery.
Rzutowanie obiektu sprowadza się do zrzutowania punktów charakterystycznych
jego powierzchni. W zasadzie rzutowana jest pełna siatka obiektu i dopiero później
określane są punkty widoczne.
Rzutowanie, podobnie jak każde inne przekształcenie, polega na wymnożeniu ma-
cierzy rzutowania przez współrzędne jednorodne punktu. Wizualizację procesu
przedstawiono na rysunku 4.
Rysunek 4
Rzut perspektywiczny punktu
na rzutnię znajdującą się
w odległości
d
od punktu
zbieżności promieni rzutowania
(ogniska kamery) będącego
jednocześnie układem
odniesienia
Wykorzystując oznaczenia z rysunku 4, możemy wyprowadzić wartości współczyn-
ników macierzy rzutowania perspektywicznego
M
per
:
x
x
y
'
y
P
'
M
·
M
·
P
(1)
per
per
d
z
1
1
4
'
Wykorzystując twierdzenie Talesa, możemy zapisać następujące równości spełnione
dla wielkości zaznaczonych na rysunku 4:
x
'
x
;
y
'
y
d
z
d
z
x
y
(2)
x
'
;
y
'
z
/
d
z
/
d
co w efekcie prowadzi do wyznaczenia następujących wartości współczynników ma-
cierzy rzutu perspektywicznego:
M
1000
0100
(3)
per
0010
001d0
Rzutowanie punktu polega na wymnożeniu jego współrzędnych jednorodnych przez
macierz rzutu perspektywi
czn
ego, przy znanej odległości rzutni od punktu zbieżno-
ści promieni rzutowania (punktu środkowego). Ponieważ dla obrazu każdego punk-
tu
P
(punkt
P’
), wartości dwóch ostatnich współrzędnych (równanie 1) są takie same
(dla każdego punktu
P’
:
z’ = d
i
W’ = 1
), otrzymaliśmy punkty należące do tej samej
płaszczyzny.
Po przeskalowaniu współrzędnych jednorodnych obrazów punktów otrzymujemy
współrzędne punktów w określonym oknie widokowym ekranu, co oznacza, że ob-
raz może być bezpośrednio wyświetlany. W ten sposób za pomocą prostego zabiegu
(do którego potrzebna jest tylko znajomość odległości rzutni od ogniska kamery)
przekształciliśmy trójwymiarową scenę graficzną w jej dwuwymiarowy obraz na wy-
świetlaczu.
Na rysunku 5 przedstawiono ciąg przekształceń trójwymiarowej sceny w dwuwy-
miarowy obraz na płaskim wyświetlaczu. Na rysunku zaznaczono także układy,
w których tych przekształceń się dokonuje.
Rysunek 5
W trakcie rzutowania definiowane są teksele, czyli wycinki powierzchni odpowia-
dające pikselom rzutni. Jest to duże ułatwienie dalszych obliczeń, ponieważ właści-
wości punktów należących do tekseli powinny być takie same, co wynika z definicji
piksela.
Ciąg przekształceń
trójwymiarowej sceny
w dwuwymiarowy obraz na
płaskim wyświetlaczu
5
[ Pobierz całość w formacie PDF ]