RAYTRACING. Ondra Karlík (Keymaster)



Podobné dokumenty
Zobrazování a osvětlování

Fotonové mapy. Leonid Buneev

Surfels: Surface Elements as Rendering Primitives

Distribuované sledování paprsku

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

Rekurzivní sledování paprsku

Počítačová grafika III Úvod

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

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

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

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

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

Počítačová grafika III Úvod

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

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

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

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

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ě

Odraz světla, BRDF. Petr Kadleček

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

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

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

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Zobrazování 3D scény metodou raytracingu Pavel Lokvenc

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra

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

Vývoj počítačové grafiky

Reprezentace 3D modelu

Reprezentace bodu, zobrazení

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

Vývoj počítačové grafiky. Tomáš Pastuch Pavel Skrbek

GIS Geografické informační systémy

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

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

Základní raytracing Detaily implementace Distribuovaný raytracing Další globální zobrazovací metody Galerie Literatura. Raytracing

LIGHTS AND SHADOWS SCENE ILLUMINATION RADIOSITY HDRI

Základy vizualizace. Výpočetní metody

Název: VY_32_INOVACE_PG3314 Rendering - vykreslení vytvořené scény. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

0.1 Úvod do matematické analýzy

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

1. Polotóny, tisk šedých úrovní

Detekce kolizí v 3D Josef Pelikán KSVI MFF UK Praha

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

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

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

Rozdělení přístroje zobrazovací

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

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

Global illumination with many-light methods. Martin Kahoun (2011)

Precomputed radiance transfer

Matematika (KMI/PMATE)

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

Moderní systémy pro získávání znalostí z informací a dat

Radiometrie, radiační metody

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY SLEDOVÁNÍ PAPRSKU POMOCÍ K-D TREE RAY TRACING USING K-D TREE

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

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

Odraz světla na rozhraní dvou optických prostředí

Aplikovaná optika I: příklady k procvičení celku Geometrická optika. Jana Jurmanová

Fotonové mapy. Martin Bulant 21. března Fotonové mapy jsou podobné obousměrnému sledování cest, ale odlišují se tím,

GIS Geografické informační systémy

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

Název: VY_32_INOVACE_PG3311 Kamera a její použití, světelné efekty. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Optimalizace externího renderovacího systému V-Ray v programu Autodesk 3ds Max

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

ICT podporuje moderní způsoby výuky CZ.1.07/1.5.00/ Matematika planimetrie. Mgr. Tomáš Novotný

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

P L A N I M E T R I E

Algoritmy pro shlukování prostorových dat

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Další polohové úlohy

1 3D snímání: Metody a snímače

Vojtěch Hrubý: Esej pro předmět Seminář EVF

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

Rozvinutelné plochy. tvoří jednoparametrickou soustavu rovin a tedy obaluje rozvinutelnou plochu Φ. Necht jsou

STEREOMETRIE. Odchylky přímek. Mgr. Jakub Němec. VY_32_INOVACE_M3r0114

OPTIMALIZACE. (přehled metod)

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

Vizualizace 3d designu ve strojírenství

Terestrické 3D skenování

Úvod do mobilní robotiky AIL028

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

Počítačový model plazmatu. Vojtěch Hrubý listopad 2007

Počítačová grafika III Photon mapping. Jaroslav Křivánek, MFF UK

Dvojštěrbina to není jen dvakrát tolik štěrbin

JEVIŠTNÍ PERSPEKTIVA TABULKA 19

Algoritmizace prostorových úloh

Digitální fotografie

Moderní metody rozpoznávání a zpracování obrazových informací 15

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Geometrická optika. předmětu. Obrazový prostor prostor za optickou soustavou (většinou vpravo), v němž může ležet obraz

DIGITÁLNÍ FOTOAPARÁT VÝUKOVÝ MATERIÁL PRO 4. ROČNÍK

Kombinatorická minimalizace

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Počítačová grafika III Photon mapping. Jaroslav Křivánek, MFF UK

Opakování k maturitě matematika 4. roč. TAD 2 <

X39RSO/A4M39RSO. Integrace a syntéza obrazu pomocí metody Monte Carlo. Vlastimil Havran, ČVUT v Praze

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

Analýza obrazu II. Jan Macháček Ústav skla a keramiky VŠCHT Praha

Výsledky = = width height 3 width height R + G + B ( )

Transkript:

RAYTRACING Ondra Karlík (Keymaster)

O MNĚ Ondra Karlík (Keymaster) Čerstvě Bc. na FEL ČVUT v Praze ;) Bakalářská práce: Využití generického programování v raytracingu Vlastní renderer: K-Ray (pracovní název) Kontakt ICQ: 125-171-564 web: http://keymaster.cz Maxarea: nick Keymaster

O PŘEDNÁŠCE Motto: Co se stane, když stisknete F9 Obsah: 1. Princip raytracingu, konkurenční metody 2. Jednoduchý raytracer 3. Metoda Monte Carlo 4. Složitější efekty - stíny, area lights, HDRI, reflexe, refrakce, glossy efekty,... + Optimalizace

GENEROVÁNÍ OBRAZU Úkol: ze scény (soubor objektů, světel, materiálů) vyrenderovat obrázek Různé přístupy Nejvíce používané: Přímá rasterizace (rychlé, nekvalitní - hry - GPU) Raytracing (pomalé, kvalitní - VFX - CPU)

PŘÍMÁ RASTERIZACE OpenGL, Direct3D - hry, realtime aplikace Postupně se každý trojúhelník transformuje (promítne) z 3D světa do 2D obrazu Zobrazí se vždy nejbližší objekt ke kameře Nerespektuje fyzikální principy reálného světa Jednoduché materiály zobrazí stejně kvalitně jako raytracing (viz Furry ball ;)) Neumí: reflexe, refrakce, ostré stíny, area lights, DOF,...

RAYTRACING Pomalejší (ale lépe zvládá mnoho polygonů) Napodobuje reálný svět možno simulovat spoustu realistických efektů Využíván v GI rendererech (V-Ray, Mental Ray, FinalRender, Maxwell,...), ne ve Scanline

VIDĚNÍ V REÁLNÉM SVĚTĚ 1. Fotony (částice světla) jsou emitovány ze světel 2. Pak cestují po scéně, odrážejí se, jsou pohlcovány,... 3. Nakonec některé dopadnou do senzoru (oko, CCD,...) vytvoří obraz Každý foton má barvu Více fotonů = větší intenzita světla

SIMULACE RAYTRACINGEM Simulujeme reálné světlo v počítači Foton extrémně malý, jsou jich miliardy miliard místo fotonů paprsky Paprsek Idealizovaný tenký svazek fotonů Může mít přiřazenou libovolnou energii stačí řádově méně Jen zlomek paprsků ze světel zasáhne snímač obrátíme směr chodu paprsků (fyzikálně korektní) - generování v kameře

SCÉNA Připraví se před samotným raytracingem Data potřebná k vytvoření obrazu Primitiva Materiály Textury Světla Environment Pozice kamery

OBJEKT - PRIMITIVE Cokoliv, pro co umíme najít průsečík s paprskem Data - pozice, rozměry, materiál,... + algoritmus (postup) nalezení průsečíku Trojúhelník, koule, plocha, kvádr, instance,... Typicky: 3D studio rozbije celou scénu na trojúhelníky po meshsmoothu bez struktury (bez objektů, skupin,...) - triangle soup

PRINCIP RAYTRACINGU 1. Vystřelí se paprsky z kamery 2. Zjistí se kam dopadnou 3. Pro místo dopadu se vypočítá barva

CAMERA OBSCURA Nejjednodušší možný fotoaparát Malým otvorem prochází světlo, které vytvoří na stínítku ostrý obraz Díky jednoduchosti se nejčastěji simuluje v CG

TVORBA PAPRSKŮ Nejjednodušší případ: simulace Camera obscura Z parametrů kamery se určí počátek a image plane Paprsek jde z počátku skrz pixelem v image plane Pro každý pixel: 1 paprsek skrz jeho střed

SLEDOVÁNÍ PAPRSKU Hledání nejbližšího průsečíku Naivní algoritmus: 1. otestovat všechny objekty 2. vybrat nejbližší nalezený průsečík Hledání nejde zastavit po nalezení prvního průsečíku: Obrovská časová složitost, jde řešit lépe

VÝPOČET BARVY (SHADING) Konverze průsečík paprsku barva Mnoho různých možností: Stínování podle normály Stínování podle hloubky Phongův model Realistické materiály...

STÍNOVÁNÍ PODLE NORMÁLY Odstín šedé přímo úměrný úhlu mezi normálou povrchu a dopadlým paprskem Nebere vůbec v úvahu světla, materiál povrchu,...

NORMÁLY Normála = kolmice na povrch v daném bodě Polygony na zakřivených plochách: interpolace z normál vrcholů

STÍNOVÁNÍ PODLE HLOUBKY Odstín šedé přímo úměrný vzdálenosti od kamery V rendererech typicky jako render element (z-depth)

PHONGŮV MODEL 1973 - Bui Tuong Phong Široce rozšířený Hry - OpenGL 3ds MAX - Scanline renderer (Standard material) Uvažuje světla, normálu povrchu, vlastnosti materiálu Rychlý, nerealistický

PHONGŮV MODEL Osvětlení rozložené do tří složek Difůzní a spekulární složka: pro každé světlo zvlášť, výsledky se sečtou

REKAPITULACE 1. Kamera vytvoří 1 paprsek na pixel 2. Najde se nejbližší průsečík hrubou silou 3. Vypočítá se osvětlení pomocí Phongova modelu podle světel ve scéně Výsledek:

AKCELERAČNÍ STRUKTURY Problém: hledání průsečíku je pomalé 1 obrázek: ~ 100 000 000 paprsků 1 paprsek hrubou silou: ~ 1 000 000 testů primitiv Celkem tedy ~ 100 000 000 000 000 testů Stovky hodin i pro jednoduché scény Pro nalezení průsečíku není třeba testovat všechny objekty Řešení: akcelerační struktura Uniform grid Bounding volume hierarchy KD-Tree (nejrychlejší, nejpoužívanější)

UNIFORM GRID Scéna se rozdělí na rovnoměrné buňky tvořící 3D mřížku Každý objekt se zařadí do buňky, kam patří Paprsek putuje skrz buňky, protíná se jen s geometrií dané buňky

UNIFORM GRID

UNIFORM GRID

UNIFORM GRID

UNIFORM GRID

UNIFORM GRID

UNIFORM GRID

UNIFORM GRID

UNIFORM GRID

BOUNDING VOLUME HIERARCHY Scéna tvořena hierarchií do sebe vnořených obálek - bounding boxů Uvnitř obálky: 2 další obálky, nebo několik primitiv Když paprsek neprotne bounding box netřeba testovat cokoliv uvnitř Složitost nalezení průsečíku je logaritmicky úměrná počtu polygonů

KDYŽ SE ŘEKNE LOGARITMICKÁ... Logaritmická funkce: opak exponenciální Exponenciální (geometrická řada) roste extrémně rychle logaritmická roste extrémně pomalu 2 více objektů = pouze 1 krok navíc 10 poly...4 kroky 100 poly...7 kroků 1 000 poly...10 kroků 1 000 000 poly... 30 kroků 4 000 000 poly... 32 kroků 10 000 000 poly... 34 kroků

AKCELERAČNÍ STRUKTURA Před renderingem se staví (může trvat dlouho) V-Ray: hláška Building static raycast accelerator Kvalitně postavená struktura limitem pro polycount je RAM, ne CPU Srovnání v K-Ray: scéna: A-10 1M poly 1024 1024px, 3 AA bez struktury: ~200 hodin s BVH: 9 vteřin

STÍNY Problém: chybějící stíny vytvářejí nerealistický obraz Řešení: než započítáme příspěvek světla, oveříme viditelnost - netriviální úloha

STÍNY Ověření viditelnosti: opět hledání průsečíku Shadow ray vystřelen z povrchu ke každému světlu Jakýkoliv průsečík mezi povrchem a světlem stín Toto prodlužuje render (problém: hodně světel)

REFLEXE A REFRAKCE Jak udělat zrcadlové odrazy? Řešení: podle reálného světa - simulace dokonalého odrazu paprsků

REFLEXE V PRAXI Z povrchu se vystřelí 1 dodatečný paprsek Ten se vystínuje stejně, jako kdyby šel z kamery Toto se může víckrát opakovat, omezeno hloubkou zanoření (např. Max Depth ve V-Ray)

REFLEXE V PRAXI Z povrchu se vystřelí 1 dodatečný paprsek Ten se vystínuje stejně, jako kdyby šel z kamery Toto se může víckrát opakovat, omezeno hloubkou zanoření (např. Max Depth ve V-Ray)

REFLEXE V PRAXI Z povrchu se vystřelí 1 dodatečný paprsek Ten se vystínuje stejně, jako kdyby šel z kamery Toto se může víckrát opakovat, omezeno hloubkou zanoření (např. Max Depth ve V-Ray)

HÁDANKA Chci vypočítat obsah kruhu Neznám π, daný vzorec, integrální počet, ani Google ;) NÁPADY?

HÁDANKA Chci vypočítat obsah kruhu Neznám π, daný vzorec, integrální počet, ani Google ;) Řešení: Monte Carlo!

OBSAH KRUHU Nakreslím kruh na zem, opíšu mu čtverec

OBSAH KRUHU Nakreslím kruh na zem, opíšu mu čtverec Do čtverce náhodně naházím kamínky Procento kamínků uvnitř kruhu = procento obsahu čtverce, který vyplnil kruh

METODA MONTE CARLO Matematická metoda Umožňuje odhadnout to, co umíme spočítat jen lokálně, ne globálně Místo výpočtu přesné hodnoty veličiny vypočítám několik vzorků, ze kterých odhadnu výsledek Široké využití v renderingu: Antialiasing, DOF, Motion blur Area lights Glossy efekty GI Všechno, co produkuje šum

MONTE CARLO Sample = bod, pro který počítáme veličinu V raytracingu typicky 1 sample = 1 paprsek Příklad: ambient occlusion Přesný globální výpočet míry zastínění neumíme Umíme vypočítat lokální zastínění v jednom směru (vyšleme shadow ray) Vyšleme několik paprsků do různých směrů

MONTE CARLO - SAMPLOVÁNÍ Monte Carlo je nepřesné Průměrná odchylka se snižuje s počtem samplů zhruba: 4 více samplů 2 menší odchylka Rozmístění samplů ovlivňuje odchylku Pravidelné samply způsobují artefakty Náhodné samply způsobují šum Nejlepší: kombinace - pseudonáhodné samply

ANTI-ALIASING Problém: barva paprsku se počítá jen pro bod (nekonečně malá plocha) barva pixelu musí odrážet průměr barvy na celé jeho ploše 1 paprsek na pixel artefakty (aliasing)

ANTI-ALIASING Řešení: Monte Carlo: více paprsků skrz 1 pixel, výsledek zprůměrovat Pravidelné samply nejsou vhodné, nejlepší jsou pseudonáhodné

ROZOSTŘENÉ REFLEXE V reálném světě: nedokonalé, rozostřené reflexe Simulace: vystřelíme více paprsků, zprůměrujeme Střílí se primární paprsky, ty jsou složité pomalé

MOTION BLUR Příčina vzniku: po dobu otevření závěrky není scéna statická, objekty se pohybují Simulace: vystřelíme více paprsků v náhodném čase, zprůměrujeme

DEPTH OF FIELD Simulace složitější kamery: thin lens camera Vystřelí se opět více paprsků Počátek: ne 1 bod, ale náhodná pozice na kruhovém disku Směr: paprsky ze všech míst na disku se protnou v místě fokusu

AREA LIGHTS Bodová světla v reálném světě neexistují Plošné světelné zdroje: větší realismus Výpočet zastínění: Bodové světlo: jen 2 stavy - světlo/stín Plošné světlo: podíl zastínění

AREA LIGHTS Analytický výpočet stínů: extrémně komplikovaný Výpočet metodou Monte Carlo: ke světlu se vystřelí více paprsků (samplů) - delší výpočet

AREA LIGHTS SAMPLING Osvětlení přes několik samplů = defacto náhrada area light za několik point light Důležitost náhodného samplování: Fixní náhrada Pokaždé jiné náhodné vzorky Více samplů kvalitnější stíny, delší výpočetní čas Větší plocha světla větší šum

HDRI ENVIRONMENT Stejný princip jako u area lights HDR mapa se nahradí pokaždé jinými náhodnými bodovými světly Světla mají barvu a intenzitu mapy v daném místě Více světel se nageneruje ve světlých místech

MULTIDIMENSIONAL SAMPLING Příklad: chceme Area lights, AA, DOF - všechno po 10 samplech Naivní přístup: Máme 10 samplů na pixel, pro každý 10 paprsků kvůli DOF. A pro každý průsečík potřebujeme 10 shadow rayů. Celkem ~1000 paprsků Lepší přístup: Máme 10 samplů na pixel, pro každý z nich zvolíme náhodný počátek paprsku (DOF). Pro každý průsečík vystřelíme jen 1 náhodný shadow ray. Celkem 10 paprsků Obě metody konvergují zhruba stejně rychle

CO SE NESTIHLO :( Global Illumination Princip Monte Carlo - pathtracing Předpočítané data - IRR, Photon mapping Instancování SSS, Volumetrie, Subdivision displacement Rozbor paměťové náročnosti Zase někdy příště ;)