OpenGL i GLSL (nie taki krótki kurs) Część III
Książka OpenGL i GLSL (nie taki krótki kurs) to prawdziwa gratka dla każdego, kto chce odnaleźć się w nowoczesnej grafice komputerowej. Kurs opisany w książce przedstawia trzy aplikacje wyświetlające grafikę trójwymiarową. Do kolejnych wariantów każdej aplikacji są dodawane nowe efekty, stanowiąc przykłady zastosowań kolejnych możliwości standardu OpenGL i języka GLSL.
Dla ułatwienia korzystania z książki została ona podzielona na trzy części. W części trzeciej jest więcej informacji na temat graficznego interfejsu użytkownika i przykład ogólnego programowania procesora graficznego (GPGPU): zaimplementowany w GLSL-u algorytm zagęszczania siatek użyty w trzeciej aplikacji do otrzymania gładkiej powierzchni o skomplikowanym kształcie. Dzięki niej czytelnik dowie się również, jak:
• oprogramować wihajstry realizujące graficzny interfejs użytkownika,
• napisać szader obliczeniowy realizujący zagęszczanie siatek,
• narysować zagęszczoną siatkę,
• odkształcać siatkę za pomocą łańcucha kinematycznego i szadera obliczeniowego,
• za pomocą graficznego interfejsu użytkownika umożliwić tworzenie animacji metodą klatek kluczowych.
26. Graficzny interfejs użytkownika w XWindow 531
26.1. Struktury danych i procedury podstawowe 532
26.2. Procedury przekazujące komunikaty 537
26.3. Kodowanie kolorów w systemie XWindow 542
26.4. Przykłady wihajstrów 544
27. Zagęszczanie siatek 551
27.1. Definicja i warunki poprawności siatki 551
27.2. Reprezentacja siatki w pamięci RAM CPU 553
27.3. Reprezentacja siatki w pamięci GPU 554
27.4. Podwajanie i uśrednianie siatki 559
27.5. Obliczanie sum prefiksowych 561
27.6. Zmienne szadera zagęszczania siatek 565
27.7. Implementacja podwajania 568
27.8. Implementacja uśredniania 583
27.9. Procedura zagęszczania siatki 592
27.10. Przygotowanie i likwidacja programu zagęszczania siatek 593
27.11. Ćwiczenia 594
28. Trzecia aplikacja 595
28.1. Model dłoni 595
28.2. Rysowanie siatki 596
28.3. Okna trzeciej aplikacji 604
28.4. Obsługa przekształceń 617
28.5. Wyświetlane obiekty 619
28.6. Ćwiczenia 621
29. Aplikacja trzecia A 623
29.1. Obliczanie wektorów normalnych 623
29.2. Rysowanie siatki 629
29.3. Zmiany w aplikacji 634
29.4. Ćwiczenia 636
30. Aplikacja trzecia B 637
30.1. Łańcuch kinematyczny 637
30.2. Rysowanie sceny 646
30.3. Interfejs użytkownika 646
30.4. Pozostałe zmiany w aplikacji 648
30.5. Ćwiczenia 650
31. Aplikacja trzecia C 651
31.1. Łańcuch kinematyczny 651
31.2. Szadery i procedury rysowania sceny 660
31.3. Pozostałe zmiany w aplikacji 669
31.4. Ćwiczenia 670
31.5. Uzupełnienia 671
32. Aplikacja trzecia D 673
32.1. Działanie interfejsu użytkownika 673
32.2. Wihajster osi czasu 675
32.3. Procedury obsługi animacji 685
32.4. Menu trzeciego podokna 694
32.5. Pozostałe zmiany w aplikacji 698
32.6. *Ćwiczenia 698
A. Jeszcze trochę algebry z geometrią 699
A.1. Załamanie światła 699
A.2. Konstrukcja obrotu do ustalonego położenia 700
A.3. Rozkładanie przekształceń anicznych 702
A.4. Kwaterniony i obroty 706
B. Krzywe i powierzchnie B-sklejane 717
B.1. Określenie funkcji, krzywych i płatów B-sklejanych 717
B.2. Algorytmy de Boora 719
B.3. B-sklejane krzywe interpolacyjne 725
B.4. Sklejane krzywe kwaternionowe 731
C. Światło, kolory, barwy i ich współrzędne 735
C.1. Radiometria i fotometria 735
C.2. Widzenie trójbarwne 740
C.3. Diagram CIE 742
C.4. Układy współrzędnych RGB 745
C.5. Układy z luminancją i chrominancją 747
C.6. Układy z subtraktywnym mieszaniem barw 748
C.7. Układy HSV i HSL 749
D. Dżojstik w aplikacjach XWindow 751
D.1. Aktywne sprawdzanie 751
D.2. Komunikacja za pośrednictwem systemu XWindow 756
E. Rzutowanie nieliniowe 763
E.1. Panorama punktowa 763
E.2. Panorama linearna 765
E.3. Rzutowanie na sferę 766
E.4. Rozdrabnianie w rzutowaniu nieliniowym 767
F. Słowniki 775
F.1. Słownik TLS-ów i CzLS-ów 775
F.2. Słownik wyrazów wieloznacznych 779
Skorowidz 783