MENU

Shadery. Zaawansowane programowanie w GLSL

(eBook)
4.00  [ 4 oceny ]
 Dodaj recenzję
Rozwiń szczegóły »
  • Druk: Warszawa, 2015

  • Autor: Karol Sobiesiak, Piotr Sydow

  • Wydawca: Wydawnictwo Naukowe PWN

  • Formaty:
    mobi
    ePub
    (Watermark)
    Watermark
    Znak wodny czyli Watermark to zaszyfrowana informacja o użytkowniku, który zakupił produkt. Dzięki temu łatwo jest zidentyfikować użytkownika, który rozpowszechnił produkt w sposób niezgodny z prawem. Ten rodzaj zabezpieczenia jest zdecydowanie najbardziej przyjazny dla użytkownika, ponieważ aby otworzyć książkę zabezpieczoną Watermarkiem nie jest potrzebne konto Adobe ID oraz autoryzacja urządzenia.

Dostępne formaty i edycje
Rok wydania
Cena
Cena katalogowa: 69,00 zł
Najniższa cena z 30 dni: 34,50 zł
Cena produktu

Cena katalogowa – rynkowa cena produktu, często jest drukowana przez wydawcę na książce.

Najniższa cena z 30 dni – najniższa cena sprzedaży produktu w księgarni z ostatnich 30 dni, obowiązująca przed zmianą ceny.

Wszystkie ceny, łącznie z ceną sprzedaży, zawierają podatek VAT.

41,40
Dodaj do schowka
Dostępność: online po opłaceniu
Produkt elektroniczny Plik do pobrania po realizacji zamówienia

Shadery. Zaawansowane programowanie w GLSL

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

  • Sposób dostarczenia produktu elektronicznego
    Produkty elektroniczne takie jak Ebooki czy Audiobooki są udostępniane online po opłaceniu zamówienia kartą lub przelewem na stronie Twoje konto > Biblioteka.
    Pliki można pobrać zazwyczaj w ciągu kilku-kilkunastu minut po uzyskaniu poprawnej autoryzacji płatności, choć w przypadku niektórych publikacji elektronicznych czas oczekiwania może być nieco dłuższy.
    Sprzedaż terytorialna towarów elektronicznych jest regulowana wyłącznie ograniczeniami terytorialnymi licencji konkretnych produktów.
  • Ważne informacje techniczne
    Minimalne wymagania sprzętowe:
    procesor: architektura x86 1GHz lub odpowiedniki w pozostałych architekturach
    Pamięć operacyjna: 512MB
    Monitor i karta graficzna: zgodny ze standardem XGA, minimalna rozdzielczość 1024x768 16bit
    Dysk twardy: dowolny obsługujący system operacyjny z minimalnie 100MB wolnego miejsca
    Mysz lub inny manipulator + klawiatura
    Karta sieciowa/modem: umożliwiająca dostęp do sieci Internet z prędkością 512kb/s
    Minimalne wymagania oprogramowania:
    System Operacyjny: System MS Windows 95 i wyżej, Linux z X.ORG, MacOS 9 lub wyżej, najnowsze systemy mobilne: Android, iPhone, SymbianOS, Windows Mobile
    Przeglądarka internetowa: Internet Explorer 7 lub wyżej, Opera 9 i wyżej, FireFox 2 i wyżej, Chrome 1.0 i wyżej, Safari 5
    Przeglądarka z obsługą ciasteczek i włączoną obsługą JavaScript
    Zalecany plugin Flash Player w wersji 10.0 lub wyżej.
    Informacja o formatach plików:
    • PDF - format polecany do czytania na laptopach oraz komputerach stacjonarnych.
    • EPUB - format pliku, który umożliwia czytanie książek elektronicznych na urządzeniach z mniejszymi ekranami (np. e-czytnik lub smartfon), dając możliwość dopasowania tekstu do wielkości urządzenia i preferencji użytkownika.
    • MOBI - format zapisu firmy Mobipocket, który można pobrać na dowolne urządzenie elektroniczne (np.e-czytnik Kindle) z zainstalowanym programem (np. MobiPocket Reader) pozwalającym czytać pliki MOBI.
    • Audiobooki w formacie MP3 - format pliku, przeznaczony do odsłuchu nagrań audio.
    Rodzaje zabezpieczeń plików:
    • Watermark - (znak wodny) to zaszyfrowana informacja o użytkowniku, który zakupił produkt. Dzięki temu łatwo jest zidentyfikować użytkownika, który rozpowszechnił produkt w sposób niezgodny z prawem. Ten rodzaj zabezpieczenia jest zdecydowanie bardziej przyjazny dla użytkownika, ponieważ aby otworzyć książkę zabezpieczoną Watermarkiem nie jest potrzebne konto Adobe ID oraz autoryzacja urządzenia.
    • Brak zabezpieczenia - część oferowanych w naszym sklepie plików nie posiada zabezpieczeń. Zazwyczaj tego typu pliki można pobierać ograniczoną ilość razy, określaną przez dostawcę publikacji elektronicznych. W przypadku zbyt dużej ilości pobrań plików na stronie WWW pojawia się stosowny komunikat.
Rozdział 1. Wstęp       9

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

Rozdział 2. Zrozumieć GPU           13

2.1. Co to jest Shader?       13
2.2. Architektura GPU      14
2.2.1. GPU versus CPU         15
2.2.2. Jednostki wykonawcze GPU      16
2.2.3. Przełączanie kontekstu i unikanie opóźnień   19
2.2.4. Przetwarzanie rozgałęzień         20
2.2.5. Model pamięci           22

Rozdział 3. Potok renderujący OpenGL       29

3.1. Najważniejsze etapy potoku grafi cznego        29
3.1.1. Przetwarzanie geometrii     29
3.1.2. Rasteryzacja       30
3.1.3. Przetwarzanie fragmentów         31
3.1.4. Postprocess fragmentów        32
3.2. Wprowadzenie do programowalnego potoku    32
3.2.1. Shader wierzchołków          33
3.2.2. Teselacja         34
3.2.3. Shader geometrii         37
3.2.4. Shader fragmentów     38
3.3. Kompilacja       39
3.3.1. Proces kompilacji, wiązania i linkowania        39
3.3.2. Wielokrotne wiązanie shaderów tego samego typu   42
3.3.3. Rozłączne programy       43
3.3.4. Status kompilacji         46

Rozdział 4. Podstawy programowania         49

4.1. Język programowania shaderów GLSL     49
4.2. Profile        50
4.3. Interpretacja schematów konstrukcji programistycznych     51
4.4. Nazwy identyfi katorów obiektów        52
4.5. Preprocesor          52
4.5.1. Kontrola wersji shadera (#version)         53
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)         58
4.5.4. Wspomaganie warunkowej kompilacji (#error)  59
4.5.5. Wspomaganie diagnostyki kodu źródłowego (#line)       59
4.5.6. Sterowanie działaniem kompilatora (#pragma)     60
4.5.7. Zarządzanie zestawem rozszerzeń języka GLSL (#extension)      61
4.6. Typy danych           64
4.6.1. Bazowe typy numeryczne – skalary      65
4.6.2. Pochodne typy numeryczne – wektory    70
4.6.3. Pochodne typy numeryczne – macierze     76
4.6.4. Typy uchwytów        83
4.6.5. Typ subroutine        83
4.6.6. Struktury      84
4.6.7. Tablice        86
4.7. Zmienne            92
4.7.1. Zmienne wewnętrzne          93
4.7.2. Zmienne interfejsu       94
4.7.3. Blok interfejsu        96
4.7.4. Deklaracja obiektów użytkownika w modułach shadera     98
4.8. Zakres zmiennych       99
4.9. Operatory          101
4.10. Instrukcje kontroli przepływu     102
4.11. Funkcje            104
4.11.1. Deklaracja funkcji       105
4.11.2. Definicja funkcji      106
4.11.3. Przeładowywanie funkcji      106
4.11.4. Parametry funkcji i wartości zwracane        107

Rozdział 5. Dane         112

5.1. Generyczny magazyn danych (obiekt bufora)     113
5.1.1. Tworzenie buforów       114
5.1.2. Wiązanie buforów      114
5.1.3. Zarządzanie stanem obiektów buforowych      117
5.1.4. Swobodny dostęp do danych bufora    122
5.1.5. Kopiowanie buforów          124
5.1.6. Odczytywanie zawartości buforów      124
5.1.7. Usuwanie buforów       125
5.2. Zmienne oraz bloki uniform       125
5.2.1. Domyślny blok uniform        126
5.2.2. Nazwany blok uniform          133
5.3. Zmienne oraz bloki buffer      147
5.3.1. Blok buforowy        148
5.3.2. Kontrola dostępu do pamięci     151
5.3.3. Operacje atomowe na zmiennych buforowych     155
5.3.4. Organizacja danych w bloku    157
5.3.5. Własności stanu zmiennych oraz bloków buforowych      158
5.3.6. Pozyskiwanie lokacji zmiennych buforowych oraz aktualizacja danych 	159
5.3.7. Wiązanie bloku buforowego    159
5.4. Sformatowany magazyn danych (obiekt tekstury)   160
5.4.1. Reprezentacja tekstur w OpenGL         161
5.4.2. Struktura magazynu danych       161
5.4.3. Tworzenie oraz usuwanie tekstur         164
5.4.4. Wiązanie tekstur         165
5.4.5. Alokacja oraz aktualizacja magazynu danych dla tekstur  169
5.4.6. Tekstura buforowa       171
5.5. Tekstury w shaderach        173
5.5.1. Mechanizm teksturowania       174
5.5.2. Zmienne sampler         177
5.5.3. Podstawowa metoda dostępu do złożonych typów tekstur   181
5.5.4. Funkcje wbudowane odpytywania tekstur   189
5.5.5. Zaawansowane funkcje wbudowane dostępu do danych tekstury  190
5.6. Obrazy w shaderach           196
5.6.1. Zmienne image           197
5.6.2. Podstawowe operacje na obrazie         202
5.6.3. Operacje atomowe na obrazie        204
5.7. Liczniki atomowe           207
5.7.1. Tworzenie liczników          207
5.7.2. Własności stanu liczników atomowych     208
5.7.3. Wiązanie buforów z licznikami     208
5.7.4. Operacje atomowe       209
5.8. Dodatkowe metody synchronizacji w dostępie do danych   210
5.8.1. Synchronizacja dostępu w shaderach    210
5.8.2. Synchronizacja dostępu w API     212

Rozdział 6. Programowanie potoku renderującego   213

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

Rozdział 7. Mechanizmy uzupełniające       284

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

Rozdział 8. Shader obliczeniowy          303

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

Dodatek            313

Dodatek A        313
Dodatek B        314
Dodatek C         315
Dodatek D         317
Dodatek E        326
Dodatek F        335

Słownik pojęć         341
Bibliografia           343
NAZWA I FORMAT
OPIS
ROZMIAR

Przeczytaj fragment

NAZWA I FORMAT
OPIS
ROZMIAR
(epub)
Brak informacji
(mobi)
Brak informacji

Inni Klienci oglądali również

10,80 zł
12,00 zł

Disorder i ja

"Disorder i ja" to opowieść o dwóch przyjacielach, outsiderach – są młodzi, weseli, zbuntowani. Nie potrafią się odnaleźć w rzeczywistości początku lat 90. Miejsce sklepów Społem zajmują Euro-Shopy, w tle denominacja złot&...
56,40 zł
94,00 zł

Programowanie gier

Największym wyzwaniem dla wielu programistów jest ukończenie pracy nad grą. Większość projektów nie dobiega końca, gdyż ich autorzy są przytłoczeni złożonością i poziomem skomplikowania kodu. Książka Programowanie gier. Wzorce rozwi...
102,94 zł
135,45 zł

Microsoft SQL Server 2008 od środka Programowanie w języku T-SQL

Opanuj zaawansowane techniki programowania w języku T-SQL i implementuj niezawodne rozwiązaniaPoznaj efektywne konstrukcje programistyczne i tajniki T-SQL - języka programowania baz danych wbudowanego w SQL Server. Ekspert w dziedzinie T-SQL Itzi...
59,20 zł
74,00 zł

Środowiska programowania robotów

To pierwsza książka przygotowana przez wydawnictwo naukowe PWN z cyklu ROBOTYKA, wprowadzająca Czytelnika w arkana nowoczesnej wiedzy dotyczącej jednej z najbardziej rozwijających się technologii XXI wieku. Monografia zatytułowana Środowiska...
20,81 zł
21,90 zł

Angielski Gramatyka. Praktyczne repetytorium dla początkujących i średnio zaawansowanych

Angielski Gramatyka (Książka) Praktyczne repetytorium dla początkujących i średnio zaawansowanych Angielski Gramatyka - praktyczne repetytorium - dla osób początkujących i średnio zaawansowanych, ...
68,39 zł
89,99 zł

Programowanie Internetu rzeczy

Ten praktyczny przewodnik uczy, jak programować Internet rzeczy (Internet of Things – IoT). Autor i edukator Andy King dzieli złożone problemy programistyczne na instrukcje krok po kroku i pokazuje, jak zaprojektować i zbudować własny kompleksowy...
41,40 zł
69,00 zł

JAVA. Programowanie praktyczne od podstaw

Książka omawia konstrukcje oraz wybrane narzędzia języka Java przydatne we wszystkich rodzajach praktycznego programowania. Przeznaczona jest zarówno dla całkowicie początkujących programistów, jak i tych, którzy pragną rozwijać sw...
20,28 zł
26,00 zł

Iść czy jechać? Poziom średni i zaawansowany

Czasowniki ruchu w nauczaniu języka polskiego jako obcego stanowią duże wyzwanie metodyczne dla uczących, bo z jednej strony są bardzo trudne, z drugiej należą jednak do kanonu leksykalnego i gramatycznego, jako takie, powinny znaleźć się w programie n...
81,75 zł
109,00 zł

Interpretacja EKG. Kurs zaawansowany

Pierwsza po wielu latach książka na polskim rynku, która w ujęciu bardzo szczegółowym i specjalistycznym jest kompleksowym zbiorem informacji na temat zasad analizy EKG, nieprawidłowości krzywej EKG i schorzeń rozpoznawanych na podstawie ...

Recenzje

Nikt nie dodał jeszcze recenzji. Bądź pierwszy!