Tietokonegrafiikka : Kirjan sisältö

Sisältö

Alkusanat

1 Johdanto
  1.1 3D-grafiikka ja sen sovellukset
  1.2 Tietokonegrafiikan historiaa

2 Geometriaa
  2.1 Pisteetja karteesinen koordinaatisto
  2.2 Pisteiden erotus ja vektorit
  2.3 Vektorioperaatioita
    2.3.1 Pistetulo
    2.3.2 Ristitulo
    2.3.3  Kaksiulotteinen ristitulo
  2.4   Suora, säde, viivasegmentti ja murtoviiva
  2.5 Taso
    2.5.1 Taso ja normaali
    2.5.2 Vaihtoehtoinen esitystapa tasolle
    2.5.3 Pisteen etäisyys tasosta
    2.5.4 Sovellus: valon heijastuminen tasosta
  2.6 Monikulmiot
    2.6.1 Yksinkertaiset monikulmiot
    2.6.2 Ei-yksinkertaiset monikulmiot

3 Lisää geometrisia kappaleita
  3.1 Monikulmioverkko
    3.1.1 Monikulmioverkon esitystapoja
    3.1.2 Kolmioketjut ja-viuhkat
    3.1.3 Kulmapistetaulukot ja oheistieto
    3.1.4  Kolmioketjun etsiminen
  3.2 Monitahokkaat
  3.3 Neliölliset pinnat
  3.4 Tasa-arvopinnat
  3.5 Tekniikoita kappaleiden muodostamiseen
    3.5.1 Pyyhkäisykappaleet
    3.5.2 CSG-tekniikka
  3.6 Parametroidut käyrät ja pinnat
    3.6.1 Bezier-käyrä
    3.6.2 Spline-funktiot ja -käyrät
    3.6.3 Uniformi B-spline-käyrä
    3.6.4 Ei-uniformi B-spline-käyrä
    3.6.5 Rationaaliset käyrät ja NURBS-käyrä
    3.6.6 Lisää käyriä
    3.6.7 Käyrät pinnalla

4 Geometriset muunnokset
  4.1 Geometrinen muunnos funktiona
  4.2 Lineaariset kuvaukset
  4.3 Matriisit
    4.3.1 Matriisi tulo
    4.3.2 Matriisien operaatioita
    4.3.3 Yksikkömatriisi ja käänteismatriisi
    4.3.4 Matriisin determinantti
    4.3.5 Lineaariset yhtälöryhmät
  4.4 2D-avaruuden muunnokset
    4.4.1 Perusmuunnokset
    4.4.2 Affiinimuunnokset
    4.4.3 Koordinaatistomuunnos
  4.5 Homogeeniset koordinaatit
    4.5.1 Homogeenisten koordinaattien periaate
    4.5.2 Homogeeniset koordinaatit 2D-avaruudessa
    4.5.3 Homogeeniset koordinaatit 3D-avaruudessa
    4.5.4 Laskeminen homogeenisissa koordinaateissa
    4.5.5 2D-perusmuunnokset homogeenisissa koordinaateissa
  4.6 Muunnosten yhdistäminen
  4.7 3D-muunnoksia
  4.8 Eulerin kulmat
  4.9 Kvaterniot
    4.9.1 Kompleksiluvut
    4.9.2 Kvaternioalgebra
    4.9.3 Kvaterniot ja vektorit
    4.9.4 Kierrot kvaternioilla
    4.9.5 Kvaternioiden sovellukset

5 2D-geometrian ongelmia
  5.1 Säteiden, suorien ja viivasegmenttien leikkaus
    5.1.1 Analyyttinen ratkaisu
    5.1.2 Viivasegmenttien leikkaus 2D-ristitulon avulla
  5.2 Piste monikulmiossa
    5.2.1 Piste ei-konveksissa monikulmiossa
    5.2.2 Piste konveksissa monikulmiossa
  5.3 Viivasegmentin ja suorakulmion leikkaus
  5.4 Viivasegmentin ja konveksin monikulmion leikkaus
  5.5 Monikulmioiden leikkaus
  5.6 Pistejoukon konveksi peite
    5.6.1 Naiivi ääripistealgoritmi
    5.6.2 Grahamin algoritmi
    5.6.3 Jarvisin matriisi
    5.6.4 Muita algoritmeja konveksin peitteen etsimiseen
  5.7 Laskennallista geometriaa
    5.7.1 Voronoin diagrammi
    5.7.2 Pyyhkäisymenetelmä

6 3D-geometrian ongelmia
  6.1 Suoran ja tason leikkas
  6.2 Suoran ja avaruuden monikulmion leikkaus
  6.3 Avaruuden monikulmioiden leikkaus
  6.4 Leikkaustestejä pääakseleiden suuntaiselle laatikolle ja pallolle
  6.5 Näköfrustumin leikkaustestejä
  6.6 Leikkaustestien toteuttamisesta . „ . „ . . „ . . „ . . . . . .

7 2D-piirto
  7.1 2D-piirron vaiheet
  7.2 Viivasegmentin piirto
  7.3 Pehmeät ja paksut viivat
  7.4 Ympyrän piirto
  7.5 Tulvatäyttö
  7.6 Monikulmion vaakarivitäyttö
  7.7 Lisähuomioita 2D-piirrosta

8 3D-piirron liukuhihna
  8.1 Piirtoliukuhihnan merkitys
  8.2 Sovellusvaihe
  8.3 Geometriavaihe
  8.4 Rasterointivaihe

9 3D-piirron geometriavaihe
  9.1 Muunnos katsojan koordinaatistoon
  9.2 Valaistuksen laskenta kulmapisteille
  9.3 Projektiot
    9.3.1 Paralleeliprojektio
    9.3.2 Perspektiiviprojektio
    9.3.3 Projektioyhtälöt
    9.3.4 Näköfrustumi
    9.3.5 Perspektiiviprojektio 3D-muunnoksena
  9.4 Näkövolyymin normalisointi
  9.5 Mallin leikkaus
  9.6 Muunnos ikkunakoordinaatistoon

10 Rasterointi
  10.1 Monikulmioiden rasterointi
  10.2. Sävytys
  10.3 Teksturointi
    10.3.1 Lineaarinen tekstuurikuvaus tasolle
    10.3.2 Perspektiivikorjattu tekstuurikuvaus
    10.3.3 Tekstuurikuvan suodatus
    10.3.4  MIP-kartta
    10.3.5 Tekstuurin yhdistäminen monikulmion väriin
    10.3.6 Multiteksturointi
    10.3.7 Muita tekstuurien käyttötapoja
    10.3.8 Mainostaulut
    10.3.9 Kolmiulotteiset tekstuurit ja proseduraaliset tekstuurit
    10.3.10 Ympäristökuvaus ja kuutiokartta
    10.3.11 Muita ympäristökuvaustekniikoita  „ . . . . . . . . .
  10.4 Sumu
  10.5 Siluetti- ja alfa-testi
  10.6 Z-puskuri
  10.7 Ylinäytteistys, akkumulaatiopuskuri ja A-puskuri
  10.8 Kirjoitus videopuskuriin ja jälkikäsittely

11 Valaistus
  11.1 Diffuusi heijastuminen
  11.2  Ambinetti valo
  11.3 Pistemäiset valonlähteet
  11.4 Spekulaarit heijastukset
  11.5 Valaistus monikulmiomallissa
  11.6 Muita valaistusmalleja
  11.7 Pinnan valaistusyhtälö ja BRDF
  11.8 Pinnan kuhmutus
    11.8.1  Kuhmutuksen laskeminen korkeuskartasta
    11.8.2 Pinnan tangenttikoordinaatisto
    11.8.3 Lisähuomioita kuhmutuksesta

12 Näkyvyys
  12.1 Näkyvyyde ongelma
  12.2 Takapintojen poisto
  12.3 Geometrinen näkyvyysleikkaus
  12.4 Syvyyslajittelu, BSP ja octree
  12.5 Sisätilojen piirtotekniikat
    12.5.1 Konveksit solut, portaalit ja naapuruusgraafi
    12.5.2 Portaalikarsinta
    12.5.3 Staattinen solusta-soluun -näkyvyys
    12.5.4 Solusta-soluun -näkyvyyslaskennan toteutuksesta
  12.6 Z-puskuritekniikka
  12.7 Lisää tekniikoita näkyvyyskarsintaan
    12.7.1 Varjofrustumit
    12.7.2 Z-karsintaa
    12.7.3 Z-pyramiditekniikka
    12.7.4 Hierarchical Occlusion Maps (HOM)
    12.7.5 Vielä lisää tekniikoita

13 Varjot, läpikuultavuus ja heijastukset
  13.1 Varjot
    13.1.1  Varjot tasolle
    13.1.2 Varjoärmiöt
    13.1.3 Varjokartta
    13.1.4 Lisää varjoista
  13.2 Läpikuultavat pinnat
  13.3 Heijastukset

14 Avaruudellisia tietorakenteita
  14.1 Rajauslaatikot ja rajauslaatikkohierarkiat
  14.2 Avaruuden tasajakoinen laatikointi
  14.3 PR-quadtree
  14.4 Haut quadtreestä . „ . . . .
  14.5 PR-octree
  14.6 Point quadtree
  14.7 K-d-puu
  14.8 BSP-puu
    14.8.1 Jaon toteutus BSP-puussa
    14.8.2 BSP-puun sovelluksia
    14.8.3 Huomioita BSP-puusta
    14.8.4 Leafy-BSP
  14.9 Muita avaruudellisia tietorakenteita

15 Tarkkuustaso ja maastomallit
  15.1 Monikulmioverkon yksinkertaistaminen
  15.2 Maastomallit
    15.2.1  Maastonpiirron ongelmia ja ratkaisuja
    15.2.2 Geomimap
    15.2.3 PR-quadtree-pohjainen verkko
    15.2.4 ROAM

16 Valo, värit ja kuvien esitysmuodot .
  16.1  Valon voimakkuus ja gamma-korjaus
  16.2 Aallonpituudet ja värit
  16.3 Värit perusvärien summana
  16.4 CIE-väristandardi
  16.5 CIE-kromaattisuusdiagrammi
  16.6 Värimallit
  16.7 Kuvien tiedostomuodot

17 Piirtorajapinnat OpenGL ja DirectX
  17.1 OpenGL
    17.1.1 OpenGL:n tehtävät
    17.1.2 OpenGL-piirtämisen periaatteet
    17.1.3 OpenGL:n alustaminen
    17.1.4 Geometriset muunnokset
    17.1.5 Primitiivien piirtäminen
    17.1.6 Kappaleiden muunnokset
    17.1.7 Valaistus
    17.1.8 Teksturointi
    17.1.9 GLUT-apukirjasto
    17.1.10 Verteksitaulukot
    17.1.11 OpenGL-versiot ja laajennokset
    17.1.12 OpenGL-ongelmia
    17.1.13 OpenGL/GLUT-esimerkkiohjelma
  17.2 DirectX
    17.2.1 Windows-ohjelmointi
    17.2.2 DirectX:n alustaminen
    17.2.3 DirectX-piirto

18 Ohjelmoitavat sävyttimet
  18.1 Ei-reaaliaikaiset sävytinkielet
  18.2 Reaaliaikaiset ohjelmoitavat sävyttimet
  18.3 Rekisterikombinoijat
  18.4 Konekielinen sävytinohjelmointi
  18.5 Korkean tason sävytinohjelmointikielet
  18.6 Attribuuttitieto
  18.7 Uniformi tieto
  18.8 Tietotyypit ja operaatiot . „ . . . . . .
  18.9 Esimerkejä

19 Säteenjäljitys ja globaali valaistus
  19.1 Säteenjäljitys
  19.2 Kappaleet säteenjäljityksessä
  19.3 Säteenjäljityksen etuja ja ongelmia
  19.4 Satunnaistettu säteenjäljitys
  19.5 Säteenjäljityksen nopeuttaminen
  19.6 Radiositeettimenetelmä
    19.6.1 Pintojen radiositeetin ratkaiseminen
    19.6.2 Muototekijän laskeminen
    19.6.3 Lisähuomioita radiositeettimenetelmästä
  19.7 Fotonikartoitus

20 Mallinnus, animaatio, reaaliaika
  20.1 3D-mallit
    20.1.1 Hierarkiset mallit
    20.1.2 3D-mallien tuottaminen
    20.1.3 3D-mallien tiedostomuodot
  20.2 Animaatio
    20.2.1 Kulmapiste-interpolointi ja luurankomallit
    20.2.2 Käänteinen kinematiikka
  20.3 Interaktiiviset ja reaaliaikaiset 3D-sovellukset