Základní techniky zobrazování Josef Pelikán, MFF UK Praha

Podobné dokumenty
Textury v real-time grafice Josef Pelikán, MFF UK Praha Josef.Pelikan@mff.cuni.cz

Výpočet vržených stínů

Osvětlování a stínování

Distribuované sledování paprsku

Rekurzivní sledování paprsku

Pokročilé osvětlovací techniky Josef Pelikán, MFF UK Praha

Pokročilé techniky Josef Pelikán, MFF UK Praha

Reprezentace 3D modelu

Fyzikálně založené modely osvětlení

Práce na počítači. Bc. Veronika Tomsová

Zobrazování a osvětlování

Photon-Mapping Josef Pelikán CGG MFF UK Praha.

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

Počítačová grafika 1 (POGR 1)

Výpočet průsečíků paprsku se scénou

HDR obraz (High Dynamic Range)

2D grafika. Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace. Počítačová grafika, 2D grafika 2

Programování shaderů GLSL

Úvod do počítačové grafiky

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Reflections, refractions, interreflections

B_PPG PRINCIPY POČÍTAČOVÉ GRAFIKY

11 Zobrazování objektů 3D grafiky

Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/

3D počítačová grafika na PC Josef Pelikán, MFF UK Praha

Počítačová grafika 2 (POGR2)

Jana Dannhoferová Ústav informatiky, PEF MZLU

Výpočet průsečíků paprsku se scénou

Fakulta informačních technologíı. IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL 1 / 38

Návod k použití softwaru Solar Viewer 3D

Realistický rendering

Visualizace objemových dat

Zobrazovací řetězec a obrazová paměť, operace s fragmenty

PB001: Úvod do informačních technologíı

Multimediální systémy. 11 3d grafika

Základy OpenGL Josef Pelikán CGG MFF UK Praha. OpenGL / 34

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010

Reprezentace bodu, zobrazení

Přednáška kurzu MPOV. Barevné modely

Geometrické transformace pomocí matic

9 Prostorová grafika a modelování těles

Fotorealistická syntéza obrazu Josef Pelikán, MFF UK Praha

Visualizace objemových dat

13 Barvy a úpravy rastrového

Fotonové mapy. Leonid Buneev

DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ

Vývoj počítačové grafiky

Zobrazování barev Josef Pelikán CGG MFF UK Praha.

3D grafika. Proces tvorby sekvence s 3D modely Sbírání údajů na natáčecím place Motion capture Matchmoving Compositing

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Programovatelné shadery a jazyk Cg. Petr Kmoch

Přímé zobrazování objemových dat DVR

1.8. Úprava uživatelského prostředí AutoCADu 25 Přednostní klávesy 25 Pracovní prostory 25

Malířův algoritmus Josef Pelikán CGG MFF UK Praha. 1 / 15

Watkinsův algoritmus řádkového rozkladu

Konstruktivní geometrie PODKLADY PRO PŘEDNÁŠKU

ak. rok 2013/2014 Michal Španěl,

Připravil: David Procházka. Projekce

1. Vektorové algoritmy jejich výstupem je soubor geometrických prvků, např.

AXONOMETRIE - 2. část

Hardware pro počítačovou grafiku NPGR019

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Surfels: Surface Elements as Rendering Primitives

Anti Aliasing. Ondřej Burkert. atrey.karlin.mff.cuni.cz/~ondra/ ~ondra/stranka

Kde se používá počítačová grafika

Jasové transformace. Karel Horák. Rozvrh přednášky:

PRINCIPY POČÍTAČOVÉ GRAFIKY metodický list č. 1

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech."

7. OSVĚTLENÍ. Cíl Po prostudování této kapitoly budete znát. Výklad. 7. Osvětlení

12 Metody snižování barevného prostoru

Deformace rastrových obrázků

Reprezentace 3D scény

Satori. Uživatelský manuál

Fergusnova kubika, která je definována pomocí bodu P1, vektoru P1P2, bodu P3 a vektoru P3P4

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Barvy a barevné modely. Počítačová grafika

Vektorové grafické formáty

Realtime zobrazování vodní hladiny na dnešních GPU. Jan Horáček

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Webové stránky. 16. Obrázky na webových stránkách, optimalizace GIF. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Geekovo Minimum. Počítačové Grafiky. Nadpis 1 Nadpis 2 Nadpis 3. Božetěchova 2, Brno

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Geometrie. 1 Metrické vlastnosti. Odchylku boční hrany a podstavy. Odchylku boční stěny a podstavy

Novinky verze 5. Od verze 5.0 je v programu PRO100 implementován nový vizualizační modul založený na technologii Open GL.

Circular Harmonics. Tomáš Zámečník

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

Co je grafický akcelerátor

Pokročilé metody fotorealistického zobrazování

Optika. Zápisy do sešitu

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

Základy renderování Úvod Nastavení materiálů

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Osvědčené postupy pro zpracování tiskových dat s vynikající kvalitou tisku

Datové struktury pro prostorové vyhledávání

Světlo je elektromagnetické vlnění, které má ve vakuu vlnové délky od 390 nm do 770 nm.

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

scale n_width width center scale left center range right center range value weight_sum left right weight value weight value weight_sum weight pixel

Počítačová grafika letem světem

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

Transkript:

Základní techniky zobrazování 2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz

Obsah výpočet viditelnosti ( depth-buffer ) obrazové buffery ( frame buffers ) double-buffering, triple-buffering jednoduché ořezávání ( scissor test ) šablona ( stencil buffer ) poloprůhlednost ( alpha blending ) anti-aliasing, akumulační buffer výpočet osvětlení na GPU (fixed pipeline)

Výpočet viditelnosti používá se buffer hloubky ( depth-buffer ) Z-buffer nebo W-buffer Z-buffer 16-32 bitů, typicky 24 bitů na pixel pozor na neuniformní zobrazení hloubky do rozsahu hodnot z (záleží na poměru far / near ) vzdálenější partie zorného pole mají hloubku méně přesnou! W-buffer nemá problém s nelinearitou hloubky

Obrazové buffery podle grafického režimu 8- až 32-bitové (C, RGB[A]) dnes nejčastěji true-color 24-32 bitů na pixel double-buffering do jednoho bufferu se kreslí ( front ), jiný se zobrazuje ( back ) výměna bufferů: flipping nebo blitting flipping: rychlé přepnutí v HW (preferované) blitting: bit-blt operace triple-buffering další buffer ( pending ) pro lepší balancování výkonu a plynulejší snímkovou frekvenci

Obrazové buffery, triple buffering zobrazuje se left front right front hotový, čeká VS left back right back kreslí se async left pending right pending

Práce s buffery všechny buffery lze používat selektivně povolení / zákaz zápisu (i do jednotlivých bitových rovin) povolení depth-testu (též nastavení porovnávací operace) pro kreslení jsou k dispozici i další buffery rendering targets OpenGL: GL_AUXi pixel buffer (pbuffer) kreslení přímo do texturové paměti (rychlejší než glcopyteximage*()) rozšíření WGL_ARB_pbuffer

Fragmentové operace závěrečná fáze Upotřebení fragmentu ( Per- Fragment Operations ), za fragmentovým procesorem pořadí fragmentových operací: 1. scissor test 2. alpha test 3. stencil test 4. depth test 5. blending 6. dithering 7. logická operace

Jednoduché testy scissor test : rychlý a jednoduchý test obdélníková oblast na obrazovce (HW implementace) alpha test : rychlý test porovnání α-složky daného fragmentu s referenční hodnotou mohu zadat porovnávací operaci (GL_NEVER, GL_LEQUAL,...)

Šablona = stencil buffer další buffer velikosti obrazovky typicky 1 až 8 bitů na pixel může omezovat kreslení do obrazového bufferu (ruší celé další zpracování fragmentu) uživatelské nastavení zápisu do stencil-bufferu uživatelské nastavení stencil-testu OpenGL: různé režimy zápisu pro tři možné stavy: 1. fragment neprošel stencil-testem 2. fragment prošel stencil-testem, ale ne depth-testem 3. fragment prošel oběma testy

Operace s šablonou modifikace šablony (pro každý z předchozích režimů): GL_KEEP, GL_ZERO, GL_REPLACE, GL_INVERT GL_INCR, GL_INCR_WRAP, GL_DECR, GL_DECR_WRAP nastavení stencil testu: porovnávání se zadanou referenční hodnotou GL_NEVER, GL_ALWAYS, GL_LESS, GL_LEQUAL, použití šablony: víceprůchodové algoritmy vrhání stínů, zobrazování CSG, odraz ve vodě, průhled skrz portál, výhled z kokpitu,...

Poloprůhlednost alpha blending kombinace několika pixelů s různým stupněm pokrytí průhledností ( transparency ) poloprůhledné objekty (např. i billboards, imposters) vyhlazování anti-aliasing (okrajové pixely jsou pokryté jen částečně) buffer může držet neprůhlednost ( opacity ) α nebo A ( alpha ): velikost jako ostatní složky (formát pixelu RGBA) s průhledností se může pracovat i při bufferu RGB: kreslení odzadu dopředu se zapnutým depth-bufferem

Poloprůhlednost - skládání skládání (kompozice) poloprůhledných pixelů: v praxi se používají jen binární operace (sériové zprac.) lineární kombinace složek RGB[A] koeficienty této kombinace lze zadávat podle potřeby např. v OpenGL lze zadat zvláštní koeficienty pro zdroj i cíl, pro barvu i α-kanál viz α-operace (OVER, ATOP, HELD_OUT_BY,...) přednáška PGR007 (Pokročilá 2D grafika)

Kombinace s průhlednými objekty záleží na pořadí vykreslování! při neuspořádaném kreslení není možné správně spočítat výslednou barvu (ale průhlednost ano..) obyčejně se praktikuje kreslení odzadu dopředu univerzální postup pro kombinaci neprůhledných a poloprůhledných objektů ve 3D scéně: nepotřebuji obrazový buffer RGBA, stačí RGB: 1. nakreslím v libovolném pořadí neprůhledné objekty 2. vypnu zápis do depth-bufferu (zůstanou staré hodnoty) 3. kreslím poloprůhledné objekty odzadu dopředu, jako α-operaci nastavím OVER (viditelnost se testuje)

Anti-aliasing HW implementace anti-aliasingu základní primitiva (body, úsečky, trojúhelníky) mohou mít analytický výpočet měkkých okrajů někdy je pro anti-aliasing potřeba používat RGBA buffery uživatelský anti-aliasing: multisampling - kreslení několika obrázků přes sebe (s vzájemným malým subpixelovým posunutím) OpenGL: stavová proměnná GL_SAMPLE_BUFFERS okénko se schopností vícenásobného kreslení (přes akumulační buffer) někdy se musí zapnout korektní výpočet pokrytí poloprůhledných fragmentů v multisamplingu

Akumulační buffer musí být pro něj HW podpora (další buffer navíc) použití: anti-aliasing (přes multisampling viz výše) rozmazání pohybem ( motion blur ) simulace hloubky ostrosti objektivu měkké vržené stíny technika: nastavení akumulačního bufferu vícenásobné kreslení scény (celé/části, podle potřeby) po každém kreslení: přenos do akumulač. bufferu (příp. nastavení multiplikativního a aditivního faktoru)

Výpočet osvětlení na GPU jednoduchý světelný model (Phong) ambient okolní složka světla diffuse difusní odraz (dokonale matné těleso, Lambertův, cosinový zářič) specular lesklý odraz světla (Phong) ve vrcholech musí být zadány normálové vektory možnost počítat je automaticky na GPU? primární (difusní) a sekundární (lesklá) barvy a další materiálové konstanty zadání polohy a parametrů světelných zdrojů někdy jen omezený počet zdrojů světla (kvůli HW)

Světelné zdroje bodový zdroj všesměrový, v konečné vzdálenosti směrový zdroj rovnoběžné paprsky = v nekonečnu reflektor ( spotlight ) směrové světlo v konečné vzdálenosti intenzita ubývá při odklonu od osy mezní úhel GL_SPOT_CUTOFF SPOT_CUTOFF L

Útlum zdroje všechny zdroje jsou zeslabovány podle vzdálenosti kvadratický polynom 1 Att d = k C k L d k Q d 2 reflektor je navíc tlumen úhlem odklonu od osy: Spot L, V = cos LV SE L osa reflektoru V směrový vektor od zdroje k objektu SE GL_SPOT_EXPONENT

Celkový výpočet osvětlení primární barva (difusní světlo): Pri = Emiss mat Amb lightmodel Amb mat N i=1 Att i [ Amb light Amb mat cos Diff light Diff mat ] i sekundární barva (odlesk): nemusí být implementována aplikuje se až po texturování N Sec = Spec mat i=1 [ Att cos shininess Spec light ] i

Literatura Tomas Akenine-Möller, Eric Haines: Real-time rendering, 2 nd edition, A K Peters, 2002, ISBN: 1568811829 OpenGL ARB: OpenGL Programming Guide, 4 th edition, Addison-Wesley, 2004, ISBN: 0321173481 J. Žára, B. Beneš, J. Sochor, P. Felkel: Moderní počítačová grafika, 2. vydání, Computer Press, 2005, ISBN: 8025104540