Základy počítačové grafiky
Téma přednášky
Prezentace přednášek
Ray-tracing
Ústav počítačové grafiky a multimédií
Motto
Obsah: • Realistická vizualizace. • Je realistická vizualizace možný? • Objektové vizualizační metody. • Obrazové vizualizační metody. • Komplexní vizualizační metody. • Vizualizační metody - shrnutí. • Reprezentace 3D scény a vizualizace. • Ray-tracing. • Back ray-tracing. • Algoritmus pro ray-tracing. • Ray-casting. • Osvětlovací model pro raytracing.
„Motto přednášky!“
Základy počítačové grafiky / Ray-tracing
3
Základy počítačové grafiky / Ray-tracing
• • • • • • • • •
Lom světla. Nevýhody ray-tracingu. Urychlování ray-tracingu. Obálky, hierarchie obálek. Dělení scény. Adaptivní antialiasing. Průsečík paprsku s koulí. Průsečík paprsku s rovinnou. Particle tracing.
4
Realistická vizualizace •
•
•
Je realistická vizualizace možná? Realistická (foto-realistický) vizualizace je proces tvorby obrazu scény ve fotografické kvalitě na základě počítačových 3D modelů. Posouzení realističnosti výsledků procesu vizualizace je subjektivní záležitostí člověka. Realističnost závisí na mnoha různých faktorech:
• • •
– Zjednodušená geometrie modelů. Chybí nepřesnosti, nepravidelnosti, nehomogenity … – Mezi objekty se uvažuje „vakuum“. – Zjednodušený model světla. Neuvažuje se kvantový a vlnový charakter světla. Zdroje jsou bodové nebo homogenní plošné. – Zjednodušený popis vlastností materiálu. Chybí nepřesnosti, nepravidelnosti, nehomogenity … – Povrch je geometricky hladký. Mikro a makro struktura realizována na úrovni textury …
– Geometrie objektů. – Definice prostředí (vzduch, mlha, vakuum, …). – Světlo (kvantový a vlnový charakter, plošné zdroje, …). – Vlastnosti materiálů (difuse, reflexe, lom, …). – Struktura povrchu (mikro a makro, drsnost, reliéf, isometrie, …). Základy počítačové grafiky / Ray-tracing
Skutečně realistická vizualizace NENÍ možná !!!!! Skutečnost je stochastická, ne empirická nebo matematická. Důvody:
5
Základy počítačové grafiky / Ray-tracing
Objektové vizualizační metody
Obrazové vizualizační metody
• Objekty scény jsou zpracovávány sekvenčně. • Nejsou vztahy mezi objekty:
• Pixely obrazu scény jsou zpracovávány sekvenčně. • Nejsou globální vztahy ve scéně:
– Nejsou stíny. – Není sekundární osvětlení (od objektů navzájem). – Nejsou odrazy.
Základy počítačové grafiky / Ray-tracing
6
– Ostré stíny. – Není sekundární osvětlení (od objektů navzájem).
7
Základy počítačové grafiky / Ray-tracing
8
Komplexní vizualizační metody
Vizualizační metody - shrnutí
• Scéna je zpracována celá najednou. • Velmi komplexní řešení. • Měkké stíny.
Základy počítačové grafiky / Ray-tracing
9
Reprezentace 3D scény a vizualizace
Objektové
Obrazové
Komplexní
Malá realističnost
Velká realističnost
Největší realističnost
Velmi rychlé (0.01-0.1s)
Pomalé (100-1000s)
Velmi pomalé (hodiny)
Žádné stíny
Ostré stíny
Měkké stíny
Řešení viditelnosti Z-buffer
Ray-tracing Ray-casting
Radiozita Particle tracing
CAD, 3D modelování, hry, virtuální realita
Real. zobrazení, architektura, design, filmy, medicína
Real. zobrazení, příprava scén pro real-time zobrazení.
Základy počítačové grafiky / Ray-tracing
Ray-tracing • Sledování paprsku - globální realistická obrazová metoda. • Paprsky se šíří od světelných zdrojů do scény (směr, barva, intenzita). • Některé paprsky zasáhnou objekty, kde se podle jejich optických vlastností lomí, odrážejí a rozptylují. • Obraz scény tvoří paprsky dopadlé na projekční plochu. • Potřebujeme body, které jsou zdrojem paprsků -> bodové zdroje světla -> ostré stíny. • Paprsky zajišťují světelné interakce objektů (odrazy). • Nedochází k přenosu světelné energie – vyzařování.
• Objemová reprezentace scény: – Metody reprezentace: • Vektorová – CSG. • Rastrová – Voxel modely.
– Metody vizualizace: • Obrazové. • Komplexní.
• Povrchová reprezentace scény - B-rep: – Metody vizualizace: • Objektové • Obrazové. • Komplexní.
Základy počítačové grafiky / Ray-tracing
10
11
Základy počítačové grafiky / Ray-tracing
12
Back ray-tracing
Algoritmus pro ray-tracing • Je nereálné sledovat všechny paprsky ze zdrojů světla. • V praxi se postupuje naopak – zpětné sledování paprsku. • Projekční paprsky vysíláme přes pixely obrazu scény. • Hledáme, co je vidět v daném pixelu, jakou světelnou energii paprsek přináší. • Typy paprsků (rekurse 3-5): • Primární paprsek – vyslaný od pozorovatele do scény. • Sekundární paprsek – vzniká odrazem nebo lomem paprsku. • Stínový paprsek – vyslaný z místa dopadu paprsku na objekt ke zdrojům světla pro zjištění, leží-li ve stínu. Není-li bod ve stínu, je pro něj vyhodnocen osvětlovací model. Zanedbává se jejich lom.
Základy počítačové grafiky / Ray-tracing
13
Ray-casting
Rekurzivní funkce Sleduj_paprsek (R, H - hloubka rekurse): – – – –
Najdi průsečík P mezi R a objektem. Jestliže P neexistuje – R jde mimo scénu – pixel má barvu pozadí. Z P pošli ke zdrojům světla stínové paprsky. Vyhodnoť součet osvětlovacích modelů v P pro nezakryté zdroje světla. – Pokud není překročena hloubka rekurze H, vyšli z P: • Odražený sekundární paprsek voláním Sleduj_paprsek(RR, H+1). • Lomený paprsek Sleduj_paprsek(RT, H+1).
– Paprsek R má barvu danou součtem barvy od osvětlení, odraženého paprsku RR a lomeného paprsku RT.
Základy počítačové grafiky / Ray-tracing
14
Osvětlovací model pro ray-tracing • Vrhání paprsku. • Ray-tracing prvního řádu. • Vyhodnocují se pouze primární paprsky a jejich dopady na nejbližší objekt. • Při použití stínových paprsků jsou vyhodnoceny stíny. • Výsledek je obdobný jako objektových vizualizačních metod, pro real. čas. • Použití: – Přímé zobrazování CSG modelů. – Vizualizace voxel modelů.
Základy počítačové grafiky / Ray-tracing
15
Základy počítačové grafiky / Ray-tracing
16
Lom světla
Nevýhody ray-tracingu • Ostré stíny. • Bodové zdroje světla. • Zrcadla (lesklé plochy) sice odrážejí okolí, ale neodráží světlo do okolí, nejsou sekundárními zdroji světla. • Při změně ve scéně (místo pozorovatele, nové světlo, nový objekt, odebrání něčeho, …) se musí vyhodnotit celá scéna. • Není adaptivní. Zobrazení probíhá se stejným vzorkování, nezávisle na situaci ve scéně (velké monotónní plochy, …).
Základy počítačové grafiky / Ray-tracing
17
Urychlování ray-tracingu
Základy počítačové grafiky / Ray-tracing
18
Obálky, hierarchie obálek
• Prostý ray-tracing vyžaduje pro výpočet hodiny až dny. • Urychlovací metody mohou urychlit o jeden až dva řády. • Nejčastější urychlovací metody: – Urychlení výpočtů průsečíků: • Speciální funkce na výpočet průsečíků s každým typem objektu (pre testy potenciálních průsečíku před vlastními výpočty s tělesem). • Snížení počtu výpočtů průsečíků – obálky, hierarchie obálek – dělení scény (BSP, Octal-tree) – paměť překážek – koherence paprsků (válcové nebo kuželové obálky paprsků).
– Snížení počtu paprsků: • Adaptivní antialiasing (zředěné vysílání paprsků, interpolace při malé změně). • Řízení hloubky rekurze (útlum intenzity paprsků při odrazech a lomech -> stupeň rekurze při útlumu pod daný limit).
– Svazky paprsků (svazek paprsků se posílá jako jeden - kvalita). – Distribuce výpočtů na více částí (procesů, procesorů).
Základy počítačové grafiky / Ray-tracing
19
Základy počítačové grafiky / Ray-tracing
20
Dělení scény
Adaptivní antialiasing - Oktalový strom - BSP - 3D grid
Základy počítačové grafiky / Ray-tracing
21
Průsečík paprsku s koulí
Základy počítačové grafiky / Ray-tracing
22
Průsečík paprsku s rovinnou Param. rovnice paprsku : x = x 0 + t ⋅ (x1 − x0 ) = x0 + t ⋅ ∆x
y = y 0 + t ⋅ ( y1 − y 0 ) = y 0 + t ⋅ ∆y
z = z 0 + t ⋅ ( z1 − z 0 ) = z 0 + t ⋅ ∆z
Rovnice roviny : A⋅ x + B ⋅ y + C ⋅ z + D = 0
Param. rovnice paprsku :
(
t 2 ⋅ ∆x 2 + ∆y 2 + ∆z 2 +
z = z 0 + t ⋅ (z1 − z 0 ) = z 0 + t ⋅ ∆z
+ (x0 − a ) + ( y0 − b ) + (z0 − c ) − R 2 = 0
Rovnice koule :
S (a, b, c ) − střed , R − poloměr ( x − a )2 + ( y − b )2 + ( z − c )2 = R 2
t=
)
x = x 0 + t ⋅ ( x1 − x 0 ) = x0 + t ⋅ ∆x
y = y 0 + t ⋅ ( y1 − y 0 ) = y 0 + t ⋅ ∆y
Rovnice parametru roviny : A ⋅ x0 + B ⋅ y0 + C ⋅ z 0 + D n = A ⋅ ∆x + B ⋅ ∆y + C ⋅ ∆z d pro d = 0 neprotíná rovinu.
Kvadratická rovnice průsečíků → t1,2 ⇒ Pi : + 2t ⋅ [∆x ⋅ (x0 − a ) + ∆y ⋅ ( y0 − b ) + ∆z ⋅ ( z0 − c )] + 2
2
2
Z průmětu do XY zjistime jestli paprsek protíná polygon
Normála v Pi : r N i (( xi − a ) R , ( yi − b ) R , ( zi − c ) R )
x 2 − 2ax + a 2 + y 2 − 2by + b 2 + z 2 − 2cz + c 2 = R 2 Základy počítačové grafiky / Ray-tracing
23
Základy počítačové grafiky / Ray-tracing
24
Particle tracing
Základy počítačové grafiky / Ray-tracing
25