Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

temata:12-3d_objekty:main [2011/04/25 16:06]
george
temata:12-3d_objekty:main [2011/05/26 13:52] (aktuální)
george [Geometrické transformace]
Řádek 1: Řádek 1:
 +~~ODT~~
 +
 ====== 12 - Transformace, reprezentace a zobrazení 3D objektů ====== ====== 12 - Transformace, reprezentace a zobrazení 3D objektů ======
  
Řádek 4: Řádek 6:
   * jsou jedny z nejčetnějších operací v současné počítačové grafice   * 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   * 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)+  * **lineární transformace** - jsou popsány lineárními rovnicemi
   * **kartézská soustava souřadnic**   * **kartézská soustava souřadnic**
     * je taková soustava souřadnic, u které jsou souřadné osy vzájemně kolmé a protínají se v jednom bodě - počátku soustavy souřadnic     * je taková soustava souřadnic, u které jsou souřadné osy vzájemně kolmé a protínají se v jednom bodě - počátku soustavy souřadnic
Řádek 167: Řádek 169:
  
   * plocha je definována bázovou maticí (polynomy) a sítí řídících bodů (matice)   * plocha je definována bázovou maticí (polynomy) 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ů+  __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ů   - __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ů   - __NURBS plochy__ - aproximační, analogie NURBS křivek, matice 4×4 řídících bodů
Řádek 179: Řádek 181:
  
 ===== Zobrazování 3D projektů ===== ===== 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) +  * drátový model - těžko se určuje viditelnost => nevíme, jak jsou myšleny stěny 
-Mezi rastrové patří např. Malířův algoritmus(vykreslování nejprve vzdálených objektů, pak bližších+  * 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: 
 +    skalární součin 
 +    hodnota //z// normály po pohledové transformaci 
 +  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:** 
 +    * vyřazení odvrácených částí 
 +    * vyřazení zakrytých částí 
 + 
 +==== Vizualizační metody ==== 
 +  * **algoritmy viditelnosti:** 
 +    - __vektorové__ - výsledkem je soubor viditelných a neviditelných hran 
 +      např. [[#Robertsův algoritmus]] - dělení potenciálně viditelných hran na úseky kde se mění viditelnost 
 +    - __rastrové__ - rastrový výsledek - obraz viditelných ploch, stínováni, barva osvětlení 
 +      * např. [[#Malířův algoritmus]] - vykreslování nejprve vzdálených objektů, pak bližších 
 +  * **algoritmy viditelnosti (jiné dělení):** 
 +    * __objektové__ - pro každý objekt scény hledá viditelné části - složitost n<sup>2</sup> 
 +    * __obrazové__ - pro každý pixel obrazu hledá viditelný objekt - složitost n*p 
 +    * __komplexní__ - scéna je zpracovávána celá najednou. Měkké stíny. Komplexní řešení. 
 + 
 +{{ :temata:12-3d_objekty:vizualizacnimetody.png?600 |Vizualizační metody}} 
 + 
 +=== Robertsův algoritmus === 
 + 
 +{{ :temata:12-3d_objekty:robertsuv_algoritmus.jpeg?150|Robertsův algoritmus}} 
 + 
 +  * klasický vektorový algoritmus 
 +  * dělení potenciálně viditelných hran na úsekykde 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 === 
 + 
 +{{:temata:12-3d_objekty:plovouci_horizont.jpeg?150|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 === 
 + 
 +{{ :temata:12-3d_objekty:maliruv_algoritmus.jpeg?150|Malířův algoritmus}} 
 +{{ :temata:12-3d_objekty:maliruv_algoritmus2.jpeg?150|Malířův algoritmus}} 
 + 
 +  * rastrový algoritmus 
 +  * vykreslování objektů odzadu dopředu => seřazení podle vzdálenosti 
 + 
 +=== Dělení obrazu - Warnock === 
 + 
 +{{ :temata:12-3d_objekty:warnock.jpeg?150|Dělení obrazu}} 
 + 
 +  * rastrový objektový algoritmus 
 +  * dělení okna na čtvrtinydokud není vyplněn jedním objektem 
 +    - žádný objekt v okně => pozadí 
 +    - jeden objekt v okně => vykreslit 
 +    - více objektů v okně, ale nejbližší překrývá ostatní => vykreslit 
 +    - jinak => dělit 
 + 
 +=== Z-buffer === 
 + 
 +{{ :temata:12-3d_objekty:z-buffer.jpeg?150|Z-bufer}} 
 + 
 +  * 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 === 
 + 
 +{{ :temata:12-3d_objekty:raytracing.png?150|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 
 +  * [[#Ray tracing]] prvního stupně 
 +  * 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:** 
 +    * 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 
 + 
 +=== 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 ==== ==== Osvětlovací modely ====
 +
 === Lambertův osvětlovací model === === Lambertův osvětlovací model ===
   * Empirický model   * Empirický model
   * Počítá pouze s difuzí   * Počítá pouze s difuzí
   * Ideální difuze, půlkulový odraz do všech směrů   * Ideální difuze, půlkulový odraz do všech směrů
-  * Intenzita difuze závisí na úhlu dopadu paprsku na povrch (kosínové pravidlo){{ :temata:12-3d_objekty:lambert.png?350|}}+  * Intenzita difuze závisí na úhlu dopadu paprsku na povrch (kosínové pravidlo) 
 + 
 +{{:temata:12-3d_objekty:lambert.png?350|}}
  
 === Phonguv model === === Phonguv model ===
Řádek 195: Řádek 295:
   * Ideální reflexe, odraz je symetrický podle normály   * Ideální reflexe, odraz je symetrický podle normály
   * Intenzita reflexe závisí na směru odrazu a směru k pozorovateli   * 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í{{ :temata:12-3d_objekty:phong.png?350|}}+  * Ambientní složka světla IA, světelný šum, rozptýlené světelné pozadí 
 + 
 +{{:temata:12-3d_objekty:phong.png?350|}}
  
 === BRDF === === BRDF ===
Řádek 201: Řádek 303:
   * Realistické zobrazení (Ray-tracing)   * Realistické zobrazení (Ray-tracing)
   * Specializace na jednotlivé efekty nebo materiály   * Specializace na jednotlivé efekty nebo materiály
-  * Výpočetnˇe náročnější+  * Výpočetně náročnější
  
 ==== Stínování ==== ==== Stínování ====
Řádek 208: Řádek 310:
   * Pro každý polygon se osvětlovacím modelem vyhodnotí středový pixel   * Pro každý polygon se osvětlovacím modelem vyhodnotí středový pixel
   * Celý polygon má pak konstantní barvu   * Celý polygon má pak konstantní barvu
-  * Nezohledňuje se zakřivení povrchu objektů{{ :temata:12-3d_objekty:konstant_shading.png?200|}}+  * Nezohledňuje se zakřivení povrchu objektů 
 + 
 +{{:temata:12-3d_objekty:konstant_shading.png?200|}}
  
 === Goraud shading === === Goraud shading ===
   * Pro polygony se osvětlovacím modelem vyhodnotí pixely ve vrcholech   * Pro polygony se osvětlovacím modelem vyhodnotí pixely ve vrcholech
   * Při rasterizaci polygonu probíhá interpolace barvy    * Při rasterizaci polygonu probíhá interpolace barvy 
-  * Zohledňuje se zakřivení povrchu objektů{{ :temata:12-3d_objekty:goraud_shading.png?200|}}+  * Zohledňuje se zakřivení povrchu objektů 
 + 
 +{{:temata:12-3d_objekty:goraud_shading.png?200|}}
  
 === Phong shading === === Phong shading ===
Řádek 219: Řádek 325:
   * Osvětlovací model se počítá pro každý pixel   * Osvětlovací model se počítá pro každý pixel
   * Zohledňuje se zakřivení povrchu objektů   * Zohledňuje se zakřivení povrchu objektů
-  * Velmi kvalitní výsledky, realistické zobrazení{{ :temata:12-3d_objekty:phong_shading.png?200|}} +  * Velmi kvalitní výsledky, realistické zobrazení 
- +  *  
-==== Vizualizační metody ==== +{{:temata:12-3d_objekty:phong_shading.png?200|}}
-  * 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í.\\ {{:temata:12-3d_objekty:vizualizacnimetody.png?550|}} +
- +
-==== 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{{:temata:12-3d_objekty:raytracing.png?250|}} +
-  * 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+
  
-{{tag>scorpix IZG grafika 3D}}+{{tag>scorpix george IZG grafika 3D}}
  
 <doodle single login|12> <doodle single login|12>
temata/12-3d_objekty/main.1303740418.txt.gz · Poslední úprava: 2011/04/25 16:06 (upraveno mimo DokuWiki)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki