Poznaj tajniki programowania realistycznej grafiki 3D
Stwórz i animuj obiekty trójwymiarowe
Wykorzystaj mechanizmy renderingu na platformach Windows, Mac OS i Linux
Zastosuj w swoich projektach algorytmy sprzętowego wspomagania wyświetlania grafiki 3D
OpenGL to platforma programistyczna do tworzenia grafiki trójwymiarowej. Tworzące ją mechanizmy zostały opracowane ponad 20 lat temu w firmie Silicon Graphics i spowodowały prawdziwą rewolucję w świecie grafiki komputerowej. Dzięki bibliotece OpenGL możliwe stało się tworzenie realistycznej grafiki i animacji 3D oraz wykorzystywanie możliwości kart i systemów graficznych do wspomagania jej wyświetlania. To właśnie dzięki rozwojowi OpenGL możemy teraz podziwiać wspaniałe wizualizacje, kinowe efekty specjalne i oszałamiające gry komputerowe.
Książka 'OpenGL. Księga eksperta. Wydanie III' to podręcznik dla programistów chcących wykorzystać możliwości biblioteki OpenGL w swoich projektach. Opisuje zarówno podstawy programowania grafiki z wykorzystaniem OpenGL, jak i możliwości zastosowania jej na różnych platformach systemowych i sprzętowych. Przedstawia również sposoby wykorzystania mechanizmów sprzętowego wspomagania wyświetlania grafiki i animacji 3D oraz efektów specjalnych.
Typowe zastosowania grafiki komputerowej
Przegląd możliwości bibliotek OpenGL
Podstawy stosowania OpenGL
Tworzenie brył trójwymiarowych i korzystanie z kształtów podstawowych
Przekształcenia geometryczne i przetwarzanie potokowe
Modele kolorów i oświetlenia
Przetwarzanie grafiki i mapowanie tekstur
Modelowanie krzywych i powierzchni
Wykorzystanie bibliotek OpenGL w różnych systemach operacyjnych
Buforowanie danych
Cienie i głębia ostrości
Operacje na wierzchołkach
Jeśli chcesz stworzyć grafikę 3D zapierającą dech w piersiach, skorzystaj z wiedzy zawartej w tej książce.
Znajdź podobne książki
Ostatnio czytane w tej kategorii
Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREĎCI
SPIS TREĎCI
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOĎCIACH
O NOWOĎCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
OpenGL. Ksiêga
eksperta. Wydanie III
Autorzy: Richard S. Wright Jr., Benjamin Lipchak
T³umaczenie: Wojciech Moch (wstêp, rozdz. 1 – 9), Rafa³ Joñca
(rozdz. 10 –14), Marek Pêtlicki (rozdz. 15 – 23, dod. A – C)
ISBN: 83-7361-703-5
Tytu³ orygina³u: OpenGL Superbible
Format: B5, stron: 1080
Poznaj tajniki programowania realistycznej grafiki 3D
• Stwórz i animuj obiekty trójwymiarowe
• Wykorzystaj mechanizmy renderingu na platformach Windows, Mac OS i Linux
• Zastosuj w swoich projektach algorytmy sprzêtowego wspomagania
wyġwietlania grafiki 3D
OpenGL to platforma programistyczna do tworzenia grafiki trójwymiarowej.
Tworz¹ce j¹ mechanizmy zosta³y opracowane ponad 20 lat temu w firmie Silicon
Graphics i spowodowa³y prawdziw¹ rewolucjê w ġwiecie grafiki komputerowej.
Dziêki bibliotece OpenGL mo¿liwe sta³o siê tworzenie realistycznej grafiki i animacji 3D
oraz wykorzystywanie mo¿liwoġci kart i systemów graficznych do wspomagania jej
wyġwietlania. To w³aġnie dziêki rozwojowi OpenGL mo¿emy teraz podziwiaæ wspania³e
wizualizacje, kinowe efekty specjalne i osza³amiaj¹ce gry komputerowe.
Ksi¹¿ka „OpenGL. Ksiêga eksperta. Wydanie III” to podrêcznik dla programistów
chc¹cych wykorzystaæ mo¿liwoġci biblioteki OpenGL w swoich projektach.
Opisuje zarówno podstawy programowania grafiki z wykorzystaniem OpenGL, jak
i mo¿liwoġci zastosowania jej na ró¿nych platformach systemowych i sprzêtowych.
Przedstawia równie¿ sposoby wykorzystania mechanizmów sprzêtowego
wspomagania wyġwietlania grafiki i animacji 3D oraz efektów specjalnych.
• Typowe zastosowania grafiki komputerowej
• Przegl¹d mo¿liwoġci bibliotek OpenGL
• Podstawy stosowania OpenGL
• Tworzenie bry³ trójwymiarowych i korzystanie z kszta³tów podstawowych
• Przekszta³cenia geometryczne i przetwarzanie potokowe
• Modele kolorów i oġwietlenia
• Przetwarzanie grafiki i mapowanie tekstur
• Modelowanie krzywych i powierzchni
• Wykorzystanie bibliotek OpenGL w ró¿nych systemach operacyjnych
• Buforowanie danych
• Cienie i g³êbia ostroġci
• Operacje na wierzcho³kach
Jeġli chcesz stworzyæ grafikê 3D zapieraj¹c¹ dech w piersiach,
skorzystaj z wiedzy zawartej w tej ksi¹¿ce.
5RKUVTGħEK
1#WVQTCEJJ
9RTQYCFGPKG J
úħè+-NCU[MC1RGP). C
4QFKCđ9RTQYCFGPKGFQITCHKMKVTÎLY[OKCTQYGLK1RGP).
O co tu chodzi?...................................................i...................................................i..............................29
Krótka historia grafiki komputerowej...................................................i...............................................29
Pojawienie się monitorów CRT...................................................i..................................................30
Wejście w trzeci wymiar ...................................................i...................................................i.........31
Przegląd efektów trójwymiarowych ...................................................i.................................................33
Perspektywa ...................................................i...................................................i............................34
Kolorowanie i cieniowanie...................................................i...................................................i......34
Światło i cienie...................................................i...................................................i........................34
Odwzorowywanie tekstur...................................................i...................................................i........35
Mgła ...................................................i...................................................i........................................36
Mieszanie i przezroczystość ...................................................i.......................................................36
Antyaliasing ...................................................i...................................................i............................37
Typowe zastosowania grafiki trójwymiarowej ...................................................i.................................38
Trzy wymiary w czasie rzeczywistym...................................................i........................................38
Trzy wymiary bez czasu rzeczywistego ...................................................i.....................................39
Podstawowe zasady programowania grafiki trójwymiarowej...................................................i...........42
Tryb natychmiastowy i tryb opóźniony...................................................i......................................42
Układ współrzędnych...................................................i...................................................i..............43
Rzutowanie. Z trzech w dwa wymiary ...................................................i.......................................47
Podsumowanie...................................................i...................................................i...............................49
4QFKCđ7ľ[YCPKG1RGP). J
Czym jest OpenGL? ...................................................i...................................................i......................51
Ewolucja standardu ...................................................i...................................................i.................52
Wojny interfejsów (API Wars)...................................................i...................................................54
Jak działa OpenGL?...................................................i...................................................i.......................60
Implementacja ogólna ...................................................i...................................................i.............60
Implementacje sprzętowe ...................................................i...................................................i........61
Potok ...................................................i...................................................i.......................................62
OpenGL. To jest API, nie język ...................................................i.......................................................63
Biblioteki i pliki nagłówkowe ...................................................i....................................................64
Szczegóły interfejsu...................................................i...................................................i.......................64
Typy danych...................................................i...................................................i............................65
6
OpenGL. Księga eksperta
Konwencje nazewnictwa funkcji...................................................i................................................66
Niezależność od platformy ...................................................i...................................................i............67
Biblioteka GLUT...................................................i...................................................i.....................68
Konfigurowanie środowiska programistycznego ...................................................i.......................69
Nasz pierwszy program ...................................................i...................................................i...........69
Rysowanie kształtów w OpenGL ...................................................i...............................................75
Animacja w OpenGL i GLUT ...................................................i...................................................i.......82
Podwójne buforowanie...................................................i...................................................i............85
Maszyna stanów OpenGL...................................................i...................................................i..............86
Zapisywanie i odtwarzanie stanów...................................................i.............................................87
Błędy OpenGL...................................................i...................................................i...............................88
Gdy w dobrym kodzie dzieją się złe rzeczy ...................................................i...............................88
Identyfikowanie wersji ...................................................i...................................................i..................89
Pobieranie wskazówek z funkcji glHint ...................................................i...........................................89
Korzystanie z rozszerzeń ...................................................i...................................................i...............90
Wyszukiwanie rozszerzeń ...................................................i...................................................i.......90
Czyje to rozszerzenie?...................................................i...................................................i.............92
Stosowanie w systemie Windows biblioteki OpenGL w wersji wyższej niż 1.1...........................92
Podsumowanie...................................................i...................................................i...............................93
Opisy funkcji ...................................................i...................................................i.................................94
4QFKCđ4[UQYCPKGYRTGUVTGPK)GQOGVT[EPGQDKGMV[
RQFUVCYQYGKDWHQT[ J
Rysowanie punktów w trzech wymiarach ...................................................i......................................108
Konfigurowanie trójwymiarowego płótna...................................................i......................................108
Punkt w trzech wymiarach. Wierzchołek ...................................................i.......................................110
Narysujmy coś!...................................................i...................................................i............................111
Rysowanie punktów ...................................................i...................................................i..............111
Ustalanie wielkości punktu...................................................i.............................................................114
Rysowanie linii w trzech wymiarach...................................................i..............................................118
Linie łamane i zamknięte...................................................i...................................................i.......118
Aproksymacja krzywych liniami prostymi...................................................i...............................120
Ustalanie szerokości linii...........................i...................................................i...............................121
Linie przerywane...................................................i...................................................i...................123
Rysowanie trójkątów w trzech wymiarach ...................................................i.....................................125
Trójkąt — mój pierwszy wielokąt ...................................................i............................................126
Nawinięcie...................................................i...................................................i.............................126
Trójkąty sklejane ...................................................i...................................................i...................128
Wachlarze trójkątów...................................................i...................................................i..............128
Budowanie pełnych obiektów...................................................i.........................................................129
Ustalanie koloru wielokąta...................................................i.......................................................132
Usuwanie ukrytych powierzchni ...................................................i..............................................132
Culling. Ukrywanie powierzchni poprawia wydajność ...................................................i............134
Tryby wielokątów ...................................................i...................................................i.................136
Inne obiekty podstawowe ...................................................i...................................................i............137
Czworokąty ...................................................i...................................................i...........................137
Dowolne wielokąty...................................................i...................................................i................138
Wypełnianie wielokątów lub powrót do tepowania...................................................i..................139
Reguły konstruowania wielokątów...................................................i...........................................142
Podziały i krawędzie ...................................................i...................................................i.............144
Spis treści
7
Inne ciekawe operacje na buforze...................................................i...................................................145
Wybranie bufora docelowego...................................................i...................................................145
Manipulowanie buforem głębi ...................................................i.................................................147
Wycinanie nożycami ...................................................i...................................................i.............148
Używanie bufora szablonowego...................................................i...............................................149
Podsumowanie...................................................i...................................................i.............................155
Opisy funkcji ...................................................i...................................................i...............................155
4QFKCđ2TGMUVCđEGPKCIGQOGVT[EPG2QVQM
Czy to jest ten straszliwy rozdział z matematyką?...................................................i..........................172
Przekształcenia ...................................................i...................................................i............................172
Współrzędne oka...................................................i...................................................i...................173
Przekształcenia punktu widzenia...................................................i..............................................174
Przekształcenia modelowania...................................................i...................................................174
Dwoistość model-widok...................................................i...................................................i........175
Przekształcenia rzutowania ...................................................i......................................................177
Przekształcenia widoku ...................................................i...................................................i.........178
Macierz — matematyczna podstawa grafiki trójwymiarowej...................................................i.........178
Czym jest macierz? ...................................................i...................................................i...............179
Potok przekształceń...................................................i...................................................i...............180
Macierz model-widok...................................................i...................................................i............181
Macierz jednostkowa...................................................i...................................................i.............184
Stos macierzy ...................................................i...................................................i........................186
Przykład atomowy...................................................i...................................................i.................187
Rzutowania...................................................i...................................................i..................................189
Rzutowanie prostopadłe ...................................................i...................................................i........190
Rzutowanie perspektywiczne ...................................................i...................................................190
Przykład kosmiczny ...................................................i...................................................i..............193
Zaawansowane manipulacje macierzami...................................................i........................................197
Ładowanie macierzy...................................................i...................................................i..............199
Wykonywanie własnych przekształceń ...................................................i....................................199
Łączenie przekształceń...................................................i...................................................i..........202
Przesuwanie kamer i aktorów w OpenGL ...................................................i......................................203
Układ odniesienia aktora ...................................................i...................................................i.......204
Kąty Eulera. „Użyj układu odniesienia, Luke!” ...................................................i.......................205
Obsługa kamery...................................................i...................................................i.....................205
A teraz wszystko razem ...................................................i...................................................i...............206
Podsumowanie...................................................i...................................................i.............................212
Opisy funkcji ...................................................i...................................................i...............................212
4QFKCđ-QNQTOCVGTKCđ[KQħYKGVNGPKG2QFUVCY[
Czym jest kolor?...................................................i...................................................i..........................222
Światło jest falą ...................................................i...................................................i.....................222
Światło jako cząsteczka...................................................i...................................................i.........222
Nasz osobisty wykrywacz fotonów ...................................................i..........................................224
Komputer generatorem fotonów...................................................i...............................................224
Sprzęt komputerów PC...................................................i...................................................i................225
Tryby graficzne komputerów PC...................................................i....................................................227
Rozdzielczość ekranu...................................................i...................................................i............227
Głębia kolorów...................................................i...................................................i......................227
8
OpenGL. Księga eksperta
Używanie kolorów w OpenGL ...................................................i...................................................i....229
Sześcian kolorów.....................................i...................................................i.................................229
Ustalanie koloru rysowania ...................................................i......................................................230
Cieniowanie........................................i...................................................i......................................231
Ustalanie modelu cieniowania...................................................i..................................................233
Kolory w świecie rzeczywistym ...................................................i.....................................................234
Światło otaczające ...................................................i...................................................i.................235
Światło rozproszone ...................................................i...................................................i..............235
Światło odbite...................................................i...................................................i........................235
A teraz wszystko razem...................................................i...................................................i.........236
Materiały w świecie rzeczywistym...................................................i.................................................237
Właściwości materiałów...................................................i...................................................i........237
Dodawanie światła do materiałów...................................................i............................................237
Wyliczanie efektów oświetlenia otoczenia...................................................i...............................238
Efekty światła rozproszenia i odbitego...................................................i.....................................238
Dodawanie świateł do sceny...................................................i...........................................................239
Włączenie oświetlenia...................................................i...................................................i...........239
Konfigurowanie modelu oświetlenia...................................................i........................................239
Ustalanie właściwości materiałów...................................................i............................................240
Używanie źródeł światła...................................................i...................................................i..............243
Gdzie jest góra?...................................................i...................................................i.....................244
Normalne powierzchni ...................................................i...................................................i..........244
Definiowanie normalnej ...................................................i...................................................i........245
Normalne jednostkowe...................................................i...................................................i..........247
Znajdowanie normalnej...................................................i...................................................i.........248
Konfigurowanie źródła...................................................i...................................................i..........249
Ustalanie właściwości materiałów...................................................i............................................250
Definiowanie wielokątów...................................................i...................................................i......251
Efekty świetlne ...................................................i...................................................i............................252
Odbłyski ...................................................i...................................................i................................253
Światło odbite...................................................i...................................................i........................253
Współczynnik odbicia ...................................................i...................................................i...........254
Wykładnik odbłysku ...................................................i...................................................i.............255
Uśrednianie normalnych...................................................i...................................................i........256
A teraz wszystko razem ...................................................i...................................................i...............258
Tworzenie reflektora ...................................................i...................................................i.............259
Rysowanie reflektorów...................................................i...................................................i..........261
Cienie ...................................................i...................................................i..........................................265
Czym jest cień? ...................................................i...................................................i.....................266
Kod prasujący...................................................i...................................................i........................267
Przykład z cieniem ...................................................i...................................................i................268
Ponowna wizyta w świecie kul...................................................i.................................................271
Podsumowanie...................................................i...................................................i.............................271
Opisy funkcji ...................................................i...................................................i...............................272
4QFKCđ9KúEGLQMQNQTCEJKOCVGTKCđCEJ
Mieszanie kolorów ...................................................i...................................................i......................281
Łączenie kolorów ...................................................i...................................................i..................282
Zmiana równania mieszania ...................................................i...................................................i..285
Antyaliasing ...................................................i...................................................i..........................286
Spis treści
9
Mgła ...................................................i...................................................i............................................291
Bufor akumulacji ...................................................i...................................................i.........................294
Inne operacje na kolorach...................................................i...................................................i............297
Maskowanie kolorów ...................................................i...................................................i............297
Operacje logiczne na kolorach ...................................................i.................................................298
Testowanie kanału alfa...................................................i...................................................i..........298
Rozsiewanie ...................................................i...................................................i..........................299
Podsumowanie...................................................i...................................................i.............................300
Opisy funkcji ...................................................i...................................................i...............................300
4QFKCđ2TGVYCTCPKGITCHKMKY1RGP).
Bitmapy ...................................................i...................................................i.......................................308
Przykład bitmapowy...................................................i...................................................i..............309
Pakowanie pikseli...................................................i...................................................i........................313
Piksmapy ...................................................i...................................................i.....................................315
Upakowane formaty pikseli...................................................i...................................................i...316
Przykład kolorowy ...................................................i...................................................i................317
Przesuwanie pikseli ...................................................i...................................................i...............320
Zapisywanie pikseli...................................................i...................................................i...............322
Więcej zabaw z pikselami ...................................................i...................................................i...........323
Powiększanie pikseli ...................................................i...................................................i.............329
Transfer pikseli...................................................i...................................................i......................331
Odwzorowanie pikseli...................................................i...................................................i...........335
„Podzbiór” funkcji obrazowania...................................................i.....................................................337
Potok obrazowania ...................................................i...................................................i................340
Podsumowanie...................................................i...................................................i.............................352
Opisy funkcji ...................................................i...................................................i...............................353
4QFKCđ1FYQTQY[YCPKGVGMUVWT2QFUVCY[
Ładowanie tekstur ...................................................i...................................................i.......................374
Wykorzystywanie bufora kolorów ...................................................i...........................................377
Aktualizowanie tekstur...................................................i...................................................i..........377
Odwzorowywanie tekstur na obiekty geometryczne ...................................................i......................378
Macierze tekstur ...................................................i...................................................i....................379
Prosty przykład dwuwymiarowy ...................................................i....................................................381
Środowisko tekstur ...................................................i...................................................i......................386
Parametry tekstur...................................................i...................................................i.........................387
Podstawowe filtrowanie ...................................................i...................................................i........388
Zawijanie tekstury ...................................................i...................................................i.................390
Tekstury kreskówkowe...................................................i...................................................i..........391
Mipmapy ...................................................i...................................................i...............................395
Obiekty tekstur ...................................................i...................................................i............................399
Obsługa wielu tekstur...................................................i...................................................i............400
Podsumowanie...................................................i...................................................i.............................408
Opisy funkcji ...................................................i...................................................i...............................409
4QFKCđ1FYQTQY[YCPKGVGMUVWT KæIFCNU[
Drugi kolor ...................................................i...................................................i..................................425
Filtrowanie anizotropowe ...................................................i...................................................i............428
Kompresja tekstur...................................................i...................................................i........................431
10
OpenGL. Księga eksperta
Kompresowanie tekstur...................................................i...................................................i.........431
Ładowanie tekstur skompresowanych...................................................i......................................433
Generowanie współrzędnych tekstury ...................................................i............................................433
Odwzorowanie liniowe względem obiektu ...................................................i..............................439
Odwzorowanie linowe względem oka...................................................i......................................440
Odwzorowywanie kuliste ...................................................i...................................................i......441
Odwzorowywanie kubiczne ...................................................i...................................................i..443
Multitekstury ...................................................i...................................................i...............................445
Wielokrotne współrzędne tekstur ...................................................i.............................................447
Przykład multiteksturowania ...................................................i....................................................448
Łączniki tekstur ...................................................i...................................................i...........................452
Podsumowanie...................................................i...................................................i.............................454
Opisy funkcji ...................................................i...................................................i...............................454
4QFKCđ-T[YGKRQYKGTEJPKG J
Powierzchnie wbudowane ...................................................i...................................................i...........464
Ustawienie stanów powierzchni stopnia drugiego...................................................i....................464
Rysowanie powierzchni stopnia drugiego ...................................................i................................466
Modelowanie za pomocą powierzchni stopnia drugiego...................................................i..........470
Krzywe i powierzchnie Béziera...................................................i......................................................472
Reprezentacja parametryczna...................................................i...................................................473
Ewaluatory ...................................................i...................................................i............................475
Powierzchnie NURBS ...................................................i...................................................i.................484
Od krzywych Béziera do krzywych NURBS ...................................................i...........................485
Punkty węzłowe ...................................................i...................................................i....................485
Tworzenie powierzchni NURBS...................................................i..............................................486
Właściwości NURBS ...................................................i...................................................i............486
Definiowanie powierzchni ...................................................i...................................................i....487
Wycinanie ...................................................i...................................................i.............................488
Krzywe NURBS...................................................i...................................................i....................490
Podziały powierzchni ...................................................i...................................................i..................491
Obiekt podziałów ...................................................i...................................................i..................492
Wywołanie zwrotne programu dzielącego ...................................................i...............................493
Określanie danych wierzchołków...................................................i.............................................494
Łączymy wszystko razem...................................................i...................................................i......495
Podsumowanie...................................................i...................................................i.............................499
Opisy funkcji ...................................................i...................................................i...............................500
4QFKCđ9U[UVMQQRQVQMCEJ
ōU[DMKGRTGMC[YCPKGIGQOGVTKK J
Składanie modeli ...................................................i...................................................i.........................528
Kawałki i części ...................................................i...................................................i....................528
Listy wyświetlania...................................................i...................................................i.......................540
Przetwarzanie wsadowe ...................................................i...................................................i........540
Wcześniejsze przetwarzanie wsadowe ...................................................i.....................................541
Zalety i wady list wyświetlania ...................................................i................................................543
Konwersja na listy wyświetlania ...................................................i..............................................543
Mierzenie wydajności...................................................i...................................................i..................544
Lepszy przykład ...................................................i...................................................i....................545
Tablice wierzchołków...................................................i...................................................i..................548
Spis treści
11
Wczytanie geometrii...................................................i...................................................i..............553
Włączenie tablic ...................................................i...................................................i....................554
Gdzie są dane?...................................................i...................................................i.......................554
Rysujemy! ...................................................i...................................................i.............................555
Indeksowane tablice wierzchołków...................................................i..........................................556
Podsumowanie...................................................i...................................................i.............................568
Opisy funkcji ...................................................i...................................................i...............................568
4QFKCđ)TCHKMCKPVGTCMV[YPC J
Selekcja ...................................................i...................................................i.......................................584
Nazywanie obiektów ...................................................i...................................................i.............584
Praca w trybie zaznaczania...................................................i.......................................................586
Bufor zaznaczenia ...................................................i...................................................i.................587
Wybieranie ...................................................i...................................................i............................589
Wybieranie hierarchiczne...................................................i...................................................i......591
Informacje zwrotne ...................................................i...................................................i...............595
Bufor informacji zwrotnych ...................................................i.....................................................595
Dane informacji zwrotnej...................................................i...................................................i......596
Przekazywane znaczniki...................................................i...................................................i........596
Przykład wykorzystania danych z bufora ...................................................i.......................................597
Nazywanie obiektów w informacjach zwrotnych...................................................i.....................597
Krok 1. Zaznaczenie obiektu...................................................i....................................................599
Krok 2. Pobranie informacji zwrotnych dla obiektu...................................................i.................601
Podsumowanie...................................................i...................................................i.............................603
Opisy funkcji ...................................................i...................................................i...............................603
úħè++1RGP).YTÎľP[EJU[UVGOCEJQRGTCE[LP[EJ
4QFKCđ9KIING1RGP).YU[UVGOKG9KPFQYU
Implementacje OpenGL w systemie Windows...................................................i...............................612
Ogólna implementacja OpenGL...................................................i...............................................612
Instalowalny sterownik klienta (ICD) ...................................................i......................................613
Sterownik miniklienta (MCD)...................................................i..................................................613
Ministerownik ...................................................i...................................................i.......................614
Rozszerzony OpenGL ...................................................i...................................................i...........614
Podstawowy rendering w systemie Windows...................................................i.................................616
Kontekst urządzenia GDI ...................................................i...................................................i......616
Formaty pikseli...................................................i...................................................i......................618
Kontekst renderingu OpenGL ...................................................i..................................................625
Łączymy wszystko razem...................................................i...................................................i............626
Tworzenie okna...................................................i...................................................i.....................626
Korzystanie z kontekstu renderingu OpenGL ...................................................i..........................630
Pozostałe komunikaty okna...................................................i...................................................i...633
Palety systemu Windows...................................................i...................................................i.............635
Dopasowanie kolorów...................................................i...................................................i...........635
Arbitraż palety...................................................i...................................................i.......................636
Tworzenie palety dla OpenGL ...................................................i.................................................638
Tworzenie i zwalnianie palety...................................................i..................................................642
OpenGL i czcionki systemowe ...................................................i.......................................................643
Trójwymiarowe czcionki i tekst ...................................................i...............................................644
12
OpenGL. Księga eksperta
Dwuwymiarowe czcionki i tekst ...................................................i..............................................646
Tryb pełnoekranowy...................................................i...................................................i....................648
Tworzenie okna bez paska tytułowego i krawędzi ...................................................i...................649
Utworzenie okna pełnoekranowego ...................................................i.........................................649
Rendering wielowątkowy ...................................................i...................................................i............652
OpenGL i rozszerzenia WGL ...................................................i...................................................i......653
Proste rozszerzenia...................................................i...................................................i................654
Korzystanie ze wskaźników na funkcje...................................................i....................................655
Rozszerzenia WGL..................................................i...................................................i.................656
Podsumowanie...................................................i...................................................i.............................679
Opisy funkcji ...................................................i...................................................i...............................680
4QFKCđ1RGP).YU[UVGOKG/CE15:
Podstawy ...................................................i...................................................i.....................................695
Szkielety aplikacji ...................................................i...................................................i.................696
Korzystanie z interfejsu GLUT ...................................................i................................................696
Wykorzystanie interfejsów AGL i Carbon ...................................................i.....................................696
Formaty pikseli...................................................i...................................................i......................697
Zarządzanie kontekstem ...................................................i...................................................i........697
Podwójne buforowanie...................................................i...................................................i..........699
Pierwszy program AGL...................................................i...................................................i.........699
Korzystanie z czcionek bitmapowych ...................................................i......................................709
Interfejs programistyczny Cocoa ...................................................i....................................................720
Klasa NSOpenGL...................................................i...................................................i..................720
Pierwszy program korzystający z Cocoa...................................................i..................................723
Podsumowanie...................................................i...................................................i.............................730
Opisy funkcji ...................................................i...................................................i...............................731
4QFKCđ).:ō1RGP).Y.KPWMUKG
Podstawy ...................................................i...................................................i.....................................735
Korzystanie z bibliotek OpenGL oraz X11 ...................................................i..............................735
Użycie biblioteki GLUT...................................................i...................................................i........738
OpenGL w systemie Linux...................................................i...................................................i....738
Emulacja OpenGL — Mesa ...................................................i...................................................i..739
Rozszerzenia OpenGL dla X Window System ...................................................i...............................739
Podstawy X Window System ...................................................i...................................................i740
Wybór typu obiektu wyświetlania...................................................i............................................740
Zarządzanie kontekstem OpenGL ...................................................i............................................742
Tworzenie okna OpenGL ...................................................i...................................................i......742
Okna podwójnie buforowane ...................................................i...................................................i743
Wykorzystanie zdobytej wiedzy...................................................i...............................................743
Tworzenie czcionek bitmapowych na potrzeby OpenGL ...................................................i...............751
Renderowanie poza ekranem ...................................................i...................................................i.......761
Mapy pikselowe GLX ...................................................i...................................................i...........761
Użycie obiektów Pbuffer...................................................i...................................................i.......766
Zastosowanie biblioteki Motif...................................................i........................................................772
GLwDrawingArea oraz GLwMDrawingArea — kontrolki OpenGL..........................................772
Funkcje zwrotne ...................................................i...................................................i....................773
Funkcje...................................................i...................................................i..................................775
Wykorzystanie zdobytej wiedzy...................................................i...............................................775
Podsumowanie...................................................i...................................................i.............................784
Opisy funkcji ...................................................i...................................................i...............................785
úħè+++1RGP).0CUVúRPCIGPGTCELC
Spis treści
13
4QFKCđ1DKGMV[DWHQTÎY CTæFCPKGRCOKúEKæITCHKEPæ
Przechowywanie tablic wierzchołków...................................................i............................................797
Generowanie sferycznych chmur cząsteczek ...................................................i...........................797
Aktywacja tablic wierzchołków ...................................................i...............................................798
Generujemy większą ilość sfer...................................................i.................................................799
Zastosowanie obiektów buforowych ...................................................i..............................................800
Zarządzanie obiektem buforowym ...................................................i...........................................802
Renderowanie z użyciem obiektów buforowych...................................................i......................802
Ładowanie danych do obiektów buforowych ...................................................i.................................803
Kopiowanie danych do obiektu buforowego ...................................................i............................803
Bezpośrednie odwzorowanie obiektu buforowego...................................................i...................804
Kilka brakujących elementów ...................................................i........................................................809
Podsumowanie...................................................i...................................................i.............................810
Opisy funkcji ...................................................i...................................................i...............................810
4QFKCđ#PCNKCRTGUđQPKúèōWPKMCPKGDúFP[EJQDNKEGē
Świat bez analizy przesłonięć...................................................i.........................................................820
Bryły ograniczające ...................................................i...................................................i.....................823
Analiza przesłonięć i obiekt analizy ...................................................i...............................................827
Podsumowanie...................................................i...................................................i.............................829
Opisy funkcji ...................................................i...................................................i...............................830
4QFKCđ6GMUVWT[IđúDKQTCEKGPKGJ
Punkt widzenia światła ...................................................i...................................................i................836
Dopasowanie sceny do okna ...................................................i...................................................i.836
Unikamy efektów specjalnych ...................................................i.................................................837
Nowy rodzaj tekstury...................................................i...................................................i...................839
Dlaczego cienie rysujemy na początku? ...................................................i.........................................840
I stała się światłość ...................................................i...................................................i......................841
Rzutowanie mapy cieni. Etap pierwszy — przyczyna...................................................i..............842
Rzutowanie mapy cieni. Etap drugi — sposób...................................................i.........................843
Porównanie cieni...................................................i...................................................i...................845
Dwa przebiegi z trzech — nie najgorszy wynik ...................................................i.............................851
Kilka słów o offsecie wielokątów...................................................i...................................................851
Podsumowanie...................................................i...................................................i.............................852
Opisy funkcji ...................................................i...................................................i...............................853
4QFKCđ2QVQMRTQITCOQYCP[J
Zacznijmy od klasyki...................................................i...................................................i...................858
Statyczna obróbka wierzchołków...................................................i.............................................859
Statyczna obróbka fragmentów ...................................................i................................................861
Dochodzimy do nowości ...................................................i...................................................i.............862
Programowane shadery wierzchołków ...................................................i.....................................863
Łączenie z klasycznym potokiem...................................................i.............................................865
Programowane shadery fragmentów ...................................................i........................................866
14
OpenGL. Księga eksperta
Wprowadzenie do shaderów...................................................i...................................................i........867
Rozszerzenia niskopoziomowe........................i...................................................i.........................867
Rozszerzenia wysokopoziomowe...................................................i.............................................869
Podsumowanie...................................................i...................................................i.............................870
4QFKCđ0KUMQRQKQOQYGRTGVYCTCPKGYKGTEJQđMÎY
KHTCIOGPVÎY J
Zastosowanie shaderów niskopoziomowych ...................................................i..................................874
Tworzenie i wiązanie obiektów shaderów...................................................i................................874
Ładowanie shaderów...................................................i...................................................i.............874
Usuwanie shaderów...................................................i...................................................i...............876
Konfiguracja rozszerzeń...................................................i...................................................i........876
Zestawy instrukcji ...................................................i...................................................i.......................877
Wspólne instrukcje...................................................i...................................................i................878
Instrukcje specyficzne dla shaderów wierzchołków...................................................i.................878
Instrukcje specyficzne dla shaderów fragmentów ...................................................i....................878
Typy zmiennych ...................................................i...................................................i..........................881
Wartości tymczasowe...................................................i...................................................i............881
Parametry ...................................................i...................................................i..............................882
Atrybuty ...................................................i...................................................i................................884
Wyjście...................................................i...................................................i..................................886
Aliasy ...................................................i...................................................i....................................888
Adresowanie...................................................i...................................................i..........................888
Modyfikatory wejścia i wyjścia...................................................i......................................................888
Zanegowanie ...................................................i...................................................i.........................889
Zmiana kolejności składowych ...................................................i................................................889
Maska zapisu...................................................i...................................................i.........................889
Przycinanie wyniku ...................................................i...................................................i...............889
Kontrola zużycia zasobów...................................................i...................................................i...........890
Ograniczenia składniowe............................i...................................................i..............................890
Ograniczenia wbudowane ...................................................i...................................................i.....892
Inne zapytania ...................................................i...................................................i.......................893
Opcje shaderów ...................................................i...................................................i...........................894
Opcja niezmienności pozycji w shaderach wierzchołków...................................................i........894
Opcje mgły w shaderach fragmentów ...................................................i......................................894
Opcja sugerowanego poziomu precyzji...................................................i....................................894
Podsumowanie...................................................i...................................................i.............................895
Opisy funkcji ...................................................i...................................................i...............................895
4QFKCđ9[UQMQRQKQOQYGRTGVYCTCPKGYKGTEJQđMÎY
KHTCIOGPVÎY J
Zarządzanie shaderami wysokopoziomowymi ........................
Pobierz darmowy fragment (pdf)
Gdzie kupić całą publikację:
Opinie na temat publikacji:
Inne popularne pozycje z tej kategorii:
Czytaj również:
Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką :