Látható felszín algoritmusok

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

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

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon) b) Minden belső pont kirajzolásával (kitöltött)

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon)

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon)

Cohen-Sutherland vágóalgoritmus

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

Láthatósági kérdések

Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon

3D koordináta-rendszerek

Geometria. a. Alapfogalmak: pont, egyenes, vonal, sík, tér (Az alapfogalamakat nem definiáljuk)

9. Írjuk fel annak a síknak az egyenletét, amely átmegy az M 0(1, 2, 3) ponton és. egyenessel;

Tartalom. Tartalom. Hajder Levente Szakasz raszterizálása. 2017/2018. II. félév. Poligon raszterizáció.

SZE, Doktori Iskola. Számítógépes grafikai algoritmusok. Összeállította: Dr. Gáspár Csaba. Felületmegjelenítés

Transzformációk, amelyek n-dimenziós objektumokat kisebb dimenziós terekbe visznek át. Pl. 3D 2D

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit

Klár Gergely

Geometriai algoritmusok

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Skaláris szorzat: a b cos, ahol α a két vektor által bezárt szög.

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

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

Koordináta-geometria feladatgyűjtemény

Algoritmusok raszteres grafikához

Középpontos hasonlóság szerkesztések

Analitikus térgeometria

egyenletrendszert. Az egyenlő együtthatók módszerét alkalmazhatjuk. sin 2 x = 1 és cosy = 0.

Geometria 1 normál szint

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Koordináta-geometria feladatgyűjtemény (A feladatok megoldásai a dokumentum végén találhatók)

VEKTOROK. 1. B Legyen a( 3; 2; 4), b( 2; 1; 2), c(3; 4; 5), d(8; 5; 7). (a) 2a 4c + 6d [(30; 10; 30)]

Számítógépes Grafika mintafeladatok

Koordináta geometria III.

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

Síklapú testek. Gúlák, hasábok áthatása. Az előadás átdolgozott részleteket tartalmaz a következőkből: Gubis Katalin: Ábrázoló geometria

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Hajder Levente 2014/2015. tavaszi félév

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010.

Az egyenes és a sík analitikus geometriája

Koordinátageometria. M veletek vektorokkal grakusan. Szent István Egyetem Gépészmérnöki Kar Matematika Tanszék 1

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

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor:

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

Koordináta-geometria feladatok (emelt szint)

Koordinátageometriai gyakorló feladatok I ( vektorok )

Ferde kúp ellipszis metszete

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT. Koordináta-geometria

Összeállította: dr. Leitold Adrien egyetemi docens

Hajder Levente 2016/2017.

Helyvektorok, műveletek, vektorok a koordináta-rendszerben

Vektorok és koordinátageometria

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27.

Algoritmizálás, adatmodellezés 10. előadás

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria

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

Az igénybevételi ábrák témakörhöz az alábbi előjelszabályokat használjuk valamennyi feladat esetén.

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

10. Koordinátageometria

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

MINTAFELADATOK. 1. feladat: Két síkidom metszése I.33.,I.34.

Tartalom. Hajder Levente 2016/2017. I. félév

SDL_Universe SDL, C++, 3D szoftver renderelő

Síklapú testek. Gúlák, hasábok Metszésük egyenessel, síkkal

Geometria 1 normál szint

Koordináta-geometria feladatok (középszint)

Számítási feladatok a Számítógépi geometria órához

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

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]

Matematikai geodéziai számítások 10.

Lineáris algebra mérnököknek

Lehet hogy igaz, de nem biztos. Biztosan igaz. Lehetetlen. A paralelogrammának van szimmetria-középpontja. b) A trapéznak két szimmetriatengelye van.

9. Trigonometria. I. Nulladik ZH-ban láttuk: 1. Tegye nagyság szerint növekvő sorrendbe az alábbi értékeket! Megoldás:

KRISTÁLYOK GEOMETRIAI LEÍRÁSA

A tér lineáris leképezései síkra

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Segédlet: Főfeszültségek meghatározása Mohr-féle feszültségi körök alkalmazásával

9. előadás. Térbeli koordinátageometria

Tartalom. Tartalom. Hajder Levente 2018/2019. I. félév

Termék modell. Definíció:

10. Tétel Háromszög. Elnevezések: Háromszög Kerülete: a + b + c Területe: (a * m a )/2; (b * m b )/2; (c * m c )/2

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Érettségi feladatok: Koordináta-geometria 1/5

Algoritmusok raszteres grafikához

Algoritmusok raszteres grafikához

EGY ABLAK - GEOMETRIAI PROBLÉMA

Budapesti Műszaki Főiskola, Neumann János Informatikai Kar. Vektorok. Fodor János

5 1 6 (2x3 + 4) 7. 4 ( ctg(4x + 2)) + c = 3 4 ctg(4x + 2) + c ] 12 (2x6 + 9) 20 ln(5x4 + 17) + c ch(8x) 20 ln 5x c = 11

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Függvények Megoldások

EGYBEVÁGÓSÁGI TRANSZFORMÁCIÓK TENGELYES TÜKRÖZÉS

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Érettségi feladatok Koordinátageometria_rendszerezve / 5

XX. Nemzetközi Magyar Matematika Verseny

3. előadás. Elemi geometria Terület, térfogat

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont

ANALÍZIS II. Példatár

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Átírás:

Látható felszín algoritmusok Látható felszínek Z-buffer algoritmus Festő algoritmus

A látható felszín meghatározására szolgáló algoritmusok A tárgyak takarják-e egymást? Mely tárgy látható? Pontokra: P 1 = (x 1, y 1, z 1 ) és P 2 = (x 2, y 2, z 2 ) Takarja-e egyik a másikat? Ha ugyanazon a vetítési sugáron vannak, akkor a közelebbi takarja a másikat, különben nem. Nehéz probléma.

A látható felszín meghatározására szolgáló algoritmusok Mélységbeli összehasonlítás Helye: a normalizálási transzformáció után, ekkor 1. párhuzamos vetítésnél: a vetítő sugarak párhuzamosak a z-tengellyel, ekkor P 1 és P 2 ugyanazon a vetítési sugáron van, ha x 1 = x 2 és y 1 = y 2 2. perspektív vetítésnél: a vetítési sugarak a COV-ből indulnak ki, ekkor P 1 és P 2 ugyanazon a vetítési sugáron van, ha x 1 = x 2 és y 1 = y 2 z 1 z 2 z 1 z 2

A látható felszín meghatározására szolgáló algoritmusok Perspektív vetítésnél azt a transzformációt használjuk, amely a perspektív kanonikus térfogatot átviszi párhuzamos kanonikus térfogatba. perspektív kanonikus térfogat párhuzamos kanonikus térfogat

A látható felszín meghatározására szolgáló általános algoritmusok Perspektív kanonikus térfogatot párhuzamos kanonikus térfogatba transzformáló mátrix: 1 0 0 0 M = 0 1 0 0 1 0 0 0 0 1 0 z 1+z min 1+z min Ekkora vetítési sugarak már párhuzamosak a z-tengellyel. Egyszerűbben végezhető a vágás.

A látható felszín meghatározására szolgáló általános algoritmusok Tárgyak kiterjedése, határoló téglalapok, testek Határoló téglalap teszt Ha a határoló téglalapok nem fedik egymást, akkor a vetületek sem fedik egymást, különben további vizsgálat szükséges.

A látható felszín meghatározására szolgáló általános algoritmusok 1-dimenziós kieterjedés (határoló intervallum) minmax-teszt A kiterjedés minimális és maximális értékeinek összehasonlításával döntjük el a takarást. A kiterjedés meghatározása: a tárgy (csúcs)pontjaihoz tartozó koordináták min. és max. értékeiből.

A látható felszín meghatározására szolgáló általános algoritmusok Hátranéző lapok kiválogatása Tegyük fel, hogy poligon határú síklapokkal határolt a tárgy, és adottak a síklapoknak a tárgyból kifelé mutató normálisai. Ekkor azok a lapok nem láthatók, amelyek normálisai a megfigyelőtől ellentétes irányba mutatnak.

A látható felszín meghatározására szolgáló általános algoritmusok Térbeli partícionálás Észrevétel: nem minden tárgynak van minden vetítési sugárral metszéspontja (pl. távol vannak, más irány) = osszuk fel (particionáljuk) a képernyőt. Meghatározzuk, hogy mely tárgyak vetülete van benne a megfelelő részben (partícióban) és csak azokkal keresünk metszéspontokat.

A látható felszín meghatározására szolgáló általános algoritmusok Ez jó módszer, ha a tárgyak vetületei egyenletesen oszlanak el a teljes képernyőn, különben különböző méretű partíciókat érdemes készíteni, kisebb partíciót ott, ahol több tárgy vetülete van.

Látható felszín algoritmusok Területosztó algoritmus látható felszín meghatározására: oszd meg és uralkodj Ha egy területen könnyen eldönthető, hogy melyik poligon jeleníthető meg, akkor azt rajzoljuk ki, különben osszuk fel a területet és alkalmazzuk az eljárást a részterületekre.

Látható felszín algoritmusok Négy lehetőség egy poligon és egy téglalap alakú terület átfedése között: Tartalmazó poligon Metsző poligon Tartalmazott poligon Idegen poligon

Látható felszín algoritmusok Mikor dönthető el könnyen, hogy mi rajzolható? 1. Minden poligon idegen a területtől (háttér) 2. Egyetlen metsző vagy tartalmazott poligon (háttér + pásztázással poligon) 3. Egyetlen tartalamazó poligon (rajzolás a poligon színével) 4. Van olyan tartalmazó poligon, amelyik a többi előtt van.

Látható felszín algoritmusok Hierarchikus struktúrák alkalmazása Épület 1. emelet 2. emelet 3. emelet 1. lakás 2. lakás Ha a vetítési sugár nem metszi az épületet, akkor az emeleteit és az emeletek lakásait sem metszi (tehát nem kell vizsgálni azokat).

Z-buffer algoritmus (kép alapú) F: kép-puffer (képpontok tárolására) kezdeti értéke a háttérszín Z: mélység-puffer (minden pontban a megfelelő z érték), kezdeti értéke a z-max (hátulsó vágási sík) Pásztázás közben F-be és Z-be bekerül az új pont, ha nincs messzebb, mint az eddigi z érték.

Z-buffer algoritmus A hátsó vágási sík a z = 0

Z-buffer algoritmus

Z-buffer algoritmus Kép Z-buffer

Z-buffer algoritmus Tulajdonságai: Nincs tárgyak rendezése, összehasonlítása, metszéspontok számítása. Poligononként végezhető el, ha nincsenek átható poligonok. Nem csak poligonokra jó. Nagy helyigén, de lehet sávonként haladni. Könnyű implementálni. Könnyű egy újabb tárgy képét hozzávenni.

Lista prioritásos algoritmusok Meghatározzák a tárgyaknak azt a sorrendjét, ami a kép kirajzolásához kell. Például, ha a z értékekben nincs átfedés, akkor a tárgyakat növekvő z értékük szerint kell rendezni, és utána távolról közelre haladva megjeleníteni. Néha még akkor is lehet ilyen sorrendet megadni, ha a z értékekben van átfedés, de nem mindig. Ilyenkor szétvágjuk a tárgyakat és a darabokat rendezzük sorba.

Mélység szerint rendező algoritmus Lépések: 1. Rendezzük a poligonokat legtávolabbi z koordinátájuk szerint. 2. Vágjuk szét az átfedő poligonokat (ha szükséges) 3. Pásztázzunk minden poligont hátrulról előre haladva. Ha a poligonok párhuzamos síkokban fekszenek, akkor a 2. lépés kimaradhat.

Festő algoritmus

Takarás vizsgálatok Tegyük fel, hogy a P poligon legtávolabbi z koordinátája szerint a lista végén van. Pásztázás előtt össze kell hasonlítani a lista azon Q elemeivel, amelyeknek a z irányú kiterjedése átfedi P z irányú kiterjedését, és meg kell vizsgálni, hogy P eltakarja-e Q-t?

Takarás vizsgálatok P eltakarja-e Q-t? 1. Ha P és Q x kiterjedése nem átfedő, akkor nem. 2. Ha P és Q y kiterjedése nem átfedő, akkor nem. 3. Ha COV-ból nézve P teljes terjedelmében a Q skíjának túlsó oldalán van, akkor nem. 4. Ha COV-ból nézve Q teljes terjedelmében P síkjának az innenső oldalán van, akkor nem. 5. Ha P és Q (x, y) síkra való vetülete nem átfedő, akkor nem 3 Ha COV-ból nézve Q teljes terjedelmében a P sík túlsó oldalán van, akkor P Q csere. 4 Ha a COV-ból nézve P teljes terjedelmében Q-nak az innenső oldalán van, akkor P Q csere. Különben P -t vagy Q-t fel kell darabolni a másik síkkal és a darabokat beilleszteni a listába.

Takarás vizsgálatok Végtelen ciklust eredményezne, ezért megjelöljük azokat a poligonokat, amelyeket egyszer már a lista végére tettünk, és ha újra előjönnek, akkor darabolunk.

Bináris tér-partícionáló fa algoritmusok Ötlet Ha van olyan sík, amely a tárgyakat (teljes egészükben) két féltérbe osztja, akkor a COV-t tartamazó féltér tárgyait nem takarjá el a másik féltér tárgyai BSP fa Csomópontok - poligonok A csomóponthoz tartozó poligon síkjával darabolhatjuk a többi poligont, és azok darabjaival folytathatjuk a fát bal oldalra: azok a poligonok, amelyek elöl vannak (később kell rajzolni) jobb oldalra: azok a poligonok, amelyek hátul vannak (korábban kell rajzolni)

Bináris tér-particionálás

Pásztázó vonal algoritmus Hasonló a poligonok kitöltését végző algoritmushoz. Vízszintesen pásztázunk Most több poigon lehet.

Pásztázó vonal algoritmus ÉT (élek táblázata, lásd poligon kitöltése): A kisebbik y értékük alapján szerint rendezve az összes élet tartalmazza. A vízszintes élek kimaradnak! Annyi lista van, ahány pásztázó vonal. Minden listában azok az élek szerepelnek, amelyek alsó végpontja a pásztázó vonalon van. A listák az élek alsó végpontjának x koordinátája, ezen belül a meredekség reciproka szerint rendezettek. Minden lista elem tartalmazza az él y max és x min koordinátáját és a meredekség reciprokát és a poligon azonosítóját (több poligon lehet).

Pásztázó vonal algoritmus PT (poligonok táblázata): egy elem részei: azonosító a sík egyenletének együtthatói a sík egyenlete: Ax + By + Cz + D = 0 árnyalati / színezési információ ki/be jelző (kezdő érték ki) ÉT: AB AC FD FE CB DE PT: ABC DEF

Pásztázó vonal algoritmus AÉT (aktív élek táblázata): Alulról felfelé, balról jobbra haladva α: AB, AC }{{} ABC AB-nél be-, AC-nél kikapcsolva AB-től AC-ig ABC színe β: AB, AC, F D, F E }{{}}{{} ABC DEF be ki be ki

Pásztázó vonal algoritmus AÉT (aktív élek táblázata): Alulról felfelé, balról jobbra haladva γ: AB, AC }{{} ABC AB-nél be-, AC-nél kikapcsolva AB-től AC-ig ABC színe γ + 1: AB, AC, F D, F E }{{}}{{} ABC DEF be ki be ki Újab sorra térve AÉT-t rendezni kell! A síkok egyenletéből dönthető el, hogy melyik van közelebb.

Átmetsző poligonok feldarabolása Ha a poligonokat felvágjuk a metszeteik mentén, akkor nem kell minden pontban megvizsgálni a poligonok sorrendjét, elegendő csak akkor, ha egy takaró poligon véget ér.

Látható felszín beállítások OpenGL-ben

OpenGL OpenGL-ben: a mélységi- vagy z-buffer algoritmus van implementálva. A mélységbeli összehasonlítás engedélyezése és tiltása: glenable(gl DEPTH TEST) // engedélyezés gldisable(gl DEPTH TEST) // tiltás

Sokszögek oldalai - OpenGL Sokszögek (elülső és hátulsó) oldalai OpenGL-ben: Elülső oldal az, amelyen a csúcspontok az óramutató járásával ellentétes irányban vannak megadva. void glpolygonmode(enum face, enum mode); face: GL FRONT AND BACK, GL FRONT, GL BACK Megmondja, hogy a poligon mindkét, vagy csak az elülső, vagy csak a hátulső oldalát kell rajzolni. mode: Megmondja a rajzolás módját GL POINT csak a poligon csúcsait rajzolja GL LINE határvonalát kell kirajzolni GL FILL ki is kell tölteni (alapértelmezés)

Sokszögek oldalai - OpenGL Elülső és hátulsó oldalak explicit megadása: glfrontface(glenum mode); mode: GL CW az az oldal lesz elülső oldal, amelyen a csúcspontokat az óramutató járásával megegyező irányban adtuk meg, GL CCW az ellenkezője

Sokszögek oldalai - OpenGL A sokszög meghatározott oldalán letiltja a világítási, árnyalási és szín számítási műveleteket (láthatalan oldal) glcullface(glenum mode); mode: GL FRONT, GL BACK Ennek engedélyezése és tiltása: glenable(gl CULL FACE) engedélyezés gldisable(gl CULL FACE) tiltás