język cg. programowanie grafiki w czasie rzeczywistym helion, moje ebooki
[ Pobierz całość w formacie PDF ]
IDZ DO
PRZYK£ADOW
Jêzyk Cg. Programowanie
grafiki w czasie rzeczywistym
Autorzy: Randima Fernando, Mark J. Kilgard
T³umaczenie: Rafa³ Joñca
ISBN: 83-7361-241-6
Tytu³ orygina³
Format: B5, stron: 308
SPIS TRECI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Cg to kompletne rodowisko programistyczne do szybkiego tworzenia efektów
specjalnych i grafiki o kinowej jakoci w czasie rzeczywistym dla wielu platform.
Poniewa¿ jêzyk jest niezale¿ny od sprzêtu, programici mog¹ pisaæ kod dla interfejsów
OpenGL, DirectX oraz systemów Windows, Linux, Mac OS X, a tak¿e platform
konsolowych, (Xbox) bez potrzeby korzystania z jêzyka asemblerowego. Jêzyk Cg
powsta³ w firmie NVIDIA Corporation przy bliskiej wspó³pracy z firm¹ Microsoft®
Corporation i jest kompatybilny z OpenGL API oraz jêzykiem HLSL dla biblioteki DirectX 9.
Ksi¹¿ka jest podrêcznikiem przeznaczonym dla rednio zaawansowanych programistów.
Opisuje ona zarówno sam jêzyk programowania Cg, jak i metody wielu sk³adników
nowoczesnych aplikacji bazuj¹cych na grafice trójwymiarowej.
Prezentowane w ksi¹¿ce zagadnienia to m.in.:
• Historia jêzyka Cg
• rodowisko programistyczne Cg
• Sk³adnia Cg i s³owa kluczowe
• Przekszta³cenia w przestrzeni trójwymiarowej
• Owietlenie bazuj¹ce na wierzcho³kach i pikselach
• Interpolacja ujêæ kluczowych i system koci
• Mapowanie rodowiska
• Mapowanie nierównoci
• Mg³a, wiat³a reflektorowe, cienie
• Zwiêkszanie wydajnoci
„Ksi¹¿ka wa¿na i na czasie: tworzenie tekstur proceduralnych na poziomie pikseli —
animowanych chmur, ognia, wody i wielu innych sztuczek — nareszcie z ekranów kin
przechodzi pod strzechy. Ca³a moc jest dostêpna dziêki jêzykowi przypominaj¹cemu
jêzyk C, co otwiera nowy rozdzia³ w grafice komputerowej”.
— Ken Perlin, Uniwersytet w Nowym Jorku
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Przedmowa....................................................................................................13
Wstp............................................................................................................15
Rozdział 1. Wprowadzenie...............................................................................21
1.1.Czym jest Cg?............................................................................................................. 21
1.1.1. Jzyki dla programowalnego sprztu graficznego........................................................22
1.1.2. Model przepływu danych w Cg......................................................................................22
1.1.3. Specjalizacja a generalizacja procesorów graficznych.................................................23
1.1.4. Wydajno%& jzyka Cg .......................................................................................................24
1.1.5. Współdziałanie z konwencjonalnymi jzykami ..........................................................24
1.1.6. Inne aspekty jzyka Cg.....................................................................................................26
1.1.7. Ograniczone %rodowisko wykonywania programów Cg............................................27
1.2. Wierzchołki, fragmenty i potok grafiki ................................................................28
1.2.1. Ewolucja sprztu graficznego.........................................................................................28
1.2.2. Cztery generacje sprztu graficznego............................................................................29
1.2.3. Sprztowy potok graficzny .............................................................................................33
1.2.4. Programowalny potok graficzny ...................................................................................37
1.2.5. Jzyk Cg zapewnia mo0liwo%& programowania
jednostek wierzchołków i fragmentów..........................................................................40
1.3. Historia powstania Cg.............................................................................................40
1.3.1. Współpraca firm NVIDIA i Microsoft w celu okre%lenia jzyków Cg i HLSL........42
1.3.2. Nieinteraktywne jzyki cieniowania..............................................................................42
1.3.3. Interfejsy programistyczne w grafice trójwymiarowej ................................................45
1.4. "rodowisko Cg..........................................................................................................45
1.4.1. Standardowe interfejsy programistyczne 3D: OpenGL i Direct3D..........................45
1.4.2. Kompilator i biblioteka wykonywania Cg...................................................................47
1.4.3. Narzdzia CgFX i format pliku......................................................................................49
1.5. %wiczenia................................................................................................................... 53
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
[ Pobierz całość w formacie PDF ]