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 15:23]
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 139: Řádek 141:
     * nalezení a polygonizace __isoplochy__ procházející objemem     * nalezení a polygonizace __isoplochy__ procházející objemem
  
 +==== Hraniční reprezentace ====
  
-=== Metody Reprezentace === +{{ :temata:12-3d_objekty:hranicni_reprezentace.jpeg?150|Hraniční 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) +  * B-rep (Boundary Representation
-  * š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í+  * objekt popsán prostřednictvím svého povrchu - hranice 
-  * 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// +  * objekty definovány pomocí vrcholů (body), hran (úsečky, křivky) stěn (polygony, spline křivky
-  * 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__ 
-     * Drátový model - popis pomocí vrcholů a hran +    * popis pomocí vrcholů a hran => málo topologických informací => nejednoznačnost 
-     Polygonální model - objekt definován pomocí vrcholů, hran, stěn(trojúhelníky=polygony), hw podpora zobrazení +    pro rychlé zobrazení 
-     * Okřídlená hrana - (3 lineární senzamy – vrcholů, hran, stěn){{ :temata:12-3d_objekty:okridlena_hrana.png?200|}} +  __polygonální model__ 
-     * Hraniční spline model - jako polygonální ale místo polygonů jsou spline plochypro zobrazení se často na polygonální převádíLOD - Level of Detail míra přesnosti podle vzdálenosti, eliminace vrcholů nebo hran +    * objekt definován pomocí vrcholů, hran, stěn (trojúhelníky == polygony) 
-  * 3D Plochy - plocha je definována bázovým polynomem a sítí řídících bodů(matice) +    * jednoznačný popis objektumalá přesnost (lineární aproximace povrchu) 
-     * Bikubické plochy – interpolační, analogie Fergusonových křivek, matice 4×4 řídících bodů, spojitost plátů +    * hw podpora zobrazení 
-     * Beziérové plochy – aproximační, analogie Beziérových křivek, matice 4×4 řídících bodů, spojitost plátů +  - __okřídlená hrana__  
-     * NURBS plochy – aproximační, analogie NURBS křivek, matice 4×4 řídících bodů +    * 3 lineární seznamy - vrcholů, hran, stěn 
-  * Implicitní plochy - Modelování pomocí kostry kolem které je potenciální pole - určuje povrch objektu. +    * definuje sousední vrcholy, hrany ohraničující stěnu, sousední stěny 
-==== Zobrazování 3D projektů ==== +    * zpracováním lze získat normály ve vrcholech\\ {{:temata:12-3d_objekty:okridlena_hrana.png?200|Okřídlená hrana}} 
-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) +  - __hraniční spline model__ 
-Mezi vektorové patří například Robertsův aloritmus(dělení potencilně viditelných hran na úseky kde se mění viditelnost) +    * jako polygonální ale místo polygonů jsou spline plochy 
-Mezi rastrové patří např. Malířův algoritmus(vykreslování nejprve vzdálených objektů, pak bližších +    * pro zobrazení se často na polygonální převádí 
-===Osvětlovací modely === +    * LOD - Level of Detail míra přesnosti podle vzdálenosti, eliminace vrcholů nebo hran 
-== Lambertův osvětlovací model ==+ 
 +==== 3D plochy ==== 
 + 
 +{{ :temata:12-3d_objekty:3d_plochy.jpeg?150|3D plochy}} 
 + 
 +  * 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ů 
 +  - __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 ==== 
 + 
 +{{ :temata:12-3d_objekty:implicitni_plochy.jpeg?150|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: 
 +    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 ===
 + 
 +=== 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) 
-== Phonguv model ==+ 
 +{{:temata:12-3d_objekty:lambert.png?350|}} 
 + 
 +=== Phonguv model ===
   * Empirický model   * Empirický model
   * K difuzi přidává reflexi   * K difuzi přidává reflexi
   * 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í 
-== BRDF ==+ 
 +{{:temata:12-3d_objekty:phong.png?350|}} 
 + 
 +=== BRDF ===
   * Fyzikálně založený model   * Fyzikálně založený model
   * 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í === + 
-== Flat shading ==+==== Stínování ===
 + 
 +=== Flat shading ===
   * 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ů 
-== Goraud shading==+ 
 +{{:temata:12-3d_objekty:konstant_shading.png?200|}} 
 + 
 +=== 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ů 
-== Phong shading == + 
 +{{:temata:12-3d_objekty:goraud_shading.png?200|}} 
 + 
 +=== Phong shading ===
   * Při rasterizaci probíhá interpolace normál z vrcholů   * Při rasterizaci probíhá interpolace normál z vrcholů
   * 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 === +  *  
-  * Objektové - Objekty scény jsou zpracovávány sekvenčně.Nejsou stíny.Není sekundární osvětlení (od objektů navzájem).Nejsou odrazy. +{{:temata:12-3d_objekty:phong_shading.png?200|}}
-  * 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.1303737805.txt.gz · Poslední úprava: 2011/04/25 15:23 autor: george
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki