Grafické transformace

Grafické transformace jsou transformace používané při přípravě grafické scény v počítačové grafice. Transformace (zde reprezentované transformační maticí) jsou aplikovány na bod (reprezentovaný v homogenních souřadnicích) jako násobení matic. Transformace objektu je aplikace transformace na všechny jeho body.

Dále uvažujme dvojrozměrný prostor s počátkem v , bod a bod , který vznikl z aplikací transformace .

Transformace zde uvedené se ale nemusí používat jen v počítačové grafice.

Homogenní souřadnice

editovat

Homogenní souřadnice umožňují reprezentovat veškeré grafické operace jako násobení matic. Rotaci a změnu měřítka ve 2D lze reprezentovat jako násobení   maticí 2×2, translaci však nikoli, proto se zavádí třetí, homogenní, souřadnice.

  v homogenních souřadnicích má souřadnice   právě tehdy, když platí:

 
 

Souřadnice   se nazývá váha bodu.   se často volí rovna 1.

Při zvoleném   jsou tedy homogenní souřadnice  .

Elementární transformace

editovat

Rotace (otočení)

editovat

Rotací rozumíme otočení bodu kolem středu vztažné soustavy o daný úhel. Rotace je určena pouze úhlem  .

 .

Transformační matice pro rotaci:

 

Scaling (změna měřítka)

editovat

Scaling je transformace změny měřítka. Je určena změnou velikosti podle souřadnicových os  .

 .

Transformační matice pro změnu měřítka:

 

Jsou-li koeficienty   záporné, dochází ke „změně měřítka v opačném směru“, tj. ke středové symetrii.

Pokud je  , je možné se stejným efektem použít matici

 

Tzn. nastavením homogenní souřadnice lze dosáhnout změny měřítka.

Translace (posunutí)

editovat

Translace je transformace posunu. Je určena vektorem posunutí  , který udává, kterým směrem a jak daleko bude bod posunut. Tj.  .

Transformační matice pro posun:

 

Shear (zkosení)

editovat

Shear je transformace zkosení. Je určena mírou zkosení ve směrech souřadnicových os  .  .

Transformační matice pro zkosení:

 

Skládání transformací

editovat

Transformace lze skládat do jediné matice postupným násobením elementárními transformacemi  , což ve svých důsledcích vede na zrychlení vykreslování. Protože násobení matic není komutativní, záleží na pořadí, ve kterém se transformace provádějí. Násobení se provádí buďto jako   nebo  .

Inverze

editovat

Pokud transformujeme nějaký bod   transformační maticí   na bod  , lze tento bod transformovat zpět na bod   vynásobením inverzní maticí   (pokud existuje).

V případě, že   je rotační matice, je matice k ní inverzní zároveň její transpozicí (kterou lze spočítat daleko rychleji). Inverzi translační matice dostaneme tak, že u této matice změníme znaménko u prvků nad hlavní diagonálou.

Projekce (promítání)

editovat

Při zobrazování 3D objektů na 2D zařízení je třeba stanovit způsob, kterým se toto zobrazení provede. Tímto způsobem je projekce.

Dále uvažujme průmětnu jako rovinu danou rovnicí  , tj. rovinu procházející bodem   a kolmou na osu  . Projekce popisuje, kde paprsek (přímka pocházející   a průmětnou) protne průmětnu, tzn. který pixel na displeji se rozsvítí.

Projekci lze jako každou transformaci vyjádřit maticí. Tato bude přirozeně 4×4, neboť se jedná o 3D transformaci.

Paralelní

editovat

Rovnoběžné promítání je de facto nárysem scény – dochází pouze k zanedbání souřadnice  . Všechny paprsky svírají s průmětnou stejný úhel, obvykle  .

Transformační matice pro paralelní projekci:

 

Perspektivní

editovat

Při středovém promítání jsou všechny paprsky svedeny do středu promítání – vzdálenější objekty se jeví menší, rovnoběžky se sbíhají. Podle toho, kolik souřadnicových os průmětna protíná, se rozlišují:

  • Jednoúběžníková
  • Dvouúběžníková
  • Tříúběžníková

Pokud střed projekce je  , a průmětna v rovině   procházející bodem  , pak transformační matice pro perspektivní projekci je:

 

Literatura

editovat

Související články

editovat

Externí odkazy

editovat