Sledenje žarku ray tracing

Podobni dokumenti
Metoda globalne osvetlitve Simulacija svetlobnih žarkov naravna osvetlitev odboji lom svetlobe mehke sence globinska ostrina zabrisano gibanje Uporaba

7. VAJA A. ENAČBA ZBIRALNE LEČE

M

VAJE

Vrste

ANALITIČNA GEOMETRIJA V RAVNINI

3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja

Datum in kraj

Halogenske žarnice (Seminarska) Predmet: Inštalacije HALOGENSKA ŽARNICA

Predtest iz za 1. kontrolno nalogo- 2K Teme za kontrolno nalogo: Podobni trikotniki. Izreki v pravokotnem trikotniku. Kotne funkcije poljubnega kota.

Vektorji - naloge za test Naloga 1 Ali so točke A(1, 2, 3), B(0, 3, 7), C(3, 5, 11) b) A(0, 3, 5), B(1, 2, 2), C(3, 0, 4) kolinearne? Naloga 2 Ali toč

CpE & ME 519

Fizikalne osnove svetlobe

resitve.dvi

GRAFIČNA KARTICA UVOD: Grafična kartica skrbi za prikaz slike na računalniškem monitorju. VHODNI SIGNAL: Grafična kartica pošlje katodni cevi monitorj

P181C10111

DELOVNI LIST ZA UČENCA

MATEMATIKA 2. LETNIK GIMNAZIJE G2A,G2B Sestavil: Matej Mlakar, prof. Ravnatelj: Ernest Simončič, prof. Šolsko leto 2011/2012 Število ur: 140

Microsoft Word - Astronomija-Projekt19fin

RAČUNALNIŠKA ORODJA V MATEMATIKI

Osnove statistike v fizični geografiji 2

Microsoft Word - avd_vaje_ars1_1.doc

Navodila za pisanje diplomskih nalog UM FERI

Vizualizacija medicinskih volumetricnih podatkov v realnem casu

Microsoft PowerPoint - Java-rekurzija.ppt

1. izbirni test za MMO 2018 Ljubljana, 16. december Naj bo n naravno število. Na mizi imamo n 2 okraskov n različnih barv in ni nujno, da imam

Acrobat Distiller, Job 30

PRIPRAVA NA 1. Š. N.: KVADRATNA FUNKCIJA IN KVADRATNA ENAČBA 1. Izračunaj presečišča parabole y=5 x x 8 s koordinatnima osema. R: 2 0, 8, 4,0,,0

2. izbirni test za MMO 2017 Ljubljana, 17. februar Naj bosta k 1 in k 2 dve krožnici s središčema O 1 in O 2, ki se sekata v dveh točkah, ter

FAKULTETA ZA STROJNIŠTVO Matematika 2 Pisni izpit 9. junij 2005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite bese

Osnove matematicne analize 2018/19

VEKTORSKO BARVANJE in SENČENJE Za predstavitev ideje se v arhitekturi uporabljata 2 načina: - Klasična predstavitev z načrti - Vizualizacije Risanje n

Rešene naloge iz Linearne Algebre

Prevodnik_v_polju_14_

Srednja šola za oblikovanje

Poglavje 3 Reševanje nelinearnih enačb Na iskanje rešitve enačbe oblike f(x) = 0 (3.1) zelo pogosto naletimo pri reševanju tehničnih problemov. Pri te

PREDMETNI KURIKULUM ZA RAZVOJ METEMATIČNIH KOMPETENC

P182C10111

glava.dvi

7. tekmovanje v znanju astronomije 8. razred OŠ Državno tekmovanje, 9. januar 2016 REŠITVE NALOG IN TOČKOVNIK SKLOP A V sklopu A je pravilen odgovor o

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Refraktorski teleskop in mikroskop v kompletu Tasco Kataloška

Slikovne transformacije_2017_18_DKT

FGG14

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig

OpenGL SuperBible, Graham Sellers, Richard S. Wright, and Nicholas Haemel, 6 th edition, 2014 Poenostavljen cevovod

Oblikovanje 3D scene in spletnega vodi\unhbox \bgroup \let \unhbox \setbox \hbox {c\global \mathchardef

Mere kompleksnih mrež (angl. Network Statistics) - Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike

SESTAVA VSEBINE MATEMATIKE V 6

FGG13

Microsoft Word - Analiza rezultatov NPZ matematika 2018.docx

Slide 1

Poslovilno predavanje

Mladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015

lenses PRIROČNIK za uporabo kontaktnih leč Sentina

UNIVERZA NA PRIMORSKEM

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Strokovni izobraževalni center Ljubljana, Srednja poklicna in strokovna šola Bežigrad PRIPRAVE NA PISNI DEL IZPITA IZ MATEMATIKE 2. letnik nižjega pok

Univerza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in računalništvo Enopredmetna matematika IZPIT IZ VERJETNOSTI IN STA

Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

LABORATORIJSKE VAJE IZ FIZIKE

Microsoft PowerPoint - Mocnik.pptx

Matematika 2

Fotorealistična animacija ognja v animacijskem paketu Blender

3. Preizkušanje domnev

FIZIKA IN ARHITEKTURA SKOZI NAŠA UŠESA

VAJE

Delavnica Načrtovanje digitalnih vezij

resitve.dvi

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

Univerza v Ljubljani Naravoslovnotehniška fakulteta Oddelek za tekstilstvo Sledenje pogledu (Eye tracking) Seminarska naloga pri predmetu Interaktivni

Diapozitiv 1

INDIVIDUALNI PROGRAM PREDMET: MATEMATIKA ŠOL. LETO 2015/2016 UČITELJ: ANDREJ PRAH Učenec: Razred: 7. Leto šolanja: Ugotovitev stanja: Učenec je lani n

Fizika2_stari_testi.DVI

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

O Č E S N I C E N T E R ODPRAVA DIOPTRIJE ŽIVLJENJE BREZ OČAL IN KONTAKTNIH LEČ

Microsoft Word - M

PowerPoint Presentation

Požarna odpornost konstrukcij

15. Seminar Optične Komunikacije Laboratorij za Sevanje in Optiko Fakulteta za Elektrotehniko Ljubljana, 30.jan - 1.feb 2008 Osnovne omejitve svetlobn

Funkcije in grafi

1 Naloge iz Matematične fizike II /14 1. Enakomerno segreto kocko vržemo v hladnejšo vodo stalne temperature. Kako se spreminja s časom temperat

Zgledi:

Univerza v Novi Gorici Fakulteta za aplikativno naravoslovje Fizika (I. stopnja) Mehanika 2014/2015 VAJE Gravitacija - ohranitveni zakoni

2

Microsoft PowerPoint - Prevod SIOEN prezentacije

Opisi območij rezultatov NPZ

Popravki nalog: Numerična analiza - podiplomski študij FGG : popravljena naloga : popravljena naloga 14 domače naloge - 2. skupina

MERJENJE GORIŠČNE RAZDALJE LEČE

Microsoft PowerPoint - 07-bostjan_tavcar.ppt

Fakulteta za elektrotehniko,

Navodila za vgradnjo in montažo Podzemni univerzalni zbiralnik BlueLine II Firma in sedež prodajalca in pooblaščenega serviserja: PROSIGMA PLUS d.o.o.

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

PROSIGMA PLUS d.o.o., Limbuška 2, 2341 Limbuš Tel: Fax: DŠ: SI Tehnična do

Microsoft Word - M docx

DN5(Kor).dvi

Lehmerjev algoritem za racunanje najvecjega skupnega delitelja

PowerPointova predstavitev

Naslovna stran

Transkripcija:

Sledenje žarku ray tracing

Metoda globalne osvetlitve Simulacija svetlobnih žarkov naravna osvetlitev odboji lom svetlobe mehke sence globinska ostrina zabrisano gibanje Uporaba v animaciji, filmih/reklamah, simulaciji v zadnjem času prehod v realnočasovno sledenje s strojnim pospeševanjem Disney/Pixar: Cars 2 Control Sledenje žarku

Metanje žarka (ray casting) le en žarek, ni odbojev Appel 1968 Sledenje žarku (ray tracing) zrcalni odboji, prosojnost in lom svetlobe Whitted 1980 Sledenje poti (path tracing) difuzni in zrcalni odboji stohastičen algoritem Kajiya 1986 Metode, ki temeljijo na sledenju žarkom svetlobe PBRT Gallery

Sledenje žarku kako Realnost: žarke generirajo svetlobni viri in potujejo do očesa za tovrsten izračun moramo slediti veliko žarkom, le malo pa jih pride do očesa Oko Slika Luč Žarki svetlobe Obrnemo situacijo: Predmet sledimo žarkom od očesa preko vseh pikslov v sliki in gledamo kam se zaletijo Luč Slika Oko Predmet

Metanje žarka: je prvi del algoritma sledenja žarku, uporablja se tudi pri prikazu polnih teles (CSG) upodabljanju volumetričnih podatkov odstranjevanju zakritih površin Koncept: sledimo žarku svetlobe od očesa do presečišča s prvim predmetom en žarek skozi vsak piksel v končni sliki v presečišču s predmetom izračunamo barvo z osvetlitvenim modelom če žarek ne seka nobenega predmeta, je piksel črn Metanje žarka ray casting gledalec (kamera) Luč ravnina gledanja (slika) predmeti

Metanje žarka ray casting // okvirni algoritem Image image = new Image (width, height) ; for (int i = 0 ; i < height ; i++) for (int j = 0 ; j < width ; j++) { } return image ; Ray ray = RayThruPixel (cam, i, j) ; Intersection hit = Intersect (ray, scene) ; image[i][j] = FindColor (hit) ; gledalec (kamera) Luč predmeti ravnina gledanja (slika)

Kako za nek piksel slike izračunati smer žarka Konstrukcija žarka: koordinatni system kamere je u, Ԧv, w slika (velikosti n x n y ) je pravokotna na w kamere in na razdalji d od kamere koordinate (u, v, w) piksla (i, j) v koordinatah kamere so: u = l + r l i+0.5 n x v = b + t b j+0.5 n y w = d izvor žarka je e smer žarka: Ԧd = uu + v Ԧv dw piksel na sliki: p = e + Ԧd Parametrična enačba žarka: r t = e + t p e = e + t Ԧd w gledalec (kamera) Konstrukcija žarka e Ԧv u Ԧd l p r t b ravnina gledanja (slika)

Kako ugotovimo ali in kje žarek preseka predmet? odvisno od prestavitve predmeta poligoni, parametrična itn. Žarek je predstavljen parametrično kot Luč Preseki predmeti r t = e + t Ԧd Iščemo torej vrednost t pri kateri žarek preseka nek predmet najmanjši t > 0 bo najbližji presek Iskanje presekov je najbolj časovno zahteven del pri tej metodi in iz nje izpeljanih (npr. sledenje žarku) gledalec (kamera) ravnina gledanja (slika)

Enostaven primer se večkrat uporablja, saj krogla pogosto predstavlja očrtano telo (bounding ball) predmeta Kroglo implicitno predstavimo kot: p c p c r 2 = 0 Vstavimo enačbo žarka e + t Ԧd c e + t Ԧd c r 2 = 0 t 2 Ԧd Ԧd + 2t Ԧd e c + e c e c r 2 = 0 e Ԧd Presek s kroglo c

Rešimo kvadratno enačbo Presek s kroglo Ԧd e c ± Ԧd e c 2 Ԧd Ԧd e c e c r 2 Ԧd Ԧd 2 realni pozitivni ničli: manjša je prvi presek dvojna ničla: tangenta ena pozitivna ena negativna ničla: žarek se začne v krogli in gre ven kompleksni ničli: žarek ne seka krogle dovolj je, da pogledamo, če je izraz pod korenom negativen, da vemo ali žarek seka kroglo ali ne

Za izračun osvetlitve v točki preseka potrebujemo tudi normalo Pri krogli enostavno: točka preseka je p n = p c p c n p Presek s kroglo c

Presek s trikotnikom V težiščnem k.s. predstavimo točko p kot p = a + β b a + γ c a p = αa + βb + γc, α + β + γ = 1 Vstavimo enačbo žarka c e + t Ԧd = a + β b a + γ(c a) Dobimo sistem treh enačb (x, y, z) in treh neznank (t, β, γ), ki ga rešimo obstajajo učinkoviti pristopi, npr. algoritem Möller Trumbore a g b c-a b-a b p Če velja t > 0 in 0 < γ < 1 in 0 < β < 1 γ je točka znotraj trikotnika

Ostali preseki Algoritmov za določanje presekov je cela vrsta, ker je to časovno najbolj kritičen del algoritma metanja žarka (in vseh ostalih metod, ki sledijo žarkom) žarka stožci, valji, elipsoidi, kocke (veliko se uporabljajo za omejevanje bounding box)

Računati moramo presek z vsemi predmeti v sceni Vrnemo presek z najmanjšim t, ki je večji od 0 Algoritem: Intersect (ray, scene) { min_t=infinity; min_p=null; foreach (primitive in scene) { t=intersect(ray, primitive); if (t>0 && t<min_t) { min_p=primitive; min_t=t; } } return new Intersection(min_t, min_p); } Kako najti prvi presek v sceni

Metanje žarka - osvetlitev Ko najdemo presek žarka s prvim telesom, izračunamo še osvetlitev osvetlitev se torej računa v vsaki točki (pikslu slike) Osvetlitveni model izberemo, lahko je Phongov I = k a L a + L i k d L N + k s V R p gledalec (kamera) luč predmeti k a - ambientalna svetloba k d, k s - difuzna in zrcalna komponenta p zrcalni koeficient ravnina gledanja (slika) jakost luči L a, L i

Metanje žarka upošteva tudi sence v vsaki točki preseka pošljemo senčni žarek (shadow ray) proti vsaki luči za senčni žarek ponovno računamo preseke z vsemi predmeti v sceni če na poti senčnega žarka najdemo kak presek s predmetom, je točka v senci (V i = 0), sicer ni (V i = 1) I = k a L a + V i L i k d L N + k s V R p gledalec (kamera) Sence luč

Rasterizacija vs. metanje žarka Rasterizacija: Metanje žarka: OutputImage img foreach Polygon p: foreach Pixel pp in p: c=calculatecolor(pp) if Visible(pp) img[pp]=c OutputImage img foreach Pixel ip in img: ray=getray(ip) foreach Polygon p in Scene: t=findintersection(ray,p) mint=findifclosest(t) img[ip]=calculatecolor(mint)

Sledenje žarku Metoda globalne osvetlitve Osnova je metanje žarka Žarku sledimo tudi po prvem dotiku s predmetom v dve smeri: popolni odboj za zrcalne odboje prepuščeni žarek za prosojne materiale Pri obeh novih žarkih rekurzivno ponovimo celoten postopek sledenja seštevamo svetlobne prispevke žarkov gledalec (kamera) Turner Whitted 1980 senčni žarek prepuščeni žarek odbiti žarek

Kdaj rekurzijo pri nekem žarku ustavimo? ko žarek zadene luč (dobi barvo luči) ko žarek ne zadene ničesar (tema) Ta dva pogoja nista dovolj, omejiti moramo globino rekurzije koliko nivojev rekurzije rabimo? Odvisno od kompleksnosti scene, npr. 4 z večjo globino raste tudi kompleksnost, saj moramo slediti vse več žarkom in računati vse več presekov gledalec (kamera) s 3 r 1 s 1 Rekurzija t 1 s 2 t 3 r 3 r 2 t 2

Odboj Odbiti žarek računamo kot popolni odboj m = n n Ԧd Ԧs = Ԧd + m Ԧr = m + Ԧs = Ԧd + 2m = Ԧd 2n n Ԧd S n m S d - vstopni žarek Nov odbiti žarek je torej parametrično zapisan kot: odbiti žarek r p r t = p + t Ԧr

Prosojni materiali (steklo, voda itn.) prepuščajo svetlobo in jo tudi lomijo svetloba se upočasni, ko preide v bolj gost medij Velja Snellov zakon: η d sin θ d = η t sin θ t η d - lomni količnik v snovi vstopnega žarka η = η t - lomni količnik v snovi prepuščenega žarka hitrost svetlobe v vakuumu hitrost svetlobe v mediju η zrak ~1, η voda = 1,33, η steklo = 1,5 prepuščeni žarek t Lom svetlobe n vstopni žarek d d t P

Primer voda η = 1.333 hitrost svetlobe v vodi ~ 225056 km/s Zrak-voda Vstopni kot: θ i : 60 η d sin θ d = η t sin θ t Prepuščeni kot θ t : 40.53 v vodi je svetloba počasnejša, se lomi navznoter Voda-zrak (nazaj) Vstopni kot θ d : 40.53 Prepuščeni kot θ t : 60 na zraku je svetloba hitrejša, se lomi navzven Pri vstopu v hitrejši medij lahko pride do popolnega notranjega odboja ko je kot vstopne svetlobe prevelik Primer θ d voda Lom svetlobe wiki θ d θ t voda θ t zrak zrak

Smer prepuščenega žarka izpeljemo iz Lom svetlobe η d sin θ d = η t sin θ t Dobimo: n vstopni žarek Ԧd Ԧt = η d Ԧd n n Ԧd n 1 η 2 d 2 1 n Ԧd 2 η i η i d P t prepuščeni žarek Ԧt

Osvetlitev v točki računamo kot pri metanju žarka, le da prištejemo še deleže svetlobe I r in I t, ki pridejo od obeh novih žarkov (po rekurzivnem sledenju) I = k a L a + V i L i k d L N + k s V R p + s 1 Osvetlitev k r I r + k t I t I r rekurzivni zrcalni prispevek k r - zrcalni koeficient (Fresnel) I t rekurzivni prepustni prispevek k t - prepustni koeficient (Fresnel) Dejansko osvetlitev torej lahko izračunamo šele po koncu rekurzije s 3 s 2 t 1 r 1 t 3 r 3 r 2 t 2

Osnovni algoritem sledenja žarku ima pomanjkljivosti, izgled slik je precej umeten ostri robovi trde sence vse je v fokusu površine perfektno sijejo steklo perfektno prepušča svetlobo Veliko pomanjkljivosti odpravlja t.i. sledenje porazdeljenim žarkom - distribution/distributed ray tracing Cook, Porter, Carpenter, 1984 Namesto enega žarka delamo v vsaki fazi z več žarki (porazdelitev žarkov) Sledenje porazdeljenim žarkom

Mehčanje robov Namesto enega žarka iz očesa pošljemo skozi vsak piksel več žarkov supersampling fiksno število žarkov adaptivno (začnemo z majhnim številom, če so rezultati zelo različni, število povečamo) navadno žarke naključno stresemo (jitter) Končna barva piksla je uteženo povprečje barv vseh žarkov Dobimo bolj mehke prehode med ostrimi kontrasti (antialiasing) En žarek Več enakomerno porazdeljenih žarkov Več žarkov, naključno stresenih (jitter)

Mehčanje robov En žarek Več žarkov

Mehke sence Točkasta luč ni realističen model trde sence Luči naj zajemajo večjo površino površinska luč (area light) polsenca senca polsenca

Mehke sence V luč pošljemo več (nekoliko naključno porazdeljenih) senčnih žarkov, porazdeljenih po njeni površini, seštejemo doprinose število zadetkov/število žarkov = %osvetlitve

Mehki odboji Pri standardnem sledenju žarkov so odboji preveč podobni zrcalu idealni Zaradi grobosti materialov so v realnosti precej bolj zabrisani Idejo prenesemo tudi na odbite žarke; namesto enega jih ustvarimo več v (nekoliko naključnih) smereh uporabimo lahko lastnosti materiala (BRDF ali Phong) za določanje števila in smeri

Prosojnost - translucency Difuzna prozornost Kot za odbite žarke, lahko tudi pri prepuščenih žarkih ustvarimo več naključno porazdeljenih žarkov okoli idealnega žarka Dobimo efekt prosojnosti oz. polprozornosti

Globinska ostrina: področje okoli fokusne razdalje, v katerem je slika še vedno sprejemljivo ostra Globinska ostrina neostro fokus ostro neostro globinska ostrina Lord of the Rings, Newline Cinema

Globinska ostrina RG kamera: idealna, vsi žarki gredo iz ene točke (leča velikosti 0), vse je ostro ena točka v sceni = ena točka na sliki Leča: bolj realističen model, žarki razporejeni po leči ena točka na sceni = krožec na sliki, razen za točke v fokusni ravnini slika leča fokusna ravnina neostrinski krožec

Simuliramo jo s porazdelitvijo žarkov po površini leče Slika je postavljena na fokusno ravnino Primer na desni: idealna RG kamera: vsi žarki gredo iz B piksel D dobimo z žarkom BD piskel E dobimo z žarkom BE z globinsko ostrino: žarki so porazdeljeni po ravnini leče slika je na fokusni ravnini piksel D dobimo iz AD, BD, CD piskel E dobimo iz AE, BE, CE leča A B C Globinska ostrina fokusna ravnina slika E D

Zabrisano gibanje Zabrisano gibanje - motion blur žarke porazdelimo po času in povprečimo Predmeti, ki se premikajo, bodo zamegljeni

Sledenje žarkov - pohitritve Sledenje žarkov je počasna metoda, predvsem zaradi potrebe po računanju presekov Primer slika 1280x1024, 10 žarkov/piksel 1000 predmetov 3 nivoji rekurzije 39.321.600.000 testov presekov 1.000.000 testov/sekundo -> 10.9 ur! Moramo uporabiti metode za pohitritev!

Predmete očrtamo s hierarhijo teles, s katerimi lahko enostavno izračunamo preseke očrtana telesa (glej poglavje o tehnikah razdelitve prostora) če žarek ne seka očrtanega telesa, ne seka predmeta v njem Ko sledimo žarkom, začnemo pri korenu drevesa (celotna scena) in nadaljujemo proti predmetom v listih Hierarhije očrtanih teles (BVH)

Uporabimo lahko tudi druge tehnike razdelitve prostora (glej poglavje o tehnikah razdelitve prostora) navadna mreža, octree, BSP drevo, kd drevo Hierarhično računamo preseke žarka, dokler ne pridemo do posameznih primitivov (trikotnikov ipd.), s katerimi računamo presek Razdeljevanje prostora p2 2 1 p1 p9 p8 p4 p5 7 1 72 2 1 4 5 3 p6 p7 p3 4 1 6 7 8 3 4 2 7 1 7 2 5 9 5 6

S povečevanjem hitrosti in pojavom GPU prihajamo v čas, ko je sledenje žarku z ustreznimi kompromisi že mogoče v realnem času Nvidia RTX demo Nvidia OptiX API for real-time ray tracing Microsoft DXR API for real-time ray tracing Sledenje žarku v realnem času Metro Exodus: GeForce RTX Real-Time Ray Tracing (2018)

Sledenje žarka vs. prava globalna osvetlitev Sledenje žarka upoštevamo le zrcalne odboje Sledenje poti (path tracing) upoštevamo tudi difuzne odboje

P.H. Christensen et al. Ray Tracing for the Movie Cars J.P. Schulze: Introduction to Computer Graphics (slides) N. Guid: Računalniška grafika, FERI Maribor REFERENCE J.D. Foley, A. Van Dam et al.: Computer Graphics: Principles and Practice in C, Addison Wesley