Szirmay-Kalos László. L(x, ω)=l e (x,ω)+ L(h(x,-ω),ω) f r (ω,x, ω) cos θ dω A jobb oldali radiancia:



Hasonló dokumentumok
PovRay. Oktatási segédlet

Klár Gergely Informatikai Kar. 2010/2011. tavaszi félév

Sugárkövetési algoritmusok (2. rész)

Programozás I gyakorlat. 5. Struktúrák

3D Grafika+képszintézis

Számítógépes grafika

Loványi István vizsgakérdései kidolgozva (béta)

Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT

Geometriai modellezés. Szécsi László

Grafika. Egyváltozós függvény grafikonja

Információs Technológia

C# osztályok. Krizsán Zoltán

Mesterséges intelligencia 1 előadások

Mire és hogyan alkalmazhatjuk a LEDeket?

Construction of a cube given with its centre and a sideline

Modellezési transzformáció: [r lokális,1] T M = [r világ,1] Nézeti transzformáció: [r világ,1] T v = [r képernyo,1]

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Transzformációk. Szécsi László

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

A Számítógépek hardver elemei

Felületábrázolás és alkalmazásai Maple-ben

Eredmények, objektumok grafikus megjelenítése 3D felületek rajzoló függvényei.. Beépített 3D felületek rajzoló függvényei

Anyagmozgatás és gépei. 3. témakör. Egyetemi szintű gépészmérnöki szak. MISKOLCI EGYETEM Anyagmozgatási és Logisztikai Tanszék.

Hajder Levente 2017/2018. II. félév

Sztojka Miroszláv LINEÁRIS ALGEBRA Egyetemi jegyzet Ungvár 2013

FORD KA KA_202054_V5_2013_Cover.indd /06/ :59

Máté: Számítógépes grafika alapjai

Logaritmikus egyenletek Szakközépiskola, 11. osztály. 2. feladat. Oldjuk meg a következ logaritmikus egyenletet!

Tartalom. Tartalom. Raycasting. Hajder Levente 2017/2018. II. félév. Raycasting. Raycasting. Sugár és háromszög metszéspontja


Robotszerkezetek animációja

2. GYAKORLAT THONET-ASZTAL

Matematikai alapok. Dr. Iványi Péter

Bevezetés a programozásba. 12. Előadás: 8 királynő

Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor

Mikrohullámok vizsgálata. x o

Tartalom. Megjegyzések. Valasek Gábor Befoglaló keretek. Felosztások. Informatikai Kar

3. Gyakorlat Ismerkedés a Java nyelvvel

Máté: Számítógépes grafika alapjai

Alapfogalmak II BME -VIK

Programozás 3. Dr. Iványi Péter

. Typeset by AMS -TEX 0

Objektumorientált programozás C# nyelven

Vida János. Geometriai modellezés III. Görbék és felületek

Differenciaegyenletek

VISUAL BASIC ALAPISMERETEK

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

JAVA PROGRAMOZÁS 3.ELŐADÁS

5. modul - Adatbázis-kezelés

Mérnöki létesítmények geodéziája Mérnöki létesítmények valósághű modellezése, modellezési technikák, leíró nyelvek

Háromfázisú hálózat.

SZÍNES KÉPEK FELDOLGOZÁSA


HLSL programozás. Szécsi László

Országzászlók (2015. május 27., Sz14)

munkafüzet open eseményéhez

(2) A R. 3. (2) bekezdése helyébe a következő rendelkezés lép: (2) A képviselő-testület az önkormányzat összes kiadását

INFORMATIKAI ALAPISMERETEK

19. Függvények rekurzív megadása, a mester módszer

C# feladatok gyűjteménye

Lineáris algebra - jegyzet. Kupán Pál

A 2011/2012. tanévi FIZIKA Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai és megoldásai fizikából. I.

19. Hasításos technikák (hash-elés)

Egy emelt szintű érettségi feladat kapcsán Ábrahám Gábor, Szeged

Számítógépes grafika

Máté: Orvosi képalkotás

Játékfejlesztés. Szirmay-Kalos László

ÉS TESZTEK A DEFINITSÉG

23. Fa adatszerkezetek, piros-fekete fa adatszerkezet (forgatások, új elem felvétele, törlés)(shagreen)

Mesterséges Intelligencia I. (I602, IB602)

A MATLAB programozása. Féléves házifeladat. RGBdialog

Erdélyi Magyar TudományEgyetem (EMTE

Diagnosztikai röntgen képalkotás, CT

Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai.

Első sorozat (2000. május 22. du.) 1. Oldjamegavalós számok halmazán a. cos x + sin2 x cos x. +sinx +sin2x =

800 Series lélegeztetőgépek

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Kvadrupól-monopól hatások gravitációs hullámok fázisában

Rendezési algoritmusok belső rendezés külső rendezés

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014

Töltögetés és kannibálok

4 Vezetékes Video Monitor

Termék modell. Definíció:

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

3D grafika és animáció Jegyzet a webprogramozói képzéshez

RENDER MOTOROK FELÉPÍTÉSE ÉS HASZNÁLATA A 3DS MAX-BAN

Információs Technológia

megjelenítés EDGED FACES átállítjuk a szegmensek számát 5x5x5-re

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

Komputeralgebra rendszerek

Merev test mozgása. A merev test kinematikájának alapjai

KÉPSZŐRİK A NUKLEÁRIS

IMGD 1001: 3D Art. by Mark Claypool Robert W. Lindeman Modeling, Texturing, Lighting, Transformations

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

Optikai kristályok előállítása, tulajdonságai, alkalmazása

Seite 1. Térfogatalakító eljárások. Zömítés. Térfogatalakító eljárások. Prof. Dr. Tisza Miklós Miskolci Egyetem

117. AA Megoldó Alfréd AA 117.

A kvantummechanika speciális fejezetei

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

Átírás:

Képszintézis -casting, -tracing Szirmay-Kalos László Lokális illuminációs módszer L(, ω)=l e (,ω)+ L(h(,-ω),ω) f r (ω,, ω) cos θ dω A jobb oldali radiancia: fényforrások emissziója Fényforrások fényének egyszeri visszaverodését számítjuk L (,ω)=l e (,ω)+ L lightsource f r (ω,, ω) cos θ dω L e (y,ω ) Absztrakt fényforrás modellek: az integrálást megspórolják Ambiens fényforrás: L a constant ambiens visszaverodési modell: L ref = L a k a égbolt fény modell: L ref = L a a(, view dir) Irány fényforrások: egyetlen irányba sugároz, a fénysugarak párhuzamosak, az intenzitás független a pozíciótól Pozicionális fényforrás: egyetlen pontból sugároz, az intenzitás a távolság négyzetével csökken irány d pozicionális Lokális illumináció absztrakt fényforrásokkal Lokális illumináció Ambiens tag + ambiens tag Csak direkt megvilágítás ω l L (ω) L e (ω)+σ l r l L l (ω l ) f r (ω l,ω) cos θ l 0/: Fényforrás láthatóság Pont, irányfényforrásokból származó megvilágítás L (ω) L e (ω)+σ l r l L l (ω l ) f r (ω l,ω) cos θ l + k a L a

Lokális illuminációs algoritmusok Láthatóság a szembol (t) = eye + v t, t > 0 Láthatóság számítás a szembol Fényforrás láthatóság számítás a látható pontból A fényforrás fényének visszaverése a nézeti irányba: felületi normális FirstIntersect( t, iobject, ) t = FLT_MAX; FOR each object tnew = Intersect(, object ); // < 0 if no intersection IF (tnew > 0 && tnew < t ) t = tnew, iobject = object IF (t < FLT_MAX) = eye + v t; RETURN (t, iobject, ); RETURN no intersection END Metszéspont számítás gömbbel Kvadratikus felületek r R center r - center = R Kvadratikus felület: [,y,z,] A y = 0 z Másodfokú egyenlet Nincs gyök gyök gyök (t) - center = R (v v) t + ((eye-center) v) t +((eye-center) (eye-center))- R = 0 Wanted: minimum pozitív megoldás Felületi normális: ((t) - center)/r Ellipszoid Végtelen kúp + + y z -=0 + y - z =0 a b c a b Végtelen henger + y - =0 a b Metszéspont számítás: háromszög r r r. Síkmetszés: ((t) - r) n = 0, t > 0 normál: n = (r - r) (r3 - r). A metszéspont a háromszögön belül van-e? ((r - r) (p - r)) n > 0 Felületi normális: n ((r3 - r) (p - r)) n > 0 vagy shading normals ((r - r3) (p - r3)) n > 0 p r3 N 3 Árnyaló normálok N N N = A X + B Y+ C N = A X + B Y + C N = A X + B Y + C N 3 = A X 3 + B Y 3 + C N (X, Y, Z ) A, B, C 3 változós lineáris egyenletrendszer

Parametrikus felületek Transzformált objektumok r(u,v), u,v in [0,] (t) = eye + v t, t > 0 r(u,v) = (t) r(0.5,0) r(0,0) r(0,0.5) r(0,) T T - Egyenlet megoldás: u,v,t r(,0) r(0.5,0.5) Teszt: 0< u,v <, t > 0 r(,) Rekurzív tesszelláció T T - CSG modellek Ray-casting képek Különbség: Lokális illumináció gömb tégla Reguláris halmazmuvelet a szakaszokra: valós ido Lokális illumináció + árnyékok 0. sec sec Sugárkövetés Tört sugár Tükör sugár Árnyék sugár L(ω) = L e (ω)+σ l r l L l (ω l ) f r (ω l,ω) cos θ l + k a L a + + k r L in (ω r ) + k t L in (ω t ) L l Sugárkövetés lépései A szembe a irányából érkezo sugársuruség Adott irányba látható felületi pont és normálvektor A felületi pontból látható fényforrások A felületi pontban a tükör és törési irány A tükör irányból érkezo sugársuruség A törési irányból érkezo sugársuruség Rekurzió Az árnyalási egyenlet kiértékelése Tükör irányból érkezo fény Törési irányból érkezo fény

Sugárkövetés (Ray ( Ray-- tracing tracing)) Trace függvény Color Trace( ) IF (FirstIntersect( ð object, )>0 ) RETURN La color = Le (, -.dir) color += Direct Lightsource(, -.dir) IF ( kr > 0 ) THEN ReflectDir(, reflected ) color += kr Trace( reflected ) IF ( kt > 0 && RefractDir(, refracted ) ) color += kt Trace( refracted ) p Render( ) for each p Ray r = ( eye ð p ) color = Trace() RGB = ToneMapping(color) WritePiel(p, RGB) endfor end p RGB Trace függvény Color Trace(, d) IF d > dma THEN RETURN L a IF (FirstIntersect( ð object, ) > 0) RETURN La color = Le (, -.dir) color += Direct Lightsource(, -.dir) IF ( kr > 0 ) THEN ReflectDir(, reflected ) color += kr Trace( reflected, d+ ) IF ( kt > 0 && RefractDir(, refracted ) ) color += kt Trace( refracted, d+ ) Material Le, kd, ks, shine kr, kt, n BRDF ReflectDir RefractDir Object Primitive Scene La Define Render FirstIntersect DirectLightsource Trace(Ray ) DirectLightsource DirectLightsource(, vdir ) color = ka La árnyék FOR each lightsource l DO shadow = to lightsource[l] t = FirstIntersect( shadow ); IF (t < 0 t > - lightsource[l].pos ) color += Brdf(ldir,, vdir) cos θ l ' lightsource[l].intensity Ray--tracer osztálydiagram Ray transform Primitive( ) eredmény Light Le, pos Dir(Point) Intens(Point) Camera Sphere Mesh Center, radius vertices[ ] XRES, YRES vrp, vpn, vup eye, ww, wh Ray GetXRes( ) GetYRes( ) GetRay(int,int) Dir Start dir, start Számítási ido Pielszám Objektumszám (Fényforrás szám+)

Befoglaló térfogat (Bounding Volume) Térpartícionáló módszerek objektumok Elofeldolgozás Sugár követés doubleintersectbv(, object ) // < 0 ha nincs IF ( Intersect(, bounding volume of object) < 0) RETURN -; RETURN Intersect(, object ); END Térpartícionáló adatstruktúra Adatstruktúra: Ha ismert a sugár, akkor a potenciális metszett objektumok számát csökkenti Ha a potenciálisak közül találunk egyet, akkor a többi nem lehet közelebb Elso metszéspont Reguláris térháló Elofeldolgozás: Minden cellára a metszett objektumok kompleitás: O(n c) = O(n ) FOR each cell of the line // line drawing átlagos eset kompleitás: O( ) Nyolcas (oktális) fa 3 Octree 3 3 Faépítés( cella ): IF a cellában kevés objektum van cellában regisztráld az objektumokat ELSE cellafelezés: c, c,, c8 Faépítés(c); Faépítés(c8); FOR összes sugár által metszett cellára Binary Space Partitioning fa (kd-fa) Példa animáció 3 3 kd-tree Faépítés( cella ): IF a cellában kevés objektum van cellában regisztráld az objektumokat ELSE sík keresés cella felezés a síkkal: c, c Faépítés(c); Faépítés(c); FOR each cell intersecting the line