Pokročilé osvětlovací techniky. 2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz

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

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

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

Surfels: Surface Elements as Rendering Primitives

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

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

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

Katedra informatiky, Univerzita Palackého v Olomouci. 27. listopadu 2013

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

CGI. Computer generated imagery Počítačové triky Animované filmy Počítačové hry. Technologické trendy v AV tvorbě, CGI 2

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

Reprezentace 3D modelu

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

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

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

Počítačová grafika III Úvod

Distribuované sledování paprsku

Zobrazování a osvětlování

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

Rekurzivní sledování paprsku

OPTIKA - NAUKA O SVĚTLE

8.1. ELEKTROMAGNETICKÉ ZÁŘENÍ A JEHO SPEKTRUM. Viditelné světlo Rozklad bílého světla:

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

Počítačová grafika III Úvod

Bc. Martin Dušek. Fakulta elektrotechnická. Studijní program: Elektrotechnika a informatika strukturovaný magisterský

Fotonové mapy. Leonid Buneev

Euklidovský prostor Stručnější verze

HDR obraz (High Dynamic Range)

produktová brožura Červenec 2008

KULOVÁ ZRCADLA. Mgr. Jan Ptáčník - GJVJ - Fyzika - Optika - Septima

Přibližný výpočet efektů globálního osvětlení na GPU

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

Osvětlovací modely v počítačové grafice

Otázky z kapitoly Stereometrie

Reprezentace 3D scény

Optické měřicí 3D metody

5.3.3 Interference na tenké vrstvě

Praktikum III - Optika

SVĚTLO / ZÁKON ODRAZU

ÚVOD DO PROBLEMATIKY PIV

Realistický rendering

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1

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

Android OpenGL. Pokročilé shadery

Odraz světla, BRDF. Petr Kadleček

Výukové materiály pro výuku 3D grafiky na SOŠ

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

Praktická geometrická optika

Programování shaderů GLSL

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

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

Aplikovaná optika. Optika. Vlnová optika. Geometrická optika. Kvantová optika. - pracuje s čistě geometrickými představami

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

Gymnázium Jiřího Ortena, Kutná Hora. volné rovnoběžné promítání průmětna

Nejdůležitější pojmy a vzorce učiva fyziky II. ročníku

NEREALISTICKÉ ZOBRAZENÍ

Maticová optika. Lenka Přibylová. 24. října 2010

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Precomputed radiance transfer

5.2.4 Rayleighova Taylorova nestabilita

Astronomická pozorování

Diagnostické ultrazvukové přístroje. Lékařské přístroje a zařízení, UZS TUL Jakub David kubadavid@gmail.com

Výukový materiál vytvořen v rámci projektu EU peníze školám "Inovace výuky" registrační číslo CZ.1.07/1.5.00/

Bayesovská klasifikace digitálních obrazů

VLNOVÁ OPTIKA. Mgr. Jan Ptáčník - GJVJ - Fyzika - Optika - 3. ročník

Textura a mapovací funkce Způsoby aplikace textury Použití textury pro prostorovou modifikaci povrchu Mipmapping Literatura.

ELEKTRICKÉ SVĚTLO 1 Řešené příklady

BAKALÁŘSKÁ PRÁCE. Optimalizace trojúhelníkových sítí v E 3 a jejich zobrazování / 2000 Jan Doubek

Témata semestrálních prací:

Praktická geometrická optika

Přehled učiva matematiky 7. ročník ZŠ

Uživatelská. príručka. osvetlení, kine. telským prostr.. modelování, t. materiálu a tex. animaee III. III seznámení s K INFORMACÍM

Akustika. Rychlost zvukové vlny v v prostředí s hustotou ρ a modulem objemové pružnosti K

Pasivní Koherentní Lokace. Duben 2008

Teoretické úlohy celostátního kola 53. ročníku FO

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

SPIRIT Nové funkce. SOFTconsult spol. s r. o., Praha

27. listopadu 2013, Brno Připravil: David Procházka

Fakulta strojního inženýrství VUT v Brně Ústav konstruování. KONSTRUOVÁNÍ STROJŮ převody. Přednáška 6

11. Geometrická optika

Úloha č. 8 Vlastnosti optických vláken a optické senzory

Reflections, refractions, interreflections

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k )

Téma: Světlo a stín. Zpracoval Doc. RNDr. Zdeněk Hlaváč, CSc

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: Lasery - druhy

Úvod do zpracování obrazů. Petr Petyovský Miloslav Richter

Světlo v multimódových optických vláknech

3.2 Rovnice postupné vlny v bodové řadě a v prostoru

Vývoj počítačové grafiky

ELEKTRICKÉ SVĚTLO 1 Řešené příklady

X39RSO/A4M39RSO Vychýlené (biased) metody globálního osvětlení. Vlastimil Havran ČVUT v Praze CTU Prague Verze 2011

2 Spojité modely rozhodování

Měření ohniskových vzdáleností čoček, optické soustavy

I Mechanika a molekulová fyzika

CVIČENÍ č. 3 STATIKA TEKUTIN

Matematika pro real-time grafiku

Interakce světla s prostředím

Seznámení s moderní přístrojovou technikou Laserové skenování

Modely prostorových těles

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

Transkript:

Pokročilé osvětlovací techniky 2005 Josef Pelikán, MFF UK Praha http://cgg.ms.mff.cuni.cz/~pepca/ Josef.Pelikan@mff.cuni.cz

Obsah nefotorealistické techniky hrubé tónování kreslení obrysů ( siluety ) složitější lokální modely osvětlení reprezentace BRDF ( Lafortune's lobes ) subsurface scattering displacement mapping difusní mapy okolí ( accessibility maps ) výpočet koncentrace světla ( caustics )

Nefotorealistické zobrazování ( NPR ) cílem je výsledek podobný lidské grafice výrazné kontury napodobení perokresby (šrafování apod.) napodobení různých malířských technik (olej, akvarel) stínování ve stylu kreslených filmů ( cartoons ) přístupy (techniky realizace): speciální použití textur ( hrubé tóny osvětlení ), procedurání textury ( fragment shader ) postprocessing (zvláštní malířské techniky) + kombinace

Příklady NPR

Siluety, kontury, obrysy ( silhouettes ) pro lidský zrak jsou kontury velmi důležité rozhraní mezi přivrácenou a odvrácenou částí tělesa navazují na ně často šrafovací soustavy (pro zdůraznění křivosti, sklonu povrchu nebo jen jako náhrada stínování) čistě geometrická informace (je-li těleso regulárním mnohostěnem) metody určování kontur: hrany mezi přivrácenými a odvrácenými stěnami nespojitosti v hloubkovém bufferu ( postprocess. ) nespojitosti (hrany) v jiných výstupních datech

Jednoduché kreslení kontur není potřeba explicitně hledat obrysové hrany kreslená tělesa musí být regulární (uzavřená) dvě fáze kresení 1. nakreslí se přivrácené stěny těles stěny se vybarvují, hrany se nijak nezvýrazňují viditelnost se určuje depth-bufferem viz glenable( GL_CULL_FACE ), glcullface() 2. nakreslí se pouze hrany odvrácených stěn je třeba nastavit větší tloušťku čáry ( gllinewidth() ) čáry budou vyčnívat za obrysem

Kreslení obrysu tělesa obrysem zde rozumíme hrany, ve kterých obraz tělesa sousedí s obrazem pozadí několik podobných technik, využívá se šablona ( stencil ) 1. do šablony se nakreslí hrany tělesa (stačí odvrác.) buď se nastaví větší tloušťka čáry ( gllinewidth() ) nebo se kreslení opakuje několikrát s různým malým posunutím 2D souřadnic nezapisuje se do depth-bufferu! 2. nakreslí se stěny tělesa viditelnost (zápis do depth-bufferu ), nulování šablony 3. šablona se obkreslí černou barvou (vnější obrys)

Výpočet kontur metodami DIP následné zpracování ( postprocessing ) normálně nakresleného obrazu 3D scény základem je hloubková mapa ( depth buffer ), normálová mapa ( normal map ) nebo kombinace.. osvědčil se omezený Sobelův filtr (pouze 2 kolmé směry): 1 0 1 1 2 1 S h = 2 0 2 S v = 0 0 0 1 0 1 1 2 1 Edge H 2 V 2

Hrany podle hloubky a normály nespojitost hloubky nespojitost normály

Stínování ve stylu kreslených filmů výpočet světelného modelu je velmi podobný Blinn-Phongovým vzorcům 1.0 základem je difusní člen cos α a případně i lesklý člen cos h β difusní člen indexuje jednoduchou několikastupňovou texturu ( ramp ) jen dva nebo tři barevné odstíny bez filtrace textury (ostré přechody)! 0.7 0.3 nepovinný lesklý člen má přednost 0.0 je-li větší než práh, nakreslí se (např.) bílá barva

Složitější BRDF (lokální funkce odrazu) 1977: Lafortune navrhuje výpočetně efektivní reprezentaci funkce odrazivosti za pomoci tzv. lobes základem je člen aritmeticky podobný cos n β lobe (lalok) s(ω i,ω o ) směr laloku je dán dopadajícím a odraženým směrem, modifikuje se vektorem C pracujeme v tečném prostoru souřadnic [t,n,b]! exponent n určuje šířku laloku f i o = d j s, j s j i, o s i, o = C t i,t o,t C n i, n o,n C b i,b o, b n

Různé orientace laloku C t = C b = -1, C n = 1 obvyklý Phongův lalok (otočení o 180 v půdorysu) C t = C b izotropické BRDF (nezáleží na orientaci povrchu na směru tečny) C n < C t nezrcadlové maximum odrazu (blíž k tečně) C t > 0, C b > 0 zpětný odraz (viz model Oren-Nayar ) sign( C t ) sign( C b ) neizotropický odraz (tahy štětce, jemné drážky, brus)

Implementace faktory odrazivosti ( albedo ) ρ jsou trojice [R,G,B] pro každý člen se ukládají zvlášť (jedna barevná textura) čtyři parametry laloku [ C t, C n, C b, n ] se dají uložit do jedné textury jeden až tři laloky obvykle stačí k reprezentaci velmi realistické BRDF osvětlení podle obrazu okolí ( environment map ) okolí můžeme předem rozmazat několika diskrétními exponenty, např. n = 0, 1, 4, 16, 64 a 256 uložení do různých LoD v MIP-mapě nebo do 3D textury

Rozptyl světla pod povrchem velmi důležitý foto-realistický faktor kůže člověka apod. (viz filmy Shrek 2, Finding Nemo ) jiné průsvitné materiály (mramor, jantar, vosk, keramika, ) přesná implementace je obtížná (složitá fyzika i geometrie) několik zjednodušených přístupů: wrap lighting světlo se šíří i trochu za roh simulace absorpce hloubkovou mapou výpočet absorpce v tečném (texturovém) prostoru

Wrap lighting jednoduchá metoda nebere ohled na tvar a tloušťku tělesa nesnaží se počítat difusi světla upravuje difusní člen cos α rozšiřuje jeho vliv i na neosvětlené partie tělesa (za terminátorem ) obyčejná lineární transformace skalárního součinu lze přidat odlišné zabarvení přechodu (např. do červena u kůže) 1 Diff = max cos wrap 0, 1 wrap 1 wrap

Tloušťka průsvitného tělesa pomocí HW implementované hloubkové mapy 1. spočítá se hloubková mapa z pohledu zdroje světla 2. při vlastním kreslení znám lineární hloubku tělesa v daném fragmentu podle hloubky se určí množství světla procházející objektem tato závislost se může uložit do 1D textury 1 Scatter = C light e dist 0 dist

Hloubková mapa zdroj 2. běžný obraz 1. hloubková mapa dist

Práce v texturovém prostoru v prvním průchodu se spočítá primární osvětlení, ale výsledek se zapíše do texturového prostoru [ s, t ] primární souřadnice musí připravit vertex program (transformuje je do NDS = [ -1, 1 ] 2 ) nutnost dobré parametrizace povrchu tělesa! pro výpočet osvětlení apod. se musí fragment programu předávat i normální 3D souřadnice další průchod[y] zpracování světelné mapy metodami DIP (rozmazání pro podpovrch. rozptyl světla) poslední průchod (zobrazení) již pracuje s obyčejnými 3D souřadnicemi obarvení povrchu tělesa světelnou mapou

Prostor textury 2. zpracování světelné mapy t 1. rozvinutí povrchu tělesa s

Displacement mapping koncepci zavedl v r. 1989 Ken Perlin ( hypertextures, zobrazování: ray marching ) poloha bodu na povrchu tělesa je modulována funkcí vzdálenosti ( displacement function ) skutečná modifikace polohy bodu (srovn. bump map ) výpočet polohy fragmentu je založen na myšlence sphere tracing (Hart 1996) původně pro implicitní plochy (známe vzdálenost bodu od tělesa)

Implementace: distance map sledování paprsku probíhá v texturových souřadnicích 3D tečný prostor s jednotkou velikosti = 1 texel inicializace: výpočet směrového vektoru ( dir ) distance map : každému bodu v okolí přiřadí vzdálenost k nejbližšímu bodu plochy ( R 3 R ) výpočet předem (Danielsson 1980 čas O(n) ) float3 dir = normalize( in.taneyevec ); float3 texcoord = in.texcoord; for ( int i = 0; i < NUM_ITERATIONS; i++ ) { float dist = f1tex3d( distancetex, texcoord ); } texcoord += dist * dir;

Závěrečné vyhodnocení po provedení N kroků iterace máme výsledek: paprsek narazil na povrch tělesa (je třeba dopočítat normálový vektor, osvětlení, apod.) nebo paprsek těleso minul (lze vrátit zcela průhledný fragment? asi jen poblíž obrysu tělesa..) kvůli této variantě je lepší přesné těleso zabalit do větší GPU geometrie N...

Lepší aproximace difusního světla konstantní ambient člen není dost dobrý nezohledňuje zastínění daného bodu okolím (ani vlastním objektem) prohlubně na povrchu jsou stejně jasné jako výčnělky předem se dá spočítat, kolik okolního světla průměrně do daného bodu dopadá...

Předzpracování: světelná přístupnost pro každý bod na povrchu tělesa spočítám předem: kolik procent paprsků z okolí na něj může dopadnout (tj. není zastíněno jinými částmi vlastního tělesa) dominantní směr, odkud je bod osvětlován (odkud je nejlépe vidět ) vektor B technika: např. Ray-tracing nebo speciální GPU výpočet 23% B 1 B 2 100%

Použití mapy přístupnosti využití koeficientu přístupnosti: multiplikativní faktor okolního světla ( ambient term ) mohu použít místo statické konstanty k A využití dominantního vektoru B : z předem spočítané světelné mapy okolí ( environment light map ) vyberu směrovou vstupní složku pro difusní osvětlení světelná mapa je předem rozmazána faktorem cos α data z textury ještě vynásobím koeficientem přístupnosti

Koncentrace světla ( kaustiky ) tyto efekty vznikají lomem nebo odrazem světla na zakřiveném povrchu (viz optika, čočky) vodní hladina, sklenička s nápojem, konkávní lesklý předmět, přesný výpočet je časově náročný přímé ( light tracing ) nebo zpětné ( Monte-Carlo ray tracing ) sledování paprsku v omezených podmínkách se kaustické plochy dají počítat na GPU geometricky jednoduchá plocha přijímající kaustiku (např. rovina)

V 1 V 2 V 3 V 4 V 5 Transformace trojúhelníků každý vrchol souvislé trojúhelníkové sítě se transformuje podle optických zákonitostí (odraz / lom) trojúhelníky se rasterizují na ploše příjemce (jednoduchá geometrie!) je třeba zajistit různou optickou hustotu jednotlivých trojúhelníků (roztažené jsou řidší a naopak)

Kreslení kaustiky optická hustota záleží na druhé derivaci zdrojové plochy ( křivost ) vertex program může křivost spočítat a propagovat ji do fragmentů fragmenty podle ní určí svoji neprůhlednost ( opacity ) výsledek kaustic. efektu se kreslí do světelné textury světelná textura se při běžném zobrazování mapuje na plochu příjemce (2D nebo projektivní mapování) moderní HW s vertex mapami : až fragmenty mohou generovat zalomené paprsky polotovar se nakreslí pomocí point sprites / trojúhel. sítí

Transformace fragmentů fragment spočítá svůj zalomený / odražený paprsek výsledek (bod dopadu na ploše příjemce) zapíše do výstupní textury tato textura je zdrojem geometrických dat pro další průchod ( vertex texture ) F 1 F 20 F 45 F63 F 82 1. fragment projection 2. point sprites (triangle mesh)

Literatura Tomas Akenine-Möller, Eric Haines: Real-time rendering, 2 nd edition, A K Peters, 2002, ISBN: 1568811829 ed. Randima Fernando: GPU Gems, Addison- Wesley, 2004, ISBN: 0321228324 ed. Matt Pharr: GPU Gems 2, Addison-Wesley, 2005, ISBN: 0321335597