Toto je starší verze dokumentu!
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
lineární transformace - dají se skládat (otočení + posunutí + zkosení + zvětšení je možné provést v různém pořadí se stejným efektem)
kartézská soustava souřadnic
pravotočivá - normální, co používáme
levotočivá - osa x a y je přehozená
homogenní souřadnice
homogenní souřadnice bodu v 3D s kartézskými 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.
w = váha bodu
lineární transformace: w = 1
vektory v´ = (x,y,z) reprezentujeme trojicí (x,y,z,0)
bod je svými homogenními souřadnicemi určen jednoznačně
jsou zavedeny kvůli jednotné manipulaci se všemi transformačními maticemi, protože v případě kartézských souřadnic by jsme u posunutí použili sčítání a u ostatních operací zase násobení ⇒ takto 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 ve 3D
Posunutí
Změna velikosti
Rotace
Zkosení
Kombinace
Reprezentace 3D objektů
Konstruktivní geometrie - CSG
objekt je popsán stromem ze:
3D primitiv (listy stromu)
transformací (zvětšení, otočení, atd… 3D primitiv)
booleovských operací (uzly stromu)
možnost vzniku singularit (regularizované operace)
pro každé nové operace probíhá regenerace stromu
možnost parametrizace operací ve stromu - parametrické modelování (CAD/CAM)
nejsou informace o povrchu ⇒ převod na polygonální model (B-rep)
oktalový strom
rozdělení prostoru CSG modelu oktalovým stromem (octree) ⇒ CSG strom rozdělený (tzv. prořezaný) na podstromy
urychlení regenerace stromu při lokálních operacích, urychlení zobrazování CSG modelu
strojní inženýrství, architektura
Šablonování
pohyb křivky, plochy nebo tělesa po zvolené trajektorii
může být součástí CSG operací (primitiva tvořená šablonováním)
využívá se invariance spline křivek a ploch vůči lineárním transformacím
pohyb po přímce (obrázek)
potahování s proměnlivou profilovou křivkou
posun po obecné křivce
rotační - NURBS křivky
Dekompoziční modely
diskrétní popis objektu dekompozicí na elementární objemové jednotky (krychle, hranoly) - voxely (Volumetric Pixel)
nese informace o hraniční struktuře x hraniční modely
geologie, medicína, strojírenství
uložení dat:
3D pole diskrétních hodnot - rychlý přístup, ale paměťově náročné
oktalový strom - vhodné pro malou hustotu dat - rekurzivní dělení
subvoxely - kombinace dvou předchozích
vykreslení pomocí Marching cubes
Hraniční reprezentace
B-rep (Boundary Representation)
objekt popsán prostřednictvím svého povrchu - hranice
objekty definovány pomocí vrcholů (body), hran (úsečky, křivky) a stěn (polygony, spline křivky)
drátový model
polygonální model
objekt definován pomocí vrcholů, hran, stěn (trojúhelníky == polygony)
jednoznačný popis objektu, malá přesnost (lineární aproximace povrchu)
hw podpora zobrazení
okřídlená hrana
3 lineární seznamy - vrcholů, hran, stěn
definuje sousední vrcholy, hrany ohraničující stěnu, sousední stěny
zpracováním lze získat normály ve vrcholech

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
_ 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
povrch objektu je v místě, kde je intenzita pole rovna nule
Zobrazování 3D projektů
drátový model - těžko se určuje viditelnost ⇒ nevíme, jak jsou myšleny stěny
viditelné plochy jsou přivrácené k pozorovateli, přivrácené části mají normálu směrem k pozorovateli
orientace normály vůči vektoru pohledu:
viditelnost hran:
hrana mezi viditelnými plochami je viditelná
hrana mezi neviditelnými plochami je neviditelná
hrana mezi viditelnou a neviditelnou plochou je obrysová
předzpracování scény:
Vizualizační metody
Robertsův algoritmus
klasický vektorový algoritmus
dělení potenciálně viditelných hran na úseky, kde se mění viditelnost
uděláme průsečíky s obrysovými hranami a testujeme viditelnost jejich úseků podle vzdálenosti průsečíků a zakrytí
Plovoucí horizont
vizualizace 3D funkcí v grafu
vykreslení řezů v rovině XZ a YZ od předu dozadu (ve směru pohledu)
vykreslení úseků řezu, které jsou mimo oblast horního a dolního horizontu
Malířův algoritmus
Dělení obrazu - Warnock
Z-buffer
rastrový obrazový algoritmus
ukládá informace o hloubce objektu (Z souřadnice nejbližších bodů)
rychlý algoritmus, snadná implementace v HW
každá plocha je zpracovávána pouze jednou ⇒ fronta
využívá předzpracování scény
využívá color buffer
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í
je nereálné sledovat všechny paprsky ⇒ Backtracking ⇒ zpětné sledování ⇒ procházíme rekurzivně postupně, jak se paprsek odráží
Ray casting
rastrový obrazový algoritmus řešení viditelnosti
-
vrhání paprsků z místa pozorovatele, pozorují se jen primární paprsky, bez odrazů
urychlení oproti Ray tracingu (snížíme počet paprsků, urychlíme výpočet průsečíků, používáme svazky paprsků, rozdělíme na více částí)
použití: přímé zobrazování CSG modelů, vizualizace voxel modelů
nevýhody:
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 ⇒ je třeba respektovat fyzikální vlastnosti světla
Osvětlovací modely
Lambertův osvětlovací model
Empirický model
Počítá pouze s difuzí
Ideální difuze, půlkulový odraz do všech směrů
Intenzita difuze závisí na úhlu dopadu paprsku na povrch (kosínové pravidlo)
Phonguv model
Empirický model
K difuzi přidává reflexi
Ideální reflexe, odraz je symetrický podle normály
Intenzita reflexe závisí na směru odrazu a směru k pozorovateli
Ambientní složka světla IA, světelný šum, rozptýlené světelné pozadí
BRDF
Stínování
Flat shading
Pro každý polygon se osvětlovacím modelem vyhodnotí středový pixel
Celý polygon má pak konstantní barvu
Nezohledňuje se zakřivení povrchu objektů
Goraud shading
Pro polygony se osvětlovacím modelem vyhodnotí pixely ve vrcholech
Při rasterizaci polygonu probíhá interpolace barvy
Zohledňuje se zakřivení povrchu objektů
Phong shading
Při rasterizaci probíhá interpolace normál z vrcholů
Osvětlovací model se počítá pro každý pixel
Zohledňuje se zakřivení povrchu objektů
Velmi kvalitní výsledky, realistické zobrazení
12 |
Celé jméno | OK | !!! |
Jirka Hynek |  | |
| 1 | |
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