Toto je starší verze dokumentu!
Geometrické transformace jsou jedny z nejčetnějších operací v současné počítačové grafice. Můžeme je chápat jako změnu pozice vrcholů v aktuálním souřadnicovém systému nebo jako změnu souřadnicového systému.
Homogenní souřadnice
Homogenní souřadnice bodu v 3D s karteziánskymi souřadnicemi [x,y,z] je uspořádána čtveřice [X,Y,Z,w] pro kterou platí x=X/w, y=Y/w, z=Z/w. Bod je svými homogenními souřadnicemi určen jednoznačně. Souřadnici w nazýváme váhou bodu. Hodnota této váhy je w=1 v případě lineárních transformací.
Jsou zavedeny kvůli jednotné manipulaci se všemi transformačními maticemi, protože v případě karteziánských souřadnic by jsme u posunutí použili sčítání a u ostatních operací zas násobení. Takhle všude použijeme násobení matic, tj. jednotný způsob (ulehčí implementaci).
Bod, který chceme transformovat, má matici P(x, y, z, w), kde x, y, z jsou jeho souřadnice, w je 1 pokud je to bod, 0 pokud je to vektor.
Transformační matice je matice 4*4.
Posunutí
Pro posun v opačném směru budou koeficienty d záporné.
Změna velikosti
Pro zmenšení se použije místo S 1/S.
Rotace
Zkosení
Reprezentace
Požadavky na modely:
Obecnost (popis co nejrozsáhlejší třídy objektů)
Úplnost (úpně popisuje daný objekt)
Jednoznačnost (lze vyhodnotit pouze jedním způsobem)
Unikátnost, jedinečnost (jednomu tělesu odpovídá jeden model)
Přesnost (popisu objektu)
Regulérnost (nemožnost vytvořit nereálnou reprezentaci)
Konzistence vůči vybraným operacím tělesa stejné třídy
Kompaktnost (malá paměťová náročnost)
Možnost efektivního zpracování (Možnost efektivní implementace operací s tělesem.)
Projekce
Transformace ze 3D do 2D prostoru
Paralelní - rovnoběžná:zachovává rovnoběžnost hran, velikost průmětu nezávisí na vzdálenosti od průmětny
Perspektivní - středová:čím blíže středu promítání tím menší objekt
Buď na rovinnou průmětnu(úsečky se projektují na úsečky, stačí promítat jen vrcholy) vs. na zakřivenou průmětnu např.rybí oko (úsečky se projektují na křivky, potřeba projektovat všechny rastrované body)
Paralelní promítnutí do roviny XY (zanedbáme Z):
Metody Reprezentace
Objekty mohou být manifold(hrana sdílí jen 2 stěny, vyrobitelný) vs. non-manifold(nevyrobitelný objekt).
Konstruktivní geometrie -Constructive Solid Geometry- objekt je popsán stromem z 3D primitiv, transformací a booleovskými operacemi(uzly)
šablonování - pohyb(posun, rotace) křivky, plochy nebo tělesa po zvolené trajektorii.může být s proměnlivou profilovou křivkou(potahování)
dekompoziční modely - rozklad objektu na elementární objemové jednotky(krychle) tzv.voxel(pixel ve 3D)Uložení dat – oktalový strom(problematické procházení objemem, vhodne pro malou hustotu dat), 3D pole diskrétních hodnot(velká náročnost na paměť, vysoká rychlost přístupu) nebo subvoxely(kombinace obojího).Vykreslení algoritmem Marching cubes
hraniční reprezentace B-Rep - objekt popsán pomocí svého povrchu, info o vnitřní struktuře není uložena, objekty definovány pomocí vrcholů(body), hran(úsečky, křivky), stěn(polygony, spline plochy)
Drátový model - popis pomocí vrcholů a hran
Polygonální model - objekt definován pomocí vrcholů, hran, stěn(trojúhelníky=polygony), hw podpora zobrazení
Okřídlená hrana - (3 lineární senzamy – vrcholů, hran, stěn)
Hraniční spline model - jako polygonální ale místo polygonů jsou spline plochy, pro zobrazení se často na polygonální převádí, LOD - Level of Detail míra přesnosti podle vzdálenosti, eliminace vrcholů nebo hran
3D Plochy - plocha je definována bázovým polynomem a sítí řídících bodů(matice)
Bikubické plochy – interpolační, analogie Fergusonových křivek, matice 4×4 řídících bodů, spojitost plátů
Beziérové plochy – aproximační, analogie Beziérových křivek, matice 4×4 řídících bodů, spojitost plátů
NURBS plochy – aproximační, analogie NURBS křivek, matice 4×4 řídících bodů
Implicitní plochy - Modelování pomocí kostry kolem které je potenciální pole - určuje povrch objektu.
Zobrazování 3D projektů
Algoritmy viditelnosti: vektorové(výsledkem je soubor viditelných a neviditelných hran) vs. rastrové(rastrový výsledek-obraz viditelných ploch, stinovani, barva osvetleni)
Mezi vektorové patří například Robertsův aloritmus(dělení potencilně viditelných hran na úseky kde se mění viditelnost)
Mezi rastrové patří např. Malířův algoritmus(vykreslování nejprve vzdálených objektů, pak bližších
Vizualizační metody
Objektové - Objekty scény jsou zpracovávány sekvenčně.Nejsou stíny.Není sekundární osvětlení (od objektů navzájem).Nejsou odrazy.
Obrazové - pixely jsou zpracovávány sekvenčně. Ostré stíny.Není sekundární osvětlení (od objektů navzájem).
Komplexní - scéna je zpracvávána celá najednou. Měkké stíny. Komplexní řešení.

Z-buffer
Rastrový obrazový algoritmus
Ukládá informace o hloubce objektu(Z souřadnice nejbližších bodů)
Rychlý algoritmus, snadná implementace v HW
Ray tracing
Sledování paprsků - z kamery se vypouštějí paprsky, sleduje se jejich pohyb, zlom a odraz
výpočetně hodně náročné - použití u statických scén, filmu ne u her, kdy je potřeba rychlost vykreslování
nevýhody:ostré stíny, bodové zdroje světla, zrcadla (lesklé plochy) sice odrážejí okolí, ale neodráží
světlo do okolí, nejsou sekundárními zdroji světla
Ray casting
Rastrový obrazový algoritmus řešení viditelnosti
Ray tracing prvního stupně
Vrhání paprsků z místa pozorovatele, pozorují se jen primární paprsky, bez odrazů
Pomalý, kvalitní výsledky
Použití: přímé zobrazování CSG modelů, vizualizace voxel modelů
Radiozita
vystřelování „radiozity“ z plošek, které mají nejvíce energie
ozářené plošky se stávají sekundárními zdroji světla
rekurzivní opakování dokud se energie neutlumí
nejkomplexnější řešení viditelnosti
trvá nejdéle
Diskuze
dopsat skladani zobrazeni + mensi priklad u projekci jeste dopsat jejich jednotlive druhy (kabinetova, …) u reprezentaci urcite obrazky, jak vypadaji, obrazek okridlene hrany modely osvetleni (Phonguv, fyzikalni, …) - Phong tam byl dvakrat (osvetleni, stinovani) popsat stinovani popsat textury ray-tracing, ray-casting obrazky, popr vic popsat princip
Doplnil jsem tu věci, co mi zde chyběly … ještě by se tu možná mohla přidat kapitola k texturování ⇒ jen v bodech vypsat metody + nějaké obrázky
http://www.netgraphics.sk/transformacie-v-rovine-a-priestore
http://www.uiam.mtf.stuba.sk/predmety/gms/studijne_texty/GMSL3-09.pdf
Bacha na tu kavalírskou/kabinetní projekci - nevím, jak se to učilo v IZG, každopádně podle zdrojů na netu to patří do rovnoběžné, tedy paralelní projekce, ne do perspektivní. Viz např. http://cs.wikipedia.org/wiki/Koso%C3%BAhl%C3%A9_prom%C3%ADt%C3%A1n%C3%AD nebo https://courses.cs.washington.edu/courses/cse457/99sp/handouts/lectures/07-projections.pdf