Grafika. Fizyka. Metody numeryczne

Grafika. Fizyka. Metody numeryczne

Symulacje fizyczne z wizualizacją 3D

1 opinia

Format:

ibuk

RODZAJ DOSTĘPU

 

Dostęp online przez myIBUK

WYBIERZ DŁUGOŚĆ DOSTĘPU

Cena początkowa:

Najniższa cena z 30 dni: 7,90 zł  


7,90

w tym VAT

TA KSIĄŻKA JEST W ABONAMENCIE

Już od 24,90 zł miesięcznie za 5 ebooków!

WYBIERZ SWÓJ ABONAMENT

Książka wprowadza czytelnika w świat grafiki komputerowej czasu rzeczywistego oraz modelowania i symulowania rzeczywistości na jej potrzeby. Przedstawiono w niej wiedzę z zakresu podstawowych technik grafiki komputerowej, podstaw fizyki klasycznej oraz metod numerycznych.


Książka składa się z 4 części:



  • Wprowadzenia do grafiki 3D oraz opisu biblioteki OpenGL.

  • Przykładów podstawowych technik wizualizacji.

  • Wprowadzania do symulacji tzw. ciała miękkiego, czyli ciała zbudowanego z wielu punktów oddziałujących tłumionymi siłami sprężystymi, które w interakcji z innymi ciałami lub otoczeniem zmieniają swój kształt (lina, siatka, galaretka, samochód odkształcający się podczas zderzenia).

  • Wprowadzania do symulacji dowolnego układu oddziałujących punktów (zderzających się kul bilardowych, gwiazd utrzymywanych siłą grawitacji).

  • Wprowadzania do symulacji brył sztywnych, tj. obiektów, które nawet podczas zderzeń zachowują swój kształt.


Integralną częścią książki są przykłady i zadania, które można nieodpłatnie pobrać z zakładki DO POBRANIA.


Rok wydania2010
Liczba stron700
KategoriaProgramowanie
WydawcaWydawnictwo Naukowe PWN
ISBN-13978-83-01-16178-1
Numer wydania1
Język publikacjipolski
Informacja o sprzedawcyePWN sp. z o.o.

Ciekawe propozycje

Spis treści

  Wstęp    11
  Część I. Grafika trójwymiarowa w OpenGL    13
    Rozdział 1. Inicjacja okna dla grafiki 3D generowanej za pomocą OpenGL    15
      Visual C++ i WinAPI/WGL    17
        Tworzenie projektu i dostosowywanie go do współpracy z OpenGL    17
        Tworzenie okna za pomocą funkcji WinAPI    19
        Przystosowanie okna do współpracy z OpenGL za pomocą funkcji biblioteki WGL    25
        Przygotowanie i rysowanie sceny (wreszcie OpenGL!)    27
      Visual C++ i MFC    31
      C++Builder i VCL    35
      Tryb pełnoekranowy    36
    Rozdział 2. Macierze w OpenGL    41
      Macierz rzutowania    42
      Macierz model-widok    44
      Stosy macierzy    48
      Współrzędne jednorodne    51
      Odczytywanie wartości macierzy    56
    Rozdział 3. Rysowanie i animacja figur i brył    59
      Wyodrębnianie metody służącej do budowania aktorów    63
      Kolor    66
        Funkcja glColor    66
        Cieniowanie    66
        Kolor tła    67
      Model 1: Prostopadłościan    68
        Unikanie rysowania tylnych powierzchni    72
      Model 2: Niszczyciel gwiazd    74
        Podłoże    77
        Listy wyświetlania    79
        Animacja    81
    Rozdział 4. Kontrola położenia kamery    85
      „Rozglądanie się”, czyli kamera w centrum (FPP)    86
      Ruch w poziomie kontrolowany klawiszami    90
      Ruch kamery po sferze z wyróżnioną płaszczyzną (TPP)    93
      Przesuwanie kamery myszą    94
      Kontrola odległości kamery od modelu za pomocą rolki myszy    95
      Rotacja sferyczna    96
      Implementacja rotacji sferycznej    98
      Użycie klasy ArcBall    105
      Wektor położenia kamery    110
      Swobodne obroty kamery    111
      Jeszcze raz o rzutowaniu    117
    Rozdział 5. Oświetlenie    119
      Trójwymiarowa przestrzeń barw    119
      System oświetlenia OpenGL. Światło tła    121
      Model oświetlenia Phonga    124
        Model Lamberta światła rozproszonego    125
        Model rozbłysku Phonga    127
      Uśrednianie normalnych    129
      Definiowanie wektorów normalnych    130
      Definiowanie źródła światła rozproszonego    134
      Uśrednianie i interpolacja normalnych    138
      Rozbłysk    140
      Mieszanie kolorów (alpha blending)    142
      Sortowanie ścian    145
    Rozdział 6. Odwzorowywanie tekstur    153
      Proste teksturowanie    154
      Wiązanie tekstur (współrzędne teksturowania)    158
      Wiele tekstur    160
      Przezroczyste tekstury    163
      Wczytywanie tekstur z plików (bitmap)    165
      Czytanie tekstur z zasobów aplikacji    172
      Lakierowanie tekstur    173
      Układanie tekstur obok siebie    175
    Rozdział 7. Napisy    177
      Tworzenie czcionek do wyświetlania napisów    177
      Używanie czcionek bitmapowych    179
      Używanie czcionek 3D    183
    Rozdział 8. Biblioteka GLU    185
      Kwadryki    185
      Teksturowanie kwadryki    188
      Inne kwadryki    190
      GLU i macierze    194
        gluLookAt    194
        gluPerspective    195
      Inne    196
    Rozdział 9. Bufor szablonowy    199
      Przygotowanie sceny    199
      Płaszczyzny obcinające    201
      Przygotowanie szablonu    203
      Użycie szablonu do przycięcia odbicia    205
    Rozdział 10. Szablon projektów korzystających z grafiki OpenGL    209
    Zadania    213
  Część II. Wizualizacja danych    215
    Rozdział 11. Wizualizacja obiektów przestrzennych na przykładzie molekuł białek    217
      Zadanie    217
      Format PDB    217
      Odczyt danych z pliku PDB    219
        Klasa Atom    220
        Klasa PDB    222
      Wizualizacja    224
        Położenie atomów    225
        Wiązania chemiczne    229
      Wybór atomu i wyświetlanie etykiety, czyli interakcja z użytkownikiem w OpenGL    232
        Stos nazw    233
        Renderowanie w trybie zaznaczania    235
        Odczytywanie informacji z bufora zaznaczania    237
        Wyróżnianie wybranego atomu    238
    Rozdział 12. Wizualizacja funkcji dwóch zmiennych    241
      Format plików z danymi    242
      Klasy reprezentujące wczytywane dane    244
      Czytanie danych    247
        Wczytywanie parametrów programu z pliku    247
        Wczytywanie parametrów sieci z pliku    250
        Wczytywanie danych    252
      Przygotowanie wykresu    253
        Wyznaczenie zakresu tablicy, w którym znajdują się dane do wyświetlania    253
        Wyznaczenie wartości minimalnej i maksymalnej    254
        Wyznaczenie współczynnika skalowania    255
        Wyznaczenie koloru odpowiadającego wartości funkcji    255
        Wyświetlenie danych    257
        Destruktor klasy    263
      Osie układu współrzędnych    264
        Rysowanie osi    264
        Opis osi    266
      Oświetlenie    268
        Źródło światła    268
        Sterowanie pozycją źródła światła    270
    Rozdział 13. Trójwymiarowa wizualizacja z wykorzystaniem teksturowania przeźroczystego    275
      Tomografia optyczna    275
      Wczytywanie danych    276
      Metoda wizualizacji za pomocą przeźroczystego teksturowania    279
      Mapy kolorów    281
      Przygotowanie powierzchni do teksturowania    285
      Przygotowanie tekstur    288
      Regulacja jasności, kontrastu i przeźroczystości    296
  Część III. Świat modelowany zbiorem punktów materialnych    299
    Rozdział 14. Dynamika punktu    301
      Ruch    301
      Siła    302
      Równania ruchu    303
      Przykładowe rozwiązanie    304
      Zamiana na równania pierwszego stopnia    305
    Rozdział 15. Metody numeryczne, czyli dyskretyzacja równań ruchu    307
      Szereg Taylora    307
      Algorytm Eulera    309
      Algorytm Verleta    311
    Rozdział 16. Implementacja    313
      Klasa TPunktMaterialny    313
      Implementacja algorytmów Eulera i Verleta    317
      Klasa ZbiorPunktowMaterialnych    320
      Definiowanie układu punktów materialnych    324
      Wizualizacja punktów    325
      Dynamika punktów    327
      Wstrzymywanie symulacji    330
      Mechanizm odświeżania sceny w symulacjach    330
    Rozdział 17. Modelowanie układów elastycznych    333
      Zbiór oscylatorów    333
      Rysowanie linii    337
      Tłumienie    339
      Sztywność    342
      Lina    346
      Dalsi sąsiedzi    348
      Włos    349
      Podłoże    351
    Rozdział 18. Siły kontaktowe    357
      Reakcja na kontakt z obszarem niedostępnym    357
        Wzory    359
        Tarcie    360
      Implementacja obszaru niedostępnego    361
        Abstrakcyjny typ danych    361
        Podłoże    363
        Kula    364
        Dwa inne przykłady    365
        Zbiór punktów materialnych z obszarem niedostępnym    370
      Przykłady układów z obszarami niedostępnymi    375
        Punkty uderzające w kulę    375
        Lina na podłożu    378
        Lina opadająca na stolik    379
        Łączenie dwóch obszarów zabronionych    383
      Układy dwuwymiarowe    384
        Siatka, czyli kawałek tkaniny    384
        Pierwszy test i metody rysowania siatki    388
        Siatka w kontakcie z obszarem niedostępnym    392
      Układ trójwymiarowy, czyli dynamika brył miękkich    393
    Rozdział 19. Zderzenie dwóch punktów    399
      Fizyka zderzenia dwóch kul    399
        Zasady zachowania energii i pędu w zderzeniach    400
        Dynamika niecentralnego zderzenia dwóch kul    403
        Projekt testu    405
        Uproszczenia    406
      Implementacja zderzenia dwóch kul    407
        Pudło    412
        Dwa testy obnażające wady naiwnej implementacji    413
        Implementacja zderzeń niecentralnych    415
        Symulacja ruchów Browna    417
    Rozdział 20. Zderzenia punktów z tkaniną    419
      Wykrywanie kolizji punktu z trójkątem    419
        Czy odcinek przecina płaszczyznę?    419
        Gdzie odcinek przecina płaszczyznę?    421
        Czy punkt przecięcia znajduje się wewnątrz trójkąta?    422
      Modelowanie reakcji tkaniny i punktów na zderzenie    424
        Implementacja wody i tkaniny    425
        Implementacja wykrywania zderzeń    428
        Implementacja reakcji na zderzenia    432
    Rozdział 21. Sterowanie    435
      Przeciąganie punktu myszą    435
      Kontrola obiektu za pomocą klawiatury, czyli trening intuicji fizycznej    442
      Bilard    447
        Klasa Bilard    447
        Rysowanie bil, stołu i kija    451
        Implementacja kija    452
        Implementacja łuz    456
    Rozdział 22. O dwóch trikach używanych w symulacjach cząsteczkowych    461
      Jakie problemy chcemy rozwiązać?    461
      Grawitacja    461
      Dwa triki    462
        Odcięcie i podział na komórki    462
        Periodyczne warunki brzegowe    463
      Implementacja    464
        Klasa Galaktyka    464
        Wizualizacja    467
        Naiwna implementacja oddziaływań    468
        Podział obszaru na „komórki”    469
      Implementacja periodycznych warunków brzegowych    474
        Przejście przez granicę    474
        Obliczanie odległości    475
    Zadania    477
  Część IV. Obiekty modelowane zespołem brył sztywnych    481
    Rozdział 23. Dynamika bryły sztywnej    483
      Środek masy    483
      Kinematyka bryły sztywnej    485
        Prędkość liniowa i prędkość kątowa    485
        Rotujący układ odniesienia    485
      Dynamika bryły sztywnej, czyli równania Newtona w ruchu postępowym i obrotowym    489
        Moment pędu    489
        Moment bezwładności    490
        Moment siły i równanie ruchu    493
        Czego brakuje w równaniach ruchu?    495
      Moment bezwładności prostopadłościanu    496
      Macierz obrotu    498
        Całkowanie prędkości kątowej    499
    Rozdział 24. Implementacja metody Eulera dla dynamiki bryły sztywnej    503
      Metoda numeryczna    503
      Implementacja klas opisujących bryły sztywne    504
        Szablon klasy TBrylaSztywna    504
        Przykład bryły sztywnej: klasa Prostopadloscian    509
        Menedżer zbioru brył sztywnych    510
        Zbiór prostopadłościanów    514
      Wizualizacja    515
    Rozdział 25. Kwaterniony    519
      Algebra kwaternionów    520
      Kwaterniony jednostkowe    524
      Konwersja między kwaternionem i macierzą    528
      Pochodna kwaternionu i równanie ruchu    531
      Implementacja dynamiki opartej na kwaternionach    533
      Dwa testy    537
      Kąty Eulera, kwaterniony i macierze obrotu    538
    Rozdział 26. Detekcja kolizji: obszary ograniczające    541
      Sfery ograniczające (BS)    541
      Prostopadłościany ograniczające ustawione wzdłuż osi sceny (AABB)    546
      Twierdzenie SAT    551
      Twierdzenie SAT w przypadku prostopadłościanów OBB    553
      Czytelna implementacja SAT dla prostopadłościanów OBB    556
      Optymalizacja implementacji SAT    558
    Rozdział 27. Detekcja kolizji: wyznaczanie punktu styku oraz normalnej i stycznej zderzenia    567
      Normalna zderzenia dwóch prostopadłościanów    569
      Punkt zderzenia dwóch prostopadłościanów    573
        Zderzenie wierzchołka ze ścianą    573
        Zderzenie dwóch krawędzi    574
        Odległość dwóch prostych    578
        Podsumowanie    581
      Styczna zderzenia dwóch prostopadłościanów    582
    Rozdział 28. Fizyka zderzeń brył sztywnych    585
      Popęd liniowy, czyli zasada zachowania pędu    585
      Popęd kątowy, czyli zasada zachowania momentu pędu    586
      Współczynnik restytucji, czyli zasada (nie)zachowania energii    587
      Rozwiązanie    587
      Tarcie    589
      Implementacja    590
    Zadania    593
    Wybrana literatura tematu    595
      Mechanika    595
      Geometria obliczeniowa (w tym detekcja kolizji)    596
      OpenGL i grafika 3D    596
      Metody numeryczne    597
      Prace inżynierskie i dyplomowe wykorzystane w książce    598
  Dodatek A. Korzystanie z biblioteki GLUT do zarządzania oknem w projektach przenośnych    599
    GLUT (Visual C++)    600
      Tworzenie okna OpenGL za pomocą GLUT    600
      Interakcja z użytkownikiem    606
    GLUT w C++Builder    611
    Kompilacja projektu korzystającego z GLUT za pomocą g++ w systemie Linux i powłoce Cygwin    612
  Dodatek B. Macierz rzutowania punktu na płaszczyznę    613
  Dodatek C. Wczytywanie modelu z pliku OBJ    619
    Opis formatu Wavefront OBJ    619
    Klasy CScena i CModel    622
    Rysowanie wczytanej sceny. Klasa CScenaRysowana    634
    Przykładowy projekt    637
  Dodatek D. Klasy implementujące wektor, macierz i kwaternion    643
    Wektor    643
      Projekt interfejsu    643
      Definicja klasy i jej pola    644
      Operator indeksowania    645
      Konwersja do tablicy    646
      Operatory relacji    647
      Operatory arytmetyczne    647
      Iloczyny wektorów    649
      Metody    651
      Konkretyzacja    652
      Testy    653
    Macierz kwadratowa 3×3    656
      Przechowanie i dostęp do elementów macierzy    657
      Operatory    660
      Metody    663
      Testy    668
    Kwaternion    670
      Pola i konstruktory    670
      Operatory    671
      Metody    673
      Testy    677
      Funkcja TworzMacierzObrotuZKataIOsiObrotu    679
  Dodatek E. Animacja szkieletowa    681
    Kości i stawy    683
    Projektowanie szkieletu    685
    Rysowanie ręki    687
    Modelowanie ułożenia    690
    Modelowanie animacji    691
  Indeks    695
RozwińZwiń