Bevezetés a számítógépi grafikába 2
Paraméteres görbék Paraméteres görbe: 2D-ben: paraméter: általában: kikötések: legyen folytonos legyen folytonosan differenciálható legyen „könnyen számolható”
Interpoláció A görbe az előre megadott ún. kontrollpontokon halad át. Keressük azt az függvényt, melyre találhatóak olyanértékek, hogy
Approximáció Adottak a kontrollpontok. Azgörbe nem feltétlenül halad át a kontrollpontokon. A kontrollpontok „hatnak” a görbe alakjára.
Milyen függvény? Általában polinom legtöbbször harmadrendű:
Bezier-görbe 1962: Pierre Bézier [bezié], a Renaultnál Charles Hermite [ermit] ( )
Hermite interpoláció 4 ponttal adott
Hermite interpoláció 3 ponttal és 1 érintővel adott Adottak:
Hermite interpoláció 3 ponttal és 1 érintővel adott
Hermite interpoláció 2 ponttal és 2 érintővel adott A cél: tetszőleges számú kontrollponthoz görbe megoldás: görbeszakaszok illesztése Adottak:
Hermite interpoláció 2 ponttal és 2 érintővel adott
Bezier görbe Approximáció Adottak a kontrollpontok. A görbe csak aés a pontokon megy át.
Bezier approximáció Casteljau-algoritmussal Az szakaszáltal meghatározott osztópontja: Kontrollpontok: Osztópontok:
Bezier approximáció Casteljau-algoritmussal
Bezier approximáció Bernstein-polinommal Berstein polinom:
Bezier-görbe tulajdonságai Áthalad az első és az utolsó kontrollponton. A kontrollpontok számának növekedésével nő a polinom fokszáma is. A görbe „szimmetrikus”, azaz a és a pontok ugyanazt a görbét állítják elő. Affin transzformációkkal (pl. eltolás, forgatás, skálázás, tükrözés) szemben invariáns. A görbe globálisan változtatható.
Bezier-görbe tulajdonságai A görbe a kontrollpontok konvex burkán belül van. A görbe kezdő- és végérintője:
Hermite- és Bezier-görbék kapcsolata Harmadfokú Bezier-görbe: Áthalad apontokon: Érintővektorok apontokban:
Számítógépi grafika 3D-ben 3D-s alakzatok modellezése 3D-s alakzatok transzformálása forgatás, eltolás stb. Sokszor fotórealisztikus megjelenítés megvilágítás, árnyékolás stb. Valós idejűség körbejárás, nézőpont változtatás stb. 3D-s alakzatok leképezése 2D-re
Számítógépi grafika 3D-ben 3D modell 3D modellezés 3D transzformációk 2D kép vagy mozgókép Renderelés + Vetítés
3D leképezése 2D-re Vetítés / projekció Dimenzióveszteséggel járó transzformáció A tárgypontból induló vetítősugár döféspontja a képsíkon a képpont.
Párhuzamos vetítés A vetítősugarak párhuzamosak Merőleges vetítés: ha még a képsíkra is merőlegesek Legyen a vetítés vektora: Legyen a képsík azsík. Ha a tárgypont :
Párhuzamos vetítés Merőleges vetítésnél:
Centrális vetítés Vetítési centrum A vetítési vektor a centrumot és a tárgypontot összekötő szakasz. Legyen a képsík azsík. Legyen a centrum a z-tengelyen, az origótól s távolságra.
Centrális vetítés
Testmodellezés Célszoftverekkel pl. 3D Studio Max, Maya 3D, Blender Véges sok 3D-s alakzattal térfogat modell: 3D-s primitívekkel drótváz modell (wireframe): szakaszok, görbék stb. felületmodell (B-rep = Boundary Representation ): poligonok
B-rep Hátrányok: görbült felületek nehezen közelíthetőek Előnyök: gyors rendereléshez jól használható Általában háromszögek hálója
B-rep Csúcsok mellett tárolandó a topológia Poligonok megadása: csúcslista: redundáns adattárolás mutatók a csúcslistába +éllista: egy él 2 csúcsra és 2 poligonra mutat
Poligonok árnyalása Poligonok körbejárási iránya előre meghatározott Poligon normálvektorának a megvilágítás vektorával bezárt szöge ennyivel árnyaljuk a poligon színét
Poligonok árnyalása Vektoriális szorzat: Normálvektor:
Poligonok árnyalása Skaláris szorzat: Textúra árnyalása
Láthatósági kérdések Takart élek, takart felületek (részek) eltakarása/eltávolítása Poliédereket körbezárják a poligonok konvex poliéderek: a hátsó lapokat eltávolíthatjuk konkáv poliéderek általános alakzatok
Backface culling Hátsó lapok eltávolítása Konvex poliéderek esetén alkalmazható Ha a normálvektor és a vetítés vektora derékszögnél nagyobb szöveg zár be
Backface culling Párhuzamos vetítés esetén: Centrális vetítés esetén: súlypont: vetítési vektor:
Mélységi rendezés Konkáv poliéderekre is A poligonokat súlypontjuk z-koordinátája szerint rendezzük, majd kirajzoljuk Másnéven: festő algoritmus Backface culling-gal kombinálható a backface culling általában a poligonok felét eltávolítja
A mélységi rendező algoritmus néha téveszt A Z-buffer algoritmus mindig helyesen működik a vetület pixelein operál tetszőleges alakzatra (pl. görbe felületek) Z-buffer
Két tárolóterületet használ: frame-buffer: a képernyő pixeleihez rendelt színértékek kezdetben a háttérszín z-buffer: a képernyő pixeleihez rendelt z-értékek kezdetben egy adott maximális z-érték
Z-buffer Legyen az (x,y,z) 3D-s pont képe a c színű (x’,y’) 2D-s pont. Ha z-buffer(x’,y’)>z, akkor frame_buffer(x’,y’):=c z_buffer(x’,y’):=z
Z-buffer Előnye: minden alakzatra helyesen működik Hátránya: erőforrásigényes pixelek száma milliós nagyságrendű Más eljárásokkal kombinálva használják
Egyéb grafikai problémák Fotórealisztikus megjelenítés Mélységélesség, motion blur Sugárkövetés (Raytracing) visszaverődés, tükröződés különféle anyagú felületek átlátszó felületek Részecske-rendszerek eső, füst, köd