język cg. programowanie grafiki w czasie rzeczywistym pełna wersja.pdf

(38573 KB) Pobierz
887661492.001.png
6
Jzyk Cg. Programowanie grafiki w czasie rzeczywistym
Rozdział 2. Najprostsze programy.....................................................................55
2.1. Prosty program wierzchołków................................................................................ 55
2.1.1. Struktura wyj%cia...............................................................................................................56
2.1.2. Identyfikatory...................................................................................................................57
2.1.3. Elementy struktur ............................................................................................................58
2.1.4. Wektory.............................................................................................................................58
2.1.5. Macierze.............................................................................................................................58
2.1.6. Semantyka.........................................................................................................................59
2.1.7. Funkcje ..............................................................................................................................60
2.1.8. Ró0nice w semantyce wej%cia i wyj%cia.......................................................................... 61
2.1.9. Ciało funkcji.....................................................................................................................62
2.2. Kompilacja przykładu.............................................................................................64
2.2.1. Profile programu wierzchołków....................................................................................64
2.2.2. Klasy błdów kompilacji programów Cg.....................................................................66
2.2.3. Błdy wynikaj@ce ze złego profilu..................................................................................66
2.2.4. Norma — kilka funkcji wej%cia.....................................................................................68
2.2.5. Pobieranie i konfiguracja programów wierzchołków i fragmentów........................68
2.3. Prosty program fragmentów...................................................................................70
2.3.1. Profile dla programów fragmentów ..............................................................................71
2.4. Rendering przykładowych programów wierzchołków i fragmentów...............72
2.4.1. Rendering trójk@ta w OpenGL ......................................................................................73
2.4.2. Rendering trójk@ta w Direct3D .....................................................................................74
2.4.3. Uzyskanie tych samych wyników..................................................................................74
2.5. %wiczenia..................................................................................................................76
Rozdział 3. Parametry, tekstury i wyra enia.....................................................77
3.1. Parametry...................................................................................................................77
3.1.1. Parametry jednolite ..........................................................................................................77
3.1.2. Kwalifikator typu const...................................................................................................80
3.1.3. Ró0norodno%& parametrów............................................................................................80
3.2. Próbkowanie tekstur................................................................................................82
3.2.1. Obiekty próbek.................................................................................................................82
3.2.2. Próbki tekstur...................................................................................................................83
3.2.3. Wysyłanie współrzdnych tekstury w trakcie próbkowania tekstury.......................84
3.3. Wyra/enia matematyczne .......................................................................................85
3.3.1. Operatory ..........................................................................................................................85
3.3.2. Typy danych uzale0nione od profilu............................................................................86
3.3.3. Funkcje wbudowane w standardow@ bibliotek Cg....................................................90
3.3.4. Skrcanie w dwuwymiarze ..............................................................................................93
3.3.5. Efekt podwójnego widzenia ...........................................................................................96
3.4. %wiczenia................................................................................................................100
Spis treci
7
Rozdział 4. Przekształcenia........................................................................... 101
4.1. Układy współrz1dnych...........................................................................................101
4.1.1. PrzestrzeD obiektu..........................................................................................................102
4.1.2. Współrzdne homogeniczne........................................................................................103
4.1.3. PrzestrzeD %wiata.............................................................................................................103
4.1.4. Przekształcenie modelu.................................................................................................104
4.1.5. PrzestrzeD oka.................................................................................................................105
4.1.6. Przekształcenie widoku .................................................................................................105
4.1.7. PrzestrzeD przycicia .....................................................................................................106
4.1.8. Przekształcenie rzutowania...........................................................................................106
4.1.9. Znormalizowane współrzdne urz@dzenia ................................................................107
4.1.10. Współrzdne okna .......................................................................................................108
4.2. Zastosowanie teorii................................................................................................108
4.3. %wiczenia................................................................................................................109
Rozdział 5. O&wietlenie...................................................................................111
5.1. O5wietlenie i zwi6zane z nim modele...................................................................111
5.2. Implementacja podstawowego modelu o5wietlenia opartego na wierzchołkach...113
5.2.1. Podstawowy model o%wietlenia.....................................................................................113
5.2.2. Program wierzchołków dla prostego o%wietlenia opartego na wierzchołkach..... 119
5.2.3. Program fragmentów dla modelu o%wietlenia wykorzystuj@cego wierzchołki.....128
5.2.4. Efekt modelu o%wietlenia opartego na wierzchołkach.............................................128
5.3. Model o5wietlenia oparty na fragmentach .........................................................129
5.3.1. Implementacja modelu o%wietlenia opartego na fragmentach ...............................130
5.3.2. Program wierzchołków dla modelu o%wietlenia opartego na fragmentach...........131
5.3.3. Program fragmentów dla modelu o%wietlenia opartego na fragmentach ..............131
5.4. Tworzenie funkcji modelu o5wietlenia................................................................133
5.4.1. Deklarowanie funkcji .................................................................................................... 133
5.4.2. Funkcja o%wietlenia .......................................................................................................134
5.4.3. Struktury ......................................................................................................................... 135
5.4.4. Tablice ............................................................................................................................. 136
5.4.5. Sterowanie wykonywaniem programu .......................................................................137
5.4.6. Obliczenie modelu o%wietlenia rozproszenia i rozbłysku.......................................138
5.5. Rozszerzenie modelu podstawowego.................................................................. 138
5.5.1. Zanik %wiatła wraz z odległo%ci@ ..................................................................................139
5.5.2. Dodanie efektu reflektora.............................................................................................140
5.5.3. Fwiatła kierunkowe........................................................................................................145
5.6. %wiczenia................................................................................................................ 145
Rozdział 6. Animacja .....................................................................................147
6.1. Ruch w czasie ..........................................................................................................147
6.2. Pulsuj6cy obiekt......................................................................................................148
6.2.1. Program wierzchołków..................................................................................................149
6.2.2. Obliczanie przemieszczenia.........................................................................................150
8
Jzyk Cg. Programowanie grafiki w czasie rzeczywistym
6.3. Systemy cz6steczek ................................................................................................. 152
6.3.1. Warunki pocz@tkowe..................................................................................................... 153
6.3.2. Wektoryzacja obliczeD .................................................................................................. 153
6.3.3. Parametry systemu cz@steczek......................................................................................154
6.3.4. Program wierzchołków .................................................................................................154
6.3.5. Ubieramy system cz@steczek......................................................................................... 156
6.4. Interpolacja uj1; kluczowych............................................................................... 157
6.4.1. Teoria uj& kluczowych.................................................................................................157
6.4.2. Rodzaje interpolacji ......................................................................................................160
6.4.3. Prosta interpolacja uj& kluczowych...........................................................................160
6.4.4. Interpolacja uj& kluczowych z o%wietleniem............................................................162
6.5. System skóry dla wierzchołków.............................................................................163
6.5.1. Teoria systemu skóry dla wierzchołków ..................................................................... 163
6.5.2. System skóry w programie wierzchołków .................................................................. 166
6.6. %wiczenia................................................................................................................ 167
Rozdział 7. Mapowanie &rodowiska.................................................................169
7.1. Mapowanie 5rodowiska......................................................................................... 169
7.1.1. Tekstury map sze%ciennych...........................................................................................170
7.1.2. Generowanie map sze%ciennych .................................................................................. 171
7.1.3. Koncepcja mapowania %rodowiska ............................................................................. 171
7.1.4. Obliczenie wektorów odbicia.......................................................................................172
7.1.5. Zało0enia mapowania %rodowiska...............................................................................173
7.2. Mapowanie odbi; ..................................................................................................174
7.2.1. Parametry okre%lane przez aplikacj ...........................................................................175
7.2.2. Program wierzchołków.................................................................................................175
7.2.3. Program fragmentów ....................................................................................................179
7.2.4. Mapy steruj@ce ...............................................................................................................180
7.2.5. Program wierzchołków a program fragmentów........................................................180
7.3. Mapowanie załama<...............................................................................................181
7.3.1. Zjawisko załamania %wiatła...........................................................................................182
7.3.2. Program wierzchołków .................................................................................................184
7.3.3. Program fragmentów.....................................................................................................186
7.4. Efekt Fresnela i rozszczepienie chromatyczne...................................................187
7.4.1. Efekt Fresnela .................................................................................................................187
7.4.2. Rozszczepienie chromatyczne.....................................................................................188
7.4.3. Parametry zale0ne od aplikacji ....................................................................................189
7.4.4. Program wierzchołków.................................................................................................190
7.4.5. Program fragmentów .................................................................................................... 191
7.5. %wiczenia................................................................................................................ 193
Spis treci
9
Rozdział 8. Mapowanie nierówno&ci................................................................195
8.1. Mapowanie nierówno5ci ceglanej 5ciany ............................................................ 195
8.1.1. Mapa normalnych ceglanej %ciany...............................................................................196
8.1.2. Przechowywanie map nierówno%ci jako map normalnych .....................................197
8.1.3. Proste mapowanie nierówno%ci dla ceglanego muru................................................200
8.1.4. Mapowanie nierówno%ci dla rozbłysku......................................................................203
8.1.5. Mapowanie nierówno%ci na innej geometrii..............................................................206
8.2. Mapowanie nierówno5ci ceglanej podłogi.........................................................208
8.2.1. Program wierzchołków dla renderingu obrazu ceglanej podłogi...........................210
8.3. Mapowanie nierówno5ci dla torusa..................................................................... 213
8.3.1. Matematyka dotycz@ca torusa......................................................................................213
8.3.2. Program wierzchołków dla torusa z mapowaniem nierówno%ci............................216
8.4. Mapowanie nierówno5ci dla teksturowanych siatek wielok6tnych................218
8.4.1. Algorytm dla pojedynczego trójk@ta...........................................................................218
8.4.2. Mo0liwe problemy ........................................................................................................220
8.4.3. Uogólnienie do siatek z wielok@tów ...........................................................................222
8.5. Poł6czenie mapowania nierówno5ci z innymi efektami ..................................223
8.5.1. Standardowe tekstury ....................................................................................................223
8.5.2. Mapy połysku.................................................................................................................223
8.5.3. Rzucanie cieni na samego siebie..................................................................................224
8.6. %wiczenia................................................................................................................225
Rozdział 9. Zagadnienia zaawansowane...........................................................227
9.1. Mgła .........................................................................................................................227
9.1.1. Mgła jednorodna............................................................................................................228
9.1.2. Atrybuty mgły.................................................................................................................229
9.1.3. Matematyka mgły...........................................................................................................229
9.1.4. Dostosowanie równaD do zachowania zgodnego z intuicj@....................................232
9.1.5. Tworzenie jednorodnej mgły w programie Cg ..........................................................233
9.2. Rendering nierealistyczny ....................................................................................235
9.2.1. Cieniowanie jak w kreskówkach..................................................................................235
9.2.2. Implementacja cieniowania kreskówkowego............................................................236
9.2.3. Ł@czymy wszystko razem..............................................................................................239
9.2.4. Problemy zwi@zane z tym rozwi@zaniem ...................................................................241
9.3. Rzutowanie tekstur................................................................................................241
9.3.1. W jaki sposób działa rzutowanie tekstur?...................................................................242
9.3.2. Implementacja rzutowania tekstury ...........................................................................244
9.3.3. Kod rzutowania tekstury ..............................................................................................245
9.4. Mapowanie cieni....................................................................................................248
9.5. Ł6czenie...................................................................................................................250
9.5.1. Mapowanie pikseli z wej%cia na wyj%cie ......................................................................251
9.5.2. Podstawowe operacje dotycz@ce ł@czenia ...................................................................252
9.6. %wiczenia................................................................................................................254
Zgłoś jeśli naruszono regulamin