170 likes | 276 Views
Számítógépes Grafika Megvilágítás. Programtervező informatikus ( esti ) . Információk. Gyakorlati diák: http://people.inf.elte.hu/valasek/bevgraf_esti/ E-mail: valasek@inf.elte.hu. Megvilágítás. A minél élethűbb megjelenítés egyik legfontosabb kérdése
E N D
SzámítógépesGrafikaMegvilágítás Programtervezőinformatikus (esti)
Információk • Gyakorlati diák: http://people.inf.elte.hu/valasek/bevgraf_esti/ • E-mail: valasek@inf.elte.hu
Megvilágítás • A minél élethűbb megjelenítés egyik legfontosabb kérdése • A fény viselkedésének minél élethűbb szimulálása • Rendkívül számításigényes - több egyszerűsített modell van
Megvilágítás • A végső pixelszín függ: • Az objektum anyagától (material) és textúrájától az adott pontban • A fényforrások által kibocsátott fény intenzitásától és színétől
Anyagjellemzők • Meghatározzák, hogy az adott felület miként veri vissza, vagy bocsájt ki fényt • A különböző típusú megvilágítási formákkal szemben más és más módon viselkedhet
Ambiens modell • Szórt megvilágítás egyszerűsített modellje • Egyfajta állandó háttérmegvilágítás • A fényforrás és az anyag színére van szükség: • ambientLight(v1, v2, v3) : • A v1, v2, v3 a fény színkomponensei • ambient(v1, v2, v3): • Az anyag viselkedését írja le szórt megvilágítással szemben
Diffúz modell • Érdes felületre beeső fény vizsgálata • Minél inkább eltér a fény beesési szöge a felületi normálistól, annál kisebb a fény hatása a végső szín meghatározásában
Diffúz modell • Megadásához egyrészt szükség van a színekre: • A különböző fényforrások létrehozásakor a paraméterekben megadott szín a diffúz érték lesz • Alakzatok rajzolásakor pedig a fill() paraméterében szereplő érték lesz az anyag színe
Fényfoltképző • „Csillanás” • A nézőpont minél közelebb van az ideális visszaverődés szögéhez annál inkább csillan • A szín beállítása: • lightSpecular(v1, v2, v3) megadja a fényforrás fényfoltképző színét • specular(v1, v2, v3) azanyagszínét • Hatás módosítása: • shininess(float): mennyire csillogjon
Felületi normális • Az ambiens modellen kívül szükség van a felületi normálisra is • A primitívek (háromszögek) csúcspontjai segítségével vektoriális szorzatokként kiszámolhatóak
Ambiens fényforrás • ambientLight(v1, v2, v3, x, y, z): • Szín, pozíció (ne legyen végtelen hatás) size(400, 400, P3D); background(0); noStroke(); ambientLight(51, 102, 126); translate(80, 200, 0); sphere(120); translate(240, 0, 0); sphere(120);
Pontszerű fényforrás • pointLight(v1, v2, v3, x, y, z) • (v1, v2, v3) színű, (x, y, z) koordinátájú fényforrás • Minden irányban egyenlő intenzitással bocsájt ki fényt size(100, 100, P3D); background(0); noStroke(); pointLight(51, 102, 126, 35, 40, 36); translate(80, 50, 0); sphere(30);
Irányított fényforrás • directionalLight(v1, v2, v3, nx, ny, nz): • (nx, ny, nz) a fénycsóvák közös iránya • „végtelen távoli fényforrás” size(100, 100, P3D); background(0); noStroke(); directionalLight(51, 102, 126, 0, -1, 0); translate(80, 50, 0); sphere(30);
Fényfoltképző fényforrás • spotLight( v1, v2, v3, x, y, z, nx, ny, nz, angle, concentration) size(100, 100, P3D); background(0); noStroke(); spotLight(51, 102, 126, 80, 20, 40, -1, 0, 0, PI/2, 2); translate(20, 50, 0); sphere(30);
Fénykezelés • lights(): • Bekapcsolja a megvilágítási modelleket, feltölti a szükséges paramétereket alapértelmezett értékekkel • noLights(): • Kikapcsolja azokat
Színek • Amikor három komponenssel adunk meg színeket kétféle értelmezés van: • RGB • HSB • Választás: • colorMode(mode, range1, range2, range3, range4) • mode: RGB vagy HSB • rangei: a megfelelő komponens intervalluma (4=a)