0 POZYCJI
KOSZYK PUSTY
Pobierz fragment
Wybierz format pliku:
Pobierz

Shadery. Zaawansowane programowanie w GLSL

(eBook)
0.00  (0 ocen)
 Dodaj recenzję
Rozwiń szczegóły
  • Druk: Warszawa, 2015

  • Wydanie/Copyright: wyd. 1

  • Autor: Karol Sobiesiak, Piotr Sydow

  • Wydawca: Wydawnictwo Naukowe PWN

  • Formaty:
    ePub mobi (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.

Zwiń szczegóły
Cena katalogowa: 69,00 zł
Najniższa cena z 30 dni: 48,30 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.

48,30 zł
Dostępność:
online po opłaceniu
Dodaj do schowka

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

  • Kategorie:
    1. Ebooki i Audiobooki »
    2. Informatyka
  • Język wydania: polski
  • ISBN: 978-83-01-18397-4
  • ISBN druku: 978-83-01-18199-4
  • Liczba stron: 344
  • Sposób dostarczenia produktu elektronicznego
    Produkty elektroniczne takie jak Ebooki czy Audiobooki są udostępniane online po uprzednim opłaceniu (PayU, BLIK) 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.
    • 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.
    Więcej informacji o publikacjach elektronicznych
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

Inni Klienci oglądali również

34,20 zł 38,00 zł
Do koszyka

JAVA. Programowanie obiektowe w praktyce

W podręczniku przedstawiono paradygmaty mające wpływ na sposób konstrukcji kodu źródłowego, czyli model zorientowany na procesy oraz kod działający na danych. Szczegółowo opisano mechanizmy zapewniające implementację modelu obiekto...
55,30 zł 79,00 zł
Do koszyka

JAVA. Uniwersalne techniki programowania

Książka przedstawia sposoby i techniki programowania użyteczne we wszelkich zastosowaniach języka Java. W publikacji akcentowany jest kontekst praktyczny: jak i do czego poszczególnych narzędzi językowych używać. Specjalna uwaga zwracana jest na...
27,30 zł 39,00 zł
Do koszyka

Elixir. Aby programowanie znów było przyjemnością (ebook)

Ebook Elixir. Aby programowanie znów było przyjemnością autorstwa Dave’a Thomasa, jednego z twórców manifestu Agile, to doskonałe wprowadzenie do języka Elixir. Nie bez powodu jest on określany jednym z najbardziej „dev...
9,00 zł 10,00 zł
Do koszyka

Samouczek języka niemieckiego dla średnio zaawansowanych

Samouczek umożliwiający samodzielną, efektywną naukę języka niemieckiego na poziomie średnio zaawansowanym. Zawiera autentyczne dialogi o różnorodnej tematyce (wraz z tłumaczeniami), popularne i często używane zwroty. Krok po kroku, opierając si...
88,83 zł 98,70 zł
Do koszyka

Język R dla każdego: zaawansowane analizy i grafika statystyczna

Obliczenia statystyczne dla programistów, naukowców, analityków, użytkowników Excela i innychPrzy użyciu języka R możesz budować skuteczne modele statystyczne i znaleźć odpowiedzi na wiele spośród najtrudniejszy...
9,21 zł 13,15 zł
Do koszyka

JAVA. Uniwersalne techniki programowania. Rozdział 11-12

Rozdziały 11-12 z publikacji pt. "JAVA. Uniwersalne techniki programowania", redakcja naukowa: Krzysztof Barteczko.Rozdział 11. Wejście-wyjścieRozdział 12. Programowanie współbieżne i równoległe. Książka przeds...

Recenzje

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