reklama - zainteresowany?

Shadery. Zaawansowane programowanie w GLSL - Helion

Shadery. Zaawansowane programowanie w GLSL
ebook
Autor: Karol Sobiesiak, Piotr Sydow
ISBN: 978-8-3011-8397-4
stron: 344, Format: ebook
Data wydania: 2015-10-23
Księgarnia: Helion

Cena książki: 47,20 zł (poprzednio: 58,27 zł)
Oszczędzasz: 19% (-11,07 zł)

Dodaj do koszyka Shadery. Zaawansowane programowanie w GLSL

Tagi: OpenGL - Programowanie | Programowanie



Programowanie procesorów graficznych (GPU) staje się coraz popularniejsze. Dzieje się tak przede wszystkim z powodu dynamicznie rozwijającego się rynku gier i zapotrzebowania na deweloperów w tej dziedzinie, ale również z powodu wysokich możliwości obliczeniowych dostarczanych przez te układy.
Shadery (programy wykonywane przez GPU) w przeciągu kilku ostatnich lat znacząco się rozwinęły. Aktualnie w OpenGL 4.5 dostępnych jest ich sześć, co jest znacznym wzrostem w stosunku do dwóch, w nadal wszechobecnym, choć archaicznym już OpenGL 2.1. Są one wykorzystywane głównie do zadań związanych z odwzorowywaniem fizycznych własności świata w celu wyświetlania realistycznej grafiki trójwymiarowej, ale także coraz częściej do rozwiązywania bardziej ogólnych problemów natury matematycznej i algorytmicznej.
Książka ta zawiera wyczerpujący opis języka programowania shaderów GLSL w wersji 4.50. Stanowi ona niezbędnik dla każdego kto zamierza szybko odnaleźć się w nowoczesnej grafice trójwymiarowej.
Dowiesz siÄ™
· Czym sÄ… shadery · Jak wyglÄ…da architektura współczesnego GPU i jakie ma ona znaczenie od strony programistycznej
· Jak programować potok renderujÄ…cy
· Na czym polega i jak dziaÅ‚a teselacja
· Czym jest i jak programuje siÄ™ shader obliczeniowy (ang. compute shader)
Powinieneś znać
· API OpenGL w stopniu przynajmniej podstawowym
· Matematyczne podstawy grafiki trójwymiarowej

Dodaj do koszyka Shadery. Zaawansowane programowanie w GLSL

 

Osoby które kupowały "Shadery. Zaawansowane programowanie w GLSL", wybierały także:

  • OpenGL. Kurs video. Wprowadzenie do programowania grafiki komputerowej
  • OpenGL. Podstawy programowania grafiki 3D
  • OpenGL. Receptury dla programisty
  • OpenGL. KsiÄ™ga eksperta. Wydanie VII
  • OpenGL i GLSL (nie taki krótki kurs) Część I

Dodaj do koszyka Shadery. Zaawansowane programowanie w GLSL

Spis treści

Shadery. Zaawansowane programowanie w GLSL eBook -- spis treści

Rozdział 1. Wstęp

1.1. Do kogo jest skierowana ta książka?
1.2. Przydatne narzędzia

Rozdział 2. Zrozumieć GPU

2.1. Co to jest Shader?
2.2. Architektura GPU
2.2.1. GPU versus CPU
2.2.2. Jednostki wykonawcze GPU
2.2.3. PrzeÅ‚Ä…czanie kontekstu i unikanie opóźnieÅ„
2.2.4. Przetwarzanie rozgałęzień
2.2.5. Model pamięci

Rozdział 3. Potok renderujący OpenGL

3.1. Najważniejsze etapy potoku grafi cznego
3.1.1. Przetwarzanie geometrii
3.1.2. Rasteryzacja
3.1.3. Przetwarzanie fragmentów
3.1.4. Postprocess fragmentów
3.2. Wprowadzenie do programowalnego potoku
3.2.1. Shader wierzchoÅ‚ków
3.2.2. Teselacja
3.2.3. Shader geometrii
3.2.4. Shader fragmentów
3.3. Kompilacja
3.3.1. Proces kompilacji, wiÄ…zania i linkowania
3.3.2. Wielokrotne wiÄ…zanie shaderów tego samego typu
3.3.3. Rozłączne programy
3.3.4. Status kompilacji

Rozdział 4. Podstawy programowania

4.1. JÄ™zyk programowania shaderów GLSL
4.2. Profile
4.3. Interpretacja schematów konstrukcji programistycznych
4.4. Nazwy identyfi katorów obiektów
4.5. Preprocesor
4.5.1. Kontrola wersji shadera (#version)
4.5.2. Defi niowanie symboli oraz makrodefi nicji (#defi ne, #undef) 54 4.5.3. Kontrola warunkowej kompilacji (#if, #ifdef, #ifndef, #elif, #else, #endif)
4.5.4. Wspomaganie warunkowej kompilacji (#error) 59 4.5.5. Wspomaganie diagnostyki kodu źródÅ‚owego (#line)
4.5.6. Sterowanie działaniem kompilatora (#pragma)
4.5.7. Zarządzanie zestawem rozszerzeń języka GLSL (#extension)
4.6. Typy danych
4.6.1. Bazowe typy numeryczne – skalary
4.6.2. Pochodne typy numeryczne – wektory
4.6.3. Pochodne typy numeryczne – macierze
4.6.4. Typy uchwytów
4.6.5. Typ subroutine
4.6.6. Struktury
4.6.7. Tablice
4.7. Zmienne
4.7.1. Zmienne wewnętrzne
4.7.2. Zmienne interfejsu
4.7.3. Blok interfejsu
4.7.4. Deklaracja obiektów użytkownika w moduÅ‚ach shadera
4.8. Zakres zmiennych
4.9. Operatory
4.10. Instrukcje kontroli przepływu
4.11. Funkcje
4.11.1. Deklaracja funkcji
4.11.2. Definicja funkcji
4.11.3. Przeładowywanie funkcji
4.11.4. Parametry funkcji i wartości zwracane

Rozdział 5. Dane

5.1. Generyczny magazyn danych (obiekt bufora)
5.1.1. Tworzenie buforów
5.1.2. WiÄ…zanie buforów
5.1.3. ZarzÄ…dzanie stanem obiektów buforowych
5.1.4. Swobodny dostęp do danych bufora
5.1.5. Kopiowanie buforów
5.1.6. Odczytywanie zawartoÅ›ci buforów
5.1.7. Usuwanie buforów
5.2. Zmienne oraz bloki uniform
5.2.1. Domyślny blok uniform
5.2.2. Nazwany blok uniform
5.3. Zmienne oraz bloki buffer
5.3.1. Blok buforowy
5.3.2. Kontrola dostępu do pamięci
5.3.3. Operacje atomowe na zmiennych buforowych
5.3.4. Organizacja danych w bloku
5.3.5. WÅ‚asnoÅ›ci stanu zmiennych oraz bloków buforowych
5.3.6. Pozyskiwanie lokacji zmiennych buforowych oraz aktualizacja danych 159 5.3.7. WiÄ…zanie bloku buforowego
5.4. Sformatowany magazyn danych (obiekt tekstury)
5.4.1. Reprezentacja tekstur w OpenGL
5.4.2. Struktura magazynu danych
5.4.3. Tworzenie oraz usuwanie tekstur
5.4.4. WiÄ…zanie tekstur
5.4.5. Alokacja oraz aktualizacja magazynu danych dla tekstur 169 5.4.6. Tekstura buforowa
5.5. Tekstury w shaderach
5.5.1. Mechanizm teksturowania
5.5.2. Zmienne sampler
5.5.3. Podstawowa metoda dostÄ™pu do zÅ‚ożonych typów tekstur
5.5.4. Funkcje wbudowane odpytywania tekstur
5.5.5. Zaawansowane funkcje wbudowane dostępu do danych tekstury 190 5.6. Obrazy w shaderach
5.6.1. Zmienne image
5.6.2. Podstawowe operacje na obrazie
5.6.3. Operacje atomowe na obrazie
5.7. Liczniki atomowe
5.7.1. Tworzenie liczników
5.7.2. WÅ‚asnoÅ›ci stanu liczników atomowych
5.7.3. WiÄ…zanie buforów z licznikami
5.7.4. Operacje atomowe
5.8. Dodatkowe metody synchronizacji w dostępie do danych
5.8.1. Synchronizacja dostępu w shaderach
5.8.2. Synchronizacja dostępu w API

Rozdział 6. Programowanie potoku renderującego

6.1. Przykładowy program zawierający wszystkie podstawowe shadery
6.2. Ogólny obraz komunikacji miÄ™dzyetapowej
6.3. Przekazywanie danych w potoku
6.3.1. Atrybuty shadera wierzchoÅ‚ków
6.3.2. Interfejsy in/out między etapami
6.3.3. Lokacje przy przekazywaniu danych między shaderami
6.3.4. Pełne a częściowe dopasowanie
6.3.5. Komponenty w lokacjach
6.3.6. Sposoby interpolacji przy przekazywaniu danych do shadera fragmentów
6.3.7. Wbudowany blok gl_PerVertex
6.4. Przebieg i własności teselacji
6.4.1. Deklaracja płatu i jego przekształcenie na właściwy prymityw poddawany teselacji
6.4.2. Stopnie teselacji
6.4.3. Opcje rozstawu
6.4.4. Teselacja trójkÄ…ta
6.4.5. Teselacja czworokÄ…ta
6.4.6. Teselacja izolinii
6.5. Programowanie shadera wierzchoÅ‚ków
6.5.1. Optymalizacja liczby wywołań
6.5.2. Zmienne wbudowane
6.6. Programowanie shadera kontroli teselacji
6.6.1. Przepływ danych i deklaracja liczby wywołań
6.6.2. WspóÅ‚bieżny dostÄ™p do danych wyjÅ›ciowych
6.6.3. Zmienne wbudowane
6.7. Programowanie shadera ewaluacji teselacji
6.7.1. Przepływ danych
6.7.2. Konfi guracja prymitywów za pomocÄ… wejÅ›ciowego kwalifi katora layout
6.7.3. Zmienne wbudowane
6.8. Programowanie shadera geometrii
6.8.1. Interfejs wejścia i deklaracja liczby wywołań shadera
6.8.2. Interfejs wyjÅ›cia – deklaracja prymitywu i emisja wierzchoÅ‚ków
6.8.3. Dedykowane prymitywy przylegajÄ…ce
6.8.4. Zmienne wbudowane
6.9. Programowanie shadera fragmentów
6.9.1. Renderowanie do bufora ramki
6.9.2. Odrzucanie fragmentów
6.9.3. Modyfikacja wspóÅ‚rzÄ™dnych fragmentów
6.9.4. Wczesny test fragmentów i modyfi kacja buforu gÅ‚Ä™bokoÅ›ci
6.9.5. Funkcje wbudowane i wywołania wspomagające
6.9.6. Zmienne wbudowane

Rozdział 7. Mechanizmy uzupełniające

7.1. Renderowanie do tekstur
7.1.1. Przygotowanie aplikacji
7.1.2. Renderowanie do wielu tekstur jako osobnych zaÅ‚Ä…czników koloru
7.1.3. Renderowanie do tekstur złożonych z wykorzystaniem shadera geometrii
7.2. Mechanizm Shader Subroutine
7.2.1. Funkcje wywoływane statycznie i dynamicznie
7.2.2. Elementy składniowe mechanizmu
7.2.3. Przykładowa implementacja
7.2.4. Konfigurowanie powiązań zmiennych z funkcjami subroutine

Rozdział 8. Shader obliczeniowy

8.1. Wprowadzenie
8.1.1. Kompilacja i użycie shadera obliczeniowego
8.2. Wywołania shadera obliczeniowego i grupy wykonawcze
8.2.1. Identyfikacja wywołania
8.2.2. Ograniczenia liczby wywołań
8.3. Charakterystyka przetwarzania
8.3.1. Przetwarzanie lokalnych grup roboczych
8.3.2. Pamięć wspóÅ‚dzielona – kwalifikator shared
8.3.3. Synchronizacja

Dodatek

Dodatek A
Dodatek B
Dodatek C
Dodatek D
Dodatek E
Dodatek F

Słownik pojęć
Bibliografia

Dodaj do koszyka Shadery. Zaawansowane programowanie w GLSL

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.