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

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

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

Nalezněte hladiny následujících funkcí. Pro které hodnoty C R jsou hladiny neprázdné

1 Modelování systémů 2. řádu

2. Numerické výpočty. 1. Numerická derivace funkce

VYUŽITÍ MATLABU PRO PODPORU VÝUKY A PŘI ŘEŠENÍ VÝZKUMNÝCH ÚKOLŮ NA KATEDŘE KOMUNIKAČNÍCH A INFORMAČNÍCH SYSTÉMŮ

ω=2π/t, ω=2πf (rad/s) y=y m sin ωt okamžitá výchylka vliv má počáteční fáze ϕ 0

Metoda konečných prvků Charakteristika metody (výuková prezentace pro 1. ročník navazujícího studijního oboru Geotechnika)

Mechanické kmitání a vlnění

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

Rekurzivní sledování paprsku

NESTABILITY VYBRANÝCH SYSTÉMŮ. Úvod. Vzpěr prutu. Petr Frantík 1

Transformujte diferenciální výraz x f x + y f do polárních souřadnic r a ϕ, které jsou definovány vztahy x = r cos ϕ a y = r sin ϕ.

IVT. Rastrová grafika. 8. ročník

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

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

Nelineární úlohy při výpočtu konstrukcí s využitím MKP

Derivace funkce Otázky

Přehled veličin elektrických obvodů

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

Derivace funkce DERIVACE A SPOJITOST DERIVACE A KONSTRUKCE FUNKCÍ. Aritmetické operace

Derivace funkce. Přednáška MATEMATIKA č Jiří Neubauer

Mechanika s Inventorem

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

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

MATURITNÍ TÉMATA Z MATEMATIKY

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

Derivace goniometrických funkcí

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

3.2. ANALYTICKÁ GEOMETRIE ROVINY

Odpružená sedačka. Petr Školník, Michal Menkina. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

VEKTOROVÁ POLE Otázky

Reprezentace bodu, zobrazení

MATEMATIKA V MEDICÍNĚ

Zkouška ze Základů vyšší matematiky ZVMTA (LDF, ) 60 minut. Součet Koeficient Body

MATLAB PRO PODPORU VÝUKY KOMUNIKAČNÍCH SYSTÉMŮ

Odhad stavu matematického modelu křižovatek

Obsah. Kmitavý pohyb. 2 Kinematika kmitavého pohybu 2. 4 Dynamika kmitavého pohybu 7. 5 Přeměny energie v mechanickém oscilátoru 9

Diferenciální počet funkcí více proměnných

2. Vlnění. π T. t T. x λ. Machův vlnostroj

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

Rezonanční jevy na LC oscilátoru a závaží na pružině

Kreslení elipsy Andrej Podzimek 22. prosince 2005

Obrázek č. 7.0 a/ regulační smyčka s regulátorem, ovladačem, regulovaným systémem a měřicím členem b/ zjednodušené schéma regulace

Numerické metody. Numerické modelování v aplikované geologii. David Mašín. Ústav hydrogeologie, inženýrské geologie a užité geofyziky

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

Interpolace, aproximace

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

HDR obraz (High Dynamic Range)

( LEVEL 2 něco málo o matematickém popisu, tvorbě simulačního modelu a práci s ním. )

Distribuované sledování paprsku

4. Práce, výkon, energie a vrhy

Co je grafický akcelerátor

Příklady pro předmět Aplikovaná matematika (AMA) část 1

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

Vliv Mosteckého jezera na teplotu a vlhkost vzduchu a rychlost větru. Lukáš Pop Ústav fyziky atmosféry v. v. i. AV ČR

3.1. Newtonovy zákony jsou základní zákony klasické (Newtonovy) mechaniky

Vstupní signál protne zvolenou úroveň. Na základě získaných údajů se dá spočítat perioda signálu a kmitočet. Obrázek č.2

Fyzikální podstata zvuku

5. cvičení z Matematiky 2

VY_32_INOVACE_In 6.,7.13 Vzorce vložení funkce

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou

Buněčné automaty a mřížkové buněčné automaty pro plyny. Larysa Ocheretna

Fyzika - Sexta, 2. ročník

Derivace goniometrických. Jakub Michálek,

Extrémy funkce dvou proměnných

VEKTOROVÁ POLE VEKTOROVÁ POLE

9.2. Zkrácená lineární rovnice s konstantními koeficienty

(test version, not revised) 9. prosince 2009

Analýza a zpracování digitálního obrazu

I. Diferenciální rovnice. 3. Rovnici y = x+y+1. převeďte vhodnou transformací na rovnici homogenní (vzniklou

PRIMITIVNÍ FUNKCE. Primitivní funkce primitivní funkce. geometrický popis integrály 1 integrály 2 spojité funkce konstrukce prim.

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se

Katedra geotechniky a podzemního stavitelství

MATEMATIKA II - vybrané úlohy ze zkoušek ( 2015)

Zvuk. 1. základní kmitání. 2. šíření zvuku

Deformace rastrových obrázků

MATEMATIKA II - vybrané úlohy ze zkoušek v letech

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od

[obrázek γ nepotřebujeme, interval t, zřejmý, integrací polynomu a per partes vyjde: (e2 + e) + 2 ln 2. (e ln t = t) ] + y2

VY_32_INOVACE_INF.10. Grafika v IT

Matematika I A ukázkový test 1 pro 2014/2015

Simulace mechaniky tuhých těles v reálném čase

Studentská tvůrčí a odborná činnost STOČ D MODELY STROMŮ PRO VYUŽITÍ V REAL-TIME APLIKACI. Michaela Brázdilová

Precomputed radiance transfer

GIS Geografické informační systémy

PRIMITIVNÍ FUNKCE DEFINICE A MOTIVACE

9.7. Vybrané aplikace

Matematické modelování dopravního proudu

7. Derivace složené funkce. Budeme uvažovat složenou funkci F = f(g), kde některá z jejich součástí

Náhodné signály. Honza Černocký, ÚPGM

Vzorová písemka č. 1 (rok 2015/2016) - řešení

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

Diferenciální rovnice a jejich aplikace. (Brkos 2011) Diferenciální rovnice a jejich aplikace 1 / 36

Pavel Klavík. Katedra aplikované matematiky, Matematicko-fyzikální fakulta, Univerzita Karlova v Praze

Středoškolská technika SCI-Lab

Microsoft Excel kopírování vzorců, adresování, podmíněný formát. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

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

Transkript:

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

Obsah Simulace přírodních efektů Statické techniky Dynamické techniky Implementace Otázky a ukázky demoprogramů

Simulace přírodních efektů

Simulace přírodních efektů Snaha o co nejrealističtější zobrazení přírody okolo nás (té části, s kterou se denně setkáváme) Předmět zájmu: Tráva a jiné rostliny Voda (vodní hladina) Obloha (mraky, rozptylování světla v atmosféře, mlžný opar) Srst zvířat

Simulace přírodních efektů Předmětem simulace jsou většinou aktivní (měnící se) děje Dají se nějak matematicky popsat a zjednodušit, přičemž výsledek vypadá stále věrohodně Nechceme co nejpřesnější simulaci, cílem je co nejhezčí výsledek (z estetického hlediska)

Simulace přírodních efektů Některé děje se již delší dobu celkem věrohodně dají simulovat i na starších grafických kartách Mlha Statické mraky v dálce Jednotlivé rostliny s nepříliš složitou strukturou Jiné se dají zobrazovat na nejnovějším HW Vodní hladina odrážející i lámající světlo Dynamické mraky, kterými se dá realisticky prolétávat (jen některé typy)

Simulace přírodních efektů Ale stále existuje spousta problémů neřešitelných v reálném čase s uspokojivým výsledkem Dají se počítat offline, např. v animovaných filmech Tráva Srst zvířat Korektní lom světla u průhledých materiálů

Využití simulace Počítačové hry Virtuální realita??? Realtimová esteticky dobře vypadající simulace je dnes vhodná pouze pro vytváření virtuálních světů, ve kterých se člověk cítí jako doma Obdobně jako filmy - jde hlavně o komerční využití

Statické techniky zobrazování vodní hladiny

Statické techniky Pozor: Nejedná se o zobrazování nehybné hladiny Ale: děj je buď přímo periodický nebo dokážeme vždy spočítat jeho stav v libovolném čase Děj se chová dle nějaké jednoduché rovnice

Výhody Často jednoduchý výpočet Pro získání normál provedeme analytický výpočet Normály, binormály a tečny jsou přesné Můžeme celkem snadno kontrolovat úroveň detailů Stabilita

Nevýhody Špatně reaguje na změny v prostředí Není interaktivní Špatně se vytváří lokální změny (například kolem pobřeží)

Součet sinusoid Výpočetně jednoduché a přitom velmi uspokojivé výsledky Výsledek tvořen součtem sinusoid Velice jednoduchý výpočet normál, binormál a tečen Měníme pouze výšku hladiny

Vzorec Vzorec pro výpočet výšky: W(x,y,t) = A * sin(d (x,y) * w + t * φ) W výsledná výška vlny na pozici x,y v čase t A amplituda vlny D směr šíření vlny po povrchu w frekvence, w = 2π / L, kde L je délka vlny φ fázová konstanta, φ = S * 2π / L, S je rychlost pohybu vlny ve směru D

Vzorec Jedna vlna nám velmi efektivní výsledek nedá, ovšem kombinace několika již dává o mnoho lepší dojem Vzorec: H(x,y,t) = Σ Wi(x,y,t) Protože výsledná funkce je suma funkcí, derivace je též suma derivací jednotlivých funkcí

Derivace a tečny Parciální derivace podle x (obdobně y): d/dx(w(x,y,t)) = w * D.x * A * cos(d (x,y) * w + t * φ) Binormála: B(x,y) = (1, 0, d/dx(h(x,y,t)) Tečna: T(x,y) = (0, 1, d/dy(h(x,y,t))

Normála Normála: N(x,y) = B(x,y) x T(x,y) tedy N(x,y,t) = (-d/dx(h(x,y,t)),-d/dy(h(x,y,t),1)

Výhody a nevýhody Výpočet se dá zjednodušit několika mezivýpočty, takže počítání tečných vektorů a normály je velice nenáročné Tvar je dobrý pro simulování například klidného jezírka Reálné mořské vlny ovšem mají ostřejší vrcholky a širší údolí, to se dá zlepšit například vyšší mocninou funkce sinus: f(x) = 2((sin(x) + 1) / 2)^k

Gerstnerovy vlny Lepší tvar pro modelování mořských vln Dá se dobře kontrolovat ostrost Vrcholek vlny je aproximován více vrcholy, dno vlny je širší a je aproximováno méně vrcholy Vymyšleny dávno před dobou dnešních počítačů (F.J.Gerstner, 1802) pro simulaci vln na fyzikálním základu

Vzorec Pro naše účely budeme vycházet ze vzorce pro sinusové vlny: P(x,y,t) = ( x + Σ(QiAi * Di.x * cos(d (x,y) * wi + t * φi)), y + Σ(QiAi * Di.y * cos(d (x,y) * wi + t * φi)), Σ(Ai * sin(di (x,y) * wi + t * φi)))

Normála Uvádím pouze vzorec pro normálu, tečnu i binormálu si jistě každý sám dokáže dopočítat N(x, y, t) = ( - Σ(Di.x * wi * Ai * cos(d P * wi + t * φi)), - Σ(Di.y * wi * Ai * cos(d P * wi + t * φi)), 1 - Σ(Qi * wi * Ai * sin(di P * wi + t * φi)))

Vlastnosti Ostrost vrcholků je dána posunem vrcholů aproximující sítě směrem k vrcholku Koeficient Q udává strmost vln Pozor: strmost nesmí přesáhnout určitou mez, poté se začnou na vrcholku tvořit chyby Opět máme analyticky přesné normály, tečny i binormály

Dynamické techniky zobrazování vodní hladiny

Dynamické metody Hlavní požadavek: interaktivita Dokáží automaticky reagovat na změny ve virtuálním světě Výpočetně složitější pro větší vodní plochy Vhodné například pro lokální dopočítávání dohromady s nějakou statickou metodou

Buněčný automat Vycházíme ze hry života, čtvercová síť buněk, každá buňka je jeden bod na povrchu vody Buňky se navzájem ovlivňují Musí být nějaký počáteční impuls, jinak je hladina úplně klidná Ve chvíli, kdy známe stav systému v čase t, spočítáme stav v čase t+1 Můžeme dodávat další impulsy a ovlivňovat tak výsledek

Interaktivita Část sítě může mít jiné vlastnosti a působit tak jako například nějaká překážka či břeh V případě překážek celkem pěkně simuluje i Huygensův princip šíření vln

Algoritmus Každá buňka nese informace: Rychlost V Výška H Síla F (počítaná z výšek sousedů) Mezi buňkami působí pružiny o tuhosti k Pružiny táhnou buňky mezi sebou tak, aby se vyrovnaly jejich výšky

Vzorec Přecházíme ze známého stavu (V,H) v čase t do nového stavu (V',H') F = k * (H1 + H2 + H3 + H4 4 * H0) V' = V + c1 * F H0' = H0 + c2 * V' H2 c1 a c2 jsou koeficienty závislé na čase a hmotnosti H1 H0 H3 H4

Stabilita Prakticky se využívá pixel shaderů pro výpočet, což kvůli výkonu znamená diskretizaci na 8bitů Systém se může stát nestabilní Pro lokální výpočet stačí tlumený systém Pro globální systém se používá kombinace tlumený systém + dodávání energie z vnějšku Není stabilní, ale chování se dlouhodobě nemění Jednodušší a rychlejší než metody zachovávající stabilitu

Implementace

Implementace Efekt se skládá ze dvou částí: Animace vrcholů Animace na úrovni fragmentů Vertexové shadery dnes zvládají programy o několik řádů složitější než fragmentové shadery Pro animaci vertexů tedy můžeme využít mnohem složitější funkce Buněčný automat se naopak dobře implementuje do fragmentového shaderu

Implementace Vertex shader animuje přímo vrcholy, potřebujeme tedy metodu, která dává kvalitní tvar na horizontu např. Gerstnerovy vlny Fragment shader už nemění samotnou geometrii, nejsou tolik znát jemné detaily, ale potřebujeme aktivní nenáročnou metodu, která je stále v pohybu

Fragmentový shader Výsledkem shaderu je: výšková mapa (pro displacement mapping) normálová mapa (pro bump/environment mapping) Globální vlnění: sinusové vlny nebo buněčný automat (doplněný o dodávání energie) Buněčný automat pro dopočítání důležitých míst, například vlnění vytvořené pohybem uživatele

Fragmentový shader Práce probíhá na textuře nižšího rozlišení, např. 256x256 Pro globální vlnění se textura opakuje Pro lokální dopočítávání se přičítá další textura přes výsledek z ostatních Může se použít i více průchodů

Výsledek Normálová mapa se dá využít několika způsoby: Bumpmapping Environment mapping Odraz světla od hladiny (dynamický environment mapping) Lom světla (obdoba environment mappingu) Disperze světla

Otázky

Zdroje http://www.ati.com/developer/ http://developer.nvidia.com/ Randima Fernando: GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics, Addison-Wesley, 2004 Wolfgang F.Engel: Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks,Wordware Publishing, 2002