Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
— | pitel:isz:3d [30. 12. 2022, 13.43:01] (aktuální) – vytvořeno - upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Transformace, | ||
+ | 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 ===== | ||
+ | [[wp> | ||
+ | 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). | ||
+ | |||
+ | **Definice: ** 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í. | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ===== Transformace ===== | ||
+ | http:// | ||
+ | |||
+ | Používá se [[wp> | ||
+ | |||
+ | Tansformační matice je pak matice 4 × 4:\\ | ||
+ | < | ||
+ | |||
+ | Transformace je pak tedy: //P' = P × M//\\ | ||
+ | < | ||
+ | |||
+ | Transformace je pak možné i skládat, provádí se to násobením transformačních matic mezi sebou. A protože jde o násobení matic, záleží na pořadí. | ||
+ | |||
+ | ==== Posunutí ==== | ||
+ | < | ||
+ | |||
+ | Pro posun v opačném směru budou koeficienty //d// záporné. | ||
+ | |||
+ | ==== Změna velikosti ==== | ||
+ | < | ||
+ | |||
+ | Pro zmenšení místo //S// použít 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, | ||
+ | * 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í | ||
+ | |||
+ | * Manifold objekty -- vyrobitelné((Každá hrana spojuje právě dvě plochy)); nonmanifold -- nevyrobitelné | ||
+ | * Eulerove rovnice -- kontrola topologie objektu | ||
+ | * Eulerove operátory -- realizace změn topologie objektu | ||
+ | ==== Metody reprezentace ==== | ||
+ | === Konstruktivní geometrie (CSG) === | ||
+ | [[wp> | ||
+ | |||
+ | Objekt je popsán stromem složeným z 3D primitiv, transformací a booleovských operací (uzly stromu). | ||
+ | |||
+ | === Šablonování === | ||
+ | Transformace (posun) 2D profilu po přímce, křivce nebo s měnícím se objemem (potahování) nebo rotace. | ||
+ | |||
+ | === Dekompoziční modely === | ||
+ | {{ http:// | ||
+ | [[wp> | ||
+ | |||
+ | Diskrétní popis objektu dekompozicí jím obsaženého objemu na elementární objemové jednotky -- krychle (voxel = pixel v 3D). Uložení dat -- oktalový strom, 3D pole diskrétních hodnot nebo subvoxely. Vykreslení -- algoritmus [[wp> | ||
+ | |||
+ | === B-rep = Boundary representation === | ||
+ | [[wp> | ||
+ | |||
+ | Objekt je popsán hranicemi. | ||
+ | * Drátový (nejsem si jistá jak je to česky) model - popis pomocí vrcholů a hran | ||
+ | * Polygonální model -- popis pomocí vrcholů, hran a stěn. Pro popis v PC -- okřídlená hrana (3 lineární senzamy -- vrcholů, hran, stěn) | ||
+ | * Hraniční spline model -- popis pomocí vrcholů, hran a stěn (spline plochy) | ||
+ | |||
+ | === 3D plochy === | ||
+ | Plocha je definována bázovým polynomem a sítí bodů (matice). | ||
+ | * Bikubické plochy -- interpolační, | ||
+ | * Beziérové plochy -- aproximační, | ||
+ | * NURBS plochy -- aproximační, | ||
+ | |||
+ | === Implicitní plochy === | ||
+ | [[wp> | ||
+ | |||
+ | Modelování pomocí kostry kolem které je potenciální pole - určuje povrch objektu. | ||
+ | ===== Zobrazení ===== | ||
+ | ==== Ray tracing ==== | ||
+ | [[wp>Ray tracing (graphics)]] | ||
+ | |||
+ | Z mřížky jsou vystřelovány paprsky do scény, kde se různě odráží a pohlcují. Přitom se sleduje jejich barva. | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | ==== Photon mapping ==== | ||
+ | [[wp> | ||
+ | |||
+ | Pokročilá metoda, a výpočetně velice náročná, proto se většinou sama o sobě nepoužívá, | ||
+ | |||
+ | Funguje to tak, že do scény jsou ze světel vystřeleny fotony. Pokud foton narazí na polygon, v závislosti na materiálu se od něj buď část jeho energie pohltí (čímž na něm udělá " | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | ==== Z-buffer ==== | ||
+ | [[wp> | ||
+ | |||
+ | Ukládá informace o hloubce objektů ve scéně. Není to přímo vykreslovací metoda, ale spíš způsob řešení viditelnosti. | ||
+ | |||
+ | {{ http:// | ||
+ | |||
+ | ===== Shrnutí ===== | ||
+ | * transformace: | ||
+ | * homogenní souřadnice: | ||
+ | * násobení matic: záleží na pořadí, počítá se zprava! | ||
+ | * znát ty tranformační matice, ale asi o tom přímo nemluvit | ||
+ | * reprezentace: | ||
+ | * CSG: strom, listy jsou primitiva, uzly pak booleovské operace, paměťově výhodné | ||
+ | * šablonování: | ||
+ | * dekompoziční modely: voxely, uloženy ve stromové struktuře, marching cubes (neumět, jen zmínit), použitelné třeba na medicínská data | ||
+ | * 3D plochy: polygonální model, wireframe, 3D plochy (podobně jako křivky ve 2D) | ||
+ | * implicitní plochy: kostra s potenciálním povrchem, metaballs | ||
+ | * zobrazení: ray casting nebo z-buffer pro řešení viditelnosti, | ||
+ | * osvětlovací model: je dobré vědět, že existuje nějaký Phongův, který je leet |