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/21 13:07]
scorpix
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ů ======
-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 ==== +===== Geometrické transformace ===== 
- 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/wy=Y/wz=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í.\\ +  * jsou jedny z nejčetnějších operací v současné počítačové grafice 
-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). \\ +  * 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 
-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.\\ +  * **lineární transformace** - jsou popsány lineárními rovnicemi 
-Transformační matice je matice 4*4.Tuto obecnou transformacní +  * **kartézská soustava souřadnic** 
-matici získáme násobením dílcích základních transformacních matic . Toto násobení matic musí být z pravé strany a v přesném pořadí provádení +    * 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 
-jednotlivých transformací. +    - __pravotočivá__ - normální, co používáme 
-=== Posunutí ===+    - __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** 
 +    * matice 4*4 
 +    * tuto obecnou transformační matici získáme násobením dílčích základních transformačních matic 
 +    * násobení matic musí být z pravé strany a v přesném pořadí provádění jednotlivých transformací 
 + 
 +==== Posunutí ====
 {{:temata:12-3d_objekty:posun.png|}} {{:temata:12-3d_objekty:posun.png|}}
  
-Pro posun v opačném směru budou koeficienty d záporné +  * pro posun v opačném směru budou koeficienty d záporné 
-=== Změna velikosti ===+ 
 +==== Změna velikosti ====
 {{:temata:12-3d_objekty:zmena.png|}} {{:temata:12-3d_objekty:zmena.png|}}
  
-Pro zmenšení se použije místo S 1/S. +  * pro zmenšení se místo S použije 1/S. 
-=== Rotace === +==== Rotace ===
-Střed otáčení v počátku souřadného systému.+ 
 +  * střed otáčení v počátku souřadného systému.
  
 {{:temata:12-3d_objekty:rotace_v_x.png|}} {{:temata:12-3d_objekty:rotace_v_x.png|}}
 {{:temata:12-3d_objekty:rotace_v_y.png|}} {{:temata:12-3d_objekty:rotace_v_y.png|}}
 {{:temata:12-3d_objekty:rotace_v_z.png|}} {{:temata:12-3d_objekty:rotace_v_z.png|}}
-=== Zkosení ===+ 
 +==== Zkosení ===
 {{:temata:12-3d_objekty:zkos_yz.png|}} {{:temata:12-3d_objekty:zkos_yz.png|}}
 {{:temata:12-3d_objekty:zkos_xz.png|}} {{:temata:12-3d_objekty:zkos_xz.png|}}
 {{:temata:12-3d_objekty:zkos_xy.png|}} {{:temata:12-3d_objekty:zkos_xy.png|}}
-==== 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, jedinečnost (jednomu tělesu odpovídá jeden model) 
-  * 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í (Možnost efektivní implementace operací s tělesem.) 
  
-=== Projekce === +==== Kombinace ==== 
-Transformace ze 3D do 2D prostoru +  * vynásobení matic
-  * **Paralelní** - rovnoběžná:zachovává rovnoběžnost hran, velikost průmětu nezávisí na vzdálenosti od průmětny +
-    * Kavalírska projekce – všechny osy mají stejné merítko  +
-    * Kabinetní projekce – osa Z je v merítku 1/2 vuci ostatním osám  +
-  * **Perspektivní** - středová:čím blíže středu promítání tím menší objekt +
-Buď na **rovinnou průmětnu**(úsečky se projektují na úsečky, stačí promítat jen vrcholy) vs. na **zakřivenou průmětnu** např.rybí oko (úsečky se projektují na křivky, potřeba projektovat všechny rastrované body) +
-Paralelní promítnutí do roviny XY (zanedbáme Z):{{:temata:12-3d_objekty:projekceparal.png?250|}}+
  
 +===== Reprezentace 3D objektů =====
  
-=== Metody Reprezentace === +  * **základní metody** 
-Objekty mohou být **manifold**(hrana sdílí jen 2 stěny, vyrobitelný) vs. **non-manifold**(nevyrobitelný objekt). +    - [[#Konstruktivní geometrie - CSG]] 
-  * Konstruktivní geometrie -Constructive Solid Geometry- objekt je popsán stromem 3D primitivtransformací a booleovskými operacemi(uzly) +    - [[#Šablonování]] (translační, rotační, potahování) 
-  * š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í) +    - [[#Dekompoziční modely]] 
-  * dekompoziční modely - rozklad objektu na elementární objemové jednotky(krychle) tzv.**voxel**(pixel ve 3D)Uložení dat – oktalový strom(problematické procházení objememvhodne pro malou hustotu dat), 3D pole diskrétních hodnot(velká náročnost na paměť, vysoká rychlost ístupu) nebo subvoxely(kombinace obojího).Vykreslení algoritmem //Marching cubes// +    - [[#Hraniční reprezentace]] 
-  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+    - [[#Implicitní plochy]] - potenciální pole elementárních částic 
-     * Drátový model - popis pomocí vrcholů a hran +  * **požadavky na modely:*
-     Polygonální model - objekt definován pomocí vrcholů, hran, stěn(trojúhelníky=polygony), hw podpora zobrazení +    * __obecnost__ (popis co nejrozsáhlejší třídy objektů) 
-     * Okřídlená hrana - (3 lineární senzamy – vrcholů, hran, stěn){{ :temata:12-3d_objekty:okridlena_hrana.png?200|}} +    * __úplnost__ (úplně popisuje daný objekt) 
-     * 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 +    * __jednoznačnost__ (lze vyhodnotit pouze jedním způsobem) 
-  * 3D Plochy - plocha je definována bázovým polynomem a sítí řídících bodů(matice) +    * __unikátnost, jedinečnost__ (jednomu tělesu odpovídá jeden model) 
-     * Bikubické plochy – interpolační, analogie Fergusonových křivek, matice 4×4 řídících bodů, spojitost plátů +    * __přesnost__ (popisu objektu) 
-     * Beziérové plochy – aproximační, analogie Beziérových křivek, matice 4×4 řídících bodů, spojitost plátů +    * __regulérnost__ (nemožnost vytvořit nereálnou reprezentaci) 
-     * NURBS plochy – aproximační, analogie NURBS křivek, matice 4×4 řídících bodů +    * __konzistence vůči vybraným operacím tělesa stejné třídy__ 
-  * Implicitní plochy - Modelování pomocí kostry kolem které je potenciální pole - určuje povrch objektu. +    * __kompaktnost__ (malá paměťová náročnost) 
-==== Zobrazování 3D projektů ==== +    * __možnost efektivního zpracování__ (možnost efektivní implementace operací s tělesem) 
-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) +  * **typy objektů:** 
-Mezi vektorové patří například Robertsův aloritmus(dělení potencilně viditelných hran na úseky kde se mění viditelnost) +    - __manifold__ - hrana sdílí jen 2 stěny, vyrobitelný 
-Mezi rastrové patří např. Malířův algoritmus(vykreslování nejprve vzdálených objektů, pak bližších +    - __nonmanifold__ - nevyrobitelný objekt 
-===Osvětlovací modely === +  * **Eulerovy rovnice** 
-== Lambertův osvětlovací model ==+    * slouží pro kontrolu topologie objektu => platí pro manifold (hrana spojuje 2 vrcholy, ve vrcholu maximálně 3 hrany, stěny se neprotínají) 
 +  * **regularizované množinové operace** 
 +    * skládání objektů 
 +    * nesmí měnit topologickou dimenzi objektu 
 +    * výsledek je vždy těleso 
 +    * -*, ∪*, ∩* 
 +  * **projekce** 
 +    * 3D objekty zobrazujeme na 2D výstupu 
 +    * projekční paprsek promítá body na průmětnu 
 +    * dochází ke ztrátě informace 
 +    - __perspektivní (středová)__  
 +      *je zvolený __střed projekce__ 
 +      * velikost průmětu nezávisí na vzdálenosti od průmětny 
 +      * __užití:__ virtuální realita, architektura, hry 
 +      * __kavalírská projekce__ - všechny osy mají stejné měřítko  
 +      * __kabinetní projekce__ - osa Z je v měřítku 1/2 vůči ostatním osám  
 +    - __paralelní (rovnoběžná)__ 
 +      * zachovává rovnoběžnost hran => paprsky kolmé na průmětnu => střed projekce je v nekonečnu 
 +      * čím blíže středu promítání tím menší objekt 
 +      * __užití:__ technická schémata 
 +      * __promítání na zakřivenou průmětnu__ - např.rybí oko (úsečky se projektují na křivky, potřeba projektovat všechny rastrované body) 
 +      __obrázek:__ paralelní promítnutí do roviny XY (zanedbáme Z)\\ {{:temata:12-3d_objekty:projekceparal.png?250|}} 
 + 
 +==== Konstruktivní geometrie - CSG ==== 
 + 
 +{{ :temata:12-3d_objekty:csg.jpeg?150|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í ==== 
 + 
 +{{ :temata:12-3d_objekty:sanlonovani.jpeg?150|Š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 ==== 
 + 
 +{{ :temata:12-3d_objekty:dekompozicni_modely.jpeg?150|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řístupale paměťově náročné 
 +    - __oktalový strom__ - vhodné pro malou hustotu dat - rekurzivní dělení 
 +    - __subvoxely__ - kombinace dvou edchozích 
 +  * vykreslení pomocí **Marching cubes** 
 +    nalezení a polygonizace __isoplochy__ procházející objemem 
 + 
 +==== Hraniční reprezentace ==== 
 + 
 +{{ :temata:12-3d_objekty:hranicni_reprezentace.jpeg?150|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) stěn (polygony, spline křivky
 +  __drátový model__ 
 +    * popis pomocí vrcholů a hran => málo topologických informací => nejednoznačnost 
 +    pro rychlé zobrazení 
 +  __polygonální model__ 
 +    * objekt definován pomocí vrcholů, hran, stěn (trojúhelníky == polygony) 
 +    * jednoznačný popis objektumalá 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\\ {{:temata:12-3d_objekty:okridlena_hrana.png?200|Okřídlená hrana}} 
 +  - __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 ==== 
 + 
 +{{ :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|}} 
-== 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ů   * Zohledňuje se zakřivení povrchu objektů
-  * Velmi kvalitní výsledky, realistické zobrazení{{ :temata:12-3d_objekty:phong_shading.png?200|}} 
-=== 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. 
-  * 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 === +{{:temata:12-3d_objekty:goraud_shading.png?200|}}
-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+
  
 +=== 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í
 +  * 
 +{{:temata:12-3d_objekty:phong_shading.png?200|}}
  
-{{tag>scorpix IZG grafika 3D}}+{{tag>scorpix george IZG grafika 3D}}
  
 <doodle single login|12> <doodle single login|12>
temata/12-3d_objekty/main.1303384041.txt.gz · Poslední úprava: 2011/04/21 13:07 autor: scorpix
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki