számítógépes grafika - eltecg.elte.hu/~robi/eloadas/2020-osz/bsc_ea_08.pdfszűrjük ki bán...

165
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Emlékeztető Vágás Raszterizálás Számítógépes Grafika Bán Róbert [email protected] Eötvös Loránd Tudományegyetem Informatikai Kar 2020-2021. őszi félév Bán Róbert [email protected] Számítógépes Grafika

Upload: others

Post on 19-Mar-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás

Számítógépes Grafika

Bán Ró[email protected]

Eötvös Loránd TudományegyetemInformatikai Kar

2020-2021. őszi félév

Bán Róbert [email protected] Számítógépes Grafika

Page 2: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás

Tartalom

1 Emlékeztető

2 VágásVágás 2D-benVágás 3D-ben

3 RaszterizálásSzakasz raszterizálásaHáromszög raszterizálásaPoligon raszterizáció

Bán Róbert [email protected] Számítógépes Grafika

Page 3: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás

Grafikus szerelőszalag

Bán Róbert [email protected] Számítógépes Grafika

Page 4: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás

Inkrementális képszintézis

Inkrementális elv

A transzformációk szemszögéből végignéztük a grafikusszerelőszalagot illetve a láthatósági probléma egy képtér alapúmegoldását is megnéztükMost pedig a vágás és raszterizáció témakörével fogunkfoglalkozni

Bán Róbert [email protected] Számítógépes Grafika

Page 5: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás

Inkrementális képszintézis

Inkrementális elvA transzformációk szemszögéből végignéztük a grafikusszerelőszalagot illetve a láthatósági probléma egy képtér alapúmegoldását is megnéztük

Most pedig a vágás és raszterizáció témakörével fogunkfoglalkozni

Bán Róbert [email protected] Számítógépes Grafika

Page 6: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás

Inkrementális képszintézis

Inkrementális elvA transzformációk szemszögéből végignéztük a grafikusszerelőszalagot illetve a láthatósági probléma egy képtér alapúmegoldását is megnéztükMost pedig a vágás és raszterizáció témakörével fogunkfoglalkozni

Bán Róbert [email protected] Számítógépes Grafika

Page 7: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

VágásLáttuk, hogy a vágásra két okból is szükségünk lesz:

Degenerált esetek kiszűrése (ld. pl. múlt óra középpontosvetítés)Ne számoljunk feleslegesen (amit úgyse látunk, ne számoljuksokat)

Vágás során a nézeti csonkagúlán kívül geometriai elemeketszűrjük ki

Bán Róbert [email protected] Számítógépes Grafika

Page 8: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

VágásLáttuk, hogy a vágásra két okból is szükségünk lesz:

Degenerált esetek kiszűrése (ld. pl. múlt óra középpontosvetítés)

Ne számoljunk feleslegesen (amit úgyse látunk, ne számoljuksokat)

Vágás során a nézeti csonkagúlán kívül geometriai elemeketszűrjük ki

Bán Róbert [email protected] Számítógépes Grafika

Page 9: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

VágásLáttuk, hogy a vágásra két okból is szükségünk lesz:

Degenerált esetek kiszűrése (ld. pl. múlt óra középpontosvetítés)Ne számoljunk feleslegesen (amit úgyse látunk, ne számoljuksokat)

Vágás során a nézeti csonkagúlán kívül geometriai elemeketszűrjük ki

Bán Róbert [email protected] Számítógépes Grafika

Page 10: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

VágásLáttuk, hogy a vágásra két okból is szükségünk lesz:

Degenerált esetek kiszűrése (ld. pl. múlt óra középpontosvetítés)Ne számoljunk feleslegesen (amit úgyse látunk, ne számoljuksokat)

Vágás során a nézeti csonkagúlán kívül geometriai elemeketszűrjük ki

Bán Róbert [email protected] Számítógépes Grafika

Page 11: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Tartalom

1 Emlékeztető

2 VágásVágás 2D-benVágás 3D-ben

3 RaszterizálásSzakasz raszterizálásaHáromszög raszterizálásaPoligon raszterizáció

Bán Róbert [email protected] Számítógépes Grafika

Page 12: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 2D-ben

Egyszerű geometriai elemek (pontok és szakaszok) vágásátvizsgáljuk most a síkban

Kell egy tartományra amire vágunk – az egyszerűtől(tengelyillesztett téglalap) az általános felé (konvex poligon)haladunkElőször pontok vágásával foglalkozunk, majd az ittenieredményeket felhasználva próbálunk meg szakaszokat vágni

Bán Róbert [email protected] Számítógépes Grafika

Page 13: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 2D-ben

Egyszerű geometriai elemek (pontok és szakaszok) vágásátvizsgáljuk most a síkbanKell egy tartományra amire vágunk – az egyszerűtől(tengelyillesztett téglalap) az általános felé (konvex poligon)haladunk

Először pontok vágásával foglalkozunk, majd az ittenieredményeket felhasználva próbálunk meg szakaszokat vágni

Bán Róbert [email protected] Számítógépes Grafika

Page 14: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 2D-ben

Egyszerű geometriai elemek (pontok és szakaszok) vágásátvizsgáljuk most a síkbanKell egy tartományra amire vágunk – az egyszerűtől(tengelyillesztett téglalap) az általános felé (konvex poligon)haladunkElőször pontok vágásával foglalkozunk, majd az ittenieredményeket felhasználva próbálunk meg szakaszokat vágni

Bán Róbert [email protected] Számítógépes Grafika

Page 15: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása tengelyillesztett téglalapra

El kell döntenünk egy x = [x, y]T pontról, hogy a vágásitartományon belül vagy kívül van-e

A legegyszerűbb esetben a vágási tartományunk egytengelyekkel párhuzamos oldalú téglalapEzt egy átlójának két végpontjával könnyen reprezentálhatjuk:wmin = [xmin, ymin]T, wmax = [xmax, ymax]T

Bán Róbert [email protected] Számítógépes Grafika

Page 16: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása tengelyillesztett téglalapra

El kell döntenünk egy x = [x, y]T pontról, hogy a vágásitartományon belül vagy kívül van-eA legegyszerűbb esetben a vágási tartományunk egytengelyekkel párhuzamos oldalú téglalap

Ezt egy átlójának két végpontjával könnyen reprezentálhatjuk:wmin = [xmin, ymin]T, wmax = [xmax, ymax]T

Bán Róbert [email protected] Számítógépes Grafika

Page 17: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása tengelyillesztett téglalapra

El kell döntenünk egy x = [x, y]T pontról, hogy a vágásitartományon belül vagy kívül van-eA legegyszerűbb esetben a vágási tartományunk egytengelyekkel párhuzamos oldalú téglalapEzt egy átlójának két végpontjával könnyen reprezentálhatjuk:wmin = [xmin, ymin]T, wmax = [xmax, ymax]T

Bán Róbert [email protected] Számítógépes Grafika

Page 18: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása tengelyillesztett téglalapra

Ekkor az x pontosan akkor van a tengelyillesztett téglalaponbelül van, ha

x ∈ [xmin, xmax] ∧ y ∈ [ymin, ymax]

Bán Róbert [email protected] Számítógépes Grafika

Page 19: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása konvex négyszögreLegyen most a vágási tartományunk egy konvex négyszög

Ez felírható négy félsík metszeteként: a határoló egyeneseinekbefelé irányított normálvektorai által meghatározott félterekkelAzaz ekkor a vágási tartományunkat (pi,ni), i = 0, .., 3pont-normális párrál tudjuk reprezentálni, ahol most legyenminden normális befelé irányított

Bán Róbert [email protected] Számítógépes Grafika

Page 20: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása konvex négyszögreLegyen most a vágási tartományunk egy konvex négyszögEz felírható négy félsík metszeteként: a határoló egyeneseinekbefelé irányított normálvektorai által meghatározott félterekkel

Azaz ekkor a vágási tartományunkat (pi,ni), i = 0, .., 3pont-normális párrál tudjuk reprezentálni, ahol most legyenminden normális befelé irányított

Bán Róbert [email protected] Számítógépes Grafika

Page 21: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása konvex négyszögreLegyen most a vágási tartományunk egy konvex négyszögEz felírható négy félsík metszeteként: a határoló egyeneseinekbefelé irányított normálvektorai által meghatározott félterekkelAzaz ekkor a vágási tartományunkat (pi,ni), i = 0, .., 3pont-normális párrál tudjuk reprezentálni, ahol most legyenminden normális befelé irányított

Bán Róbert [email protected] Számítógépes Grafika

Page 22: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása konvex négyszögre

Ekkor x = [x, y]T pontosan akkor van a vágási tartományonbelül, ha

⟨x− pi,ni⟩ ≥ 0 , i = 0, 1, 2, 3

Ebben az esetben minden (pi;ni) által meghatározott félsíktartalmazza x-et (vagy a határoló egyenesen van, vagy pedigattól normális irányban)Azaz egyszerűen az x− pi vektorok ni normálisokra vettelőjeles merőleges vetületeinek előjelét kell vizsgálni

Bán Róbert [email protected] Számítógépes Grafika

Page 23: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása konvex négyszögre

Ekkor x = [x, y]T pontosan akkor van a vágási tartományonbelül, ha

⟨x− pi,ni⟩ ≥ 0 , i = 0, 1, 2, 3

Ebben az esetben minden (pi;ni) által meghatározott félsíktartalmazza x-et (vagy a határoló egyenesen van, vagy pedigattól normális irányban)

Azaz egyszerűen az x− pi vektorok ni normálisokra vettelőjeles merőleges vetületeinek előjelét kell vizsgálni

Bán Róbert [email protected] Számítógépes Grafika

Page 24: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Pontok vágása konvex négyszögre

Ekkor x = [x, y]T pontosan akkor van a vágási tartományonbelül, ha

⟨x− pi,ni⟩ ≥ 0 , i = 0, 1, 2, 3

Ebben az esetben minden (pi;ni) által meghatározott félsíktartalmazza x-et (vagy a határoló egyenesen van, vagy pedigattól normális irányban)Azaz egyszerűen az x− pi vektorok ni normálisokra vettelőjeles merőleges vetületeinek előjelét kell vizsgálni

Bán Róbert [email protected] Számítógépes Grafika

Page 25: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Előjeles merőleges vetület

Bán Róbert [email protected] Számítógépes Grafika

Page 26: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Előjeles merőleges vetület - pont a félsíkon belül

Bán Róbert [email protected] Számítógépes Grafika

Page 27: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Előjeles merőleges vetület - pont a félsíkon kívül

Bán Róbert [email protected] Számítógépes Grafika

Page 28: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Vágjuk a szakasz két végpontját a félsíkra

Ha mindkettő belül van akkor megtartjuk a szakasztHa mindkettő kívül van akkor eldobjuk a szakasztHa az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára

Bán Róbert [email protected] Számítógépes Grafika

Page 29: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Vágjuk a szakasz két végpontját a félsíkraHa mindkettő belül van akkor megtartjuk a szakaszt

Ha mindkettő kívül van akkor eldobjuk a szakasztHa az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára

Bán Róbert [email protected] Számítógépes Grafika

Page 30: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Vágjuk a szakasz két végpontját a félsíkraHa mindkettő belül van akkor megtartjuk a szakasztHa mindkettő kívül van akkor eldobjuk a szakaszt

Ha az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára

Bán Róbert [email protected] Számítógépes Grafika

Page 31: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Vágjuk a szakasz két végpontját a félsíkraHa mindkettő belül van akkor megtartjuk a szakasztHa mindkettő kívül van akkor eldobjuk a szakasztHa az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára

Bán Róbert [email protected] Számítógépes Grafika

Page 32: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Bán Róbert [email protected] Számítógépes Grafika

Page 33: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Bán Róbert [email protected] Számítógépes Grafika

Page 34: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Bán Róbert [email protected] Számítógépes Grafika

Page 35: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra - új végpont!

Bán Róbert [email protected] Számítógépes Grafika

Page 36: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra - új végpont!

Bán Róbert [email protected] Számítógépes Grafika

Page 37: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása félsíkra

Bán Róbert [email protected] Számítógépes Grafika

Page 38: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

Minden egyes határoló félsíkra:Vágjuk a szakasz két végpontját a félsíkra

Ha mindkettő belül van akkor nem módosítjuk a végpontot ésmegyünk továbbHa mindkettő kívül van akkor eldobjuk a szakaszt ésbefejeztükHa az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára és megyünk tovább

Bán Róbert [email protected] Számítógépes Grafika

Page 39: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

Minden egyes határoló félsíkra:Vágjuk a szakasz két végpontját a félsíkra

Ha mindkettő belül van akkor nem módosítjuk a végpontot ésmegyünk tovább

Ha mindkettő kívül van akkor eldobjuk a szakaszt ésbefejeztükHa az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára és megyünk tovább

Bán Róbert [email protected] Számítógépes Grafika

Page 40: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

Minden egyes határoló félsíkra:Vágjuk a szakasz két végpontját a félsíkra

Ha mindkettő belül van akkor nem módosítjuk a végpontot ésmegyünk továbbHa mindkettő kívül van akkor eldobjuk a szakaszt ésbefejeztük

Ha az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára és megyünk tovább

Bán Róbert [email protected] Számítógépes Grafika

Page 41: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

Minden egyes határoló félsíkra:Vágjuk a szakasz két végpontját a félsíkra

Ha mindkettő belül van akkor nem módosítjuk a végpontot ésmegyünk továbbHa mindkettő kívül van akkor eldobjuk a szakaszt ésbefejeztükHa az egyik kívül a másik pedig belül van akkor megtartjuk abentlévő végpontot, a kiesőt pedig lecseréljük a szakasz és afélsík határolóegyenesének metszéspontjára és megyünk tovább

Bán Róbert [email protected] Számítógépes Grafika

Page 42: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása tengelyillesztett téglalapra

Amikor a harmadik Ha teljesül (azaz amikor metszéspontotkell számítani), tengelyillesztett esetben egyszerű a dolgunk

Például tekintsük a baloldali határra történő vágást ⇒ ekkorkell egy olyan t, amelyre x(t) x-koordinátája xmin

Azaz xmin = x1 + t(x2 − x1)-ből t = xmin−x1x2−x1

Ekkor az új végpont koordinátái

x( xmin−x1x2−x1

) =

[xmin

y1 +xmin−x1x2−x1

(y2 − y1)

]

Bán Róbert [email protected] Számítógépes Grafika

Page 43: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása tengelyillesztett téglalapra

Amikor a harmadik Ha teljesül (azaz amikor metszéspontotkell számítani), tengelyillesztett esetben egyszerű a dolgunkPéldául tekintsük a baloldali határra történő vágást ⇒ ekkorkell egy olyan t, amelyre x(t) x-koordinátája xmin

Azaz xmin = x1 + t(x2 − x1)-ből t = xmin−x1x2−x1

Ekkor az új végpont koordinátái

x( xmin−x1x2−x1

) =

[xmin

y1 +xmin−x1x2−x1

(y2 − y1)

]

Bán Róbert [email protected] Számítógépes Grafika

Page 44: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása tengelyillesztett téglalapra

Amikor a harmadik Ha teljesül (azaz amikor metszéspontotkell számítani), tengelyillesztett esetben egyszerű a dolgunkPéldául tekintsük a baloldali határra történő vágást ⇒ ekkorkell egy olyan t, amelyre x(t) x-koordinátája xmin

Azaz xmin = x1 + t(x2 − x1)-ből t = xmin−x1x2−x1

Ekkor az új végpont koordinátái

x( xmin−x1x2−x1

) =

[xmin

y1 +xmin−x1x2−x1

(y2 − y1)

]

Bán Róbert [email protected] Számítógépes Grafika

Page 45: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása tengelyillesztett téglalapra

Amikor a harmadik Ha teljesül (azaz amikor metszéspontotkell számítani), tengelyillesztett esetben egyszerű a dolgunkPéldául tekintsük a baloldali határra történő vágást ⇒ ekkorkell egy olyan t, amelyre x(t) x-koordinátája xmin

Azaz xmin = x1 + t(x2 − x1)-ből t = xmin−x1x2−x1

Ekkor az új végpont koordinátái

x( xmin−x1x2−x1

) =

[xmin

y1 +xmin−x1x2−x1

(y2 − y1)

]

Bán Róbert [email protected] Számítógépes Grafika

Page 46: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

A korábban látottaknak megfelelően kell a végpontokat vágniaz aktuális félsíkra

Ha új végpontot kell számolni, akkor egyszerűen be kellhelyettesíteni a szakasz (aktuális) paramterikus egyenletét azadott félsíkot határoló egyenes implicit egyenletébeAzaz, meg kell oldani az aktuális i ∈ {0, 1, 2, 3}-re az

⟨x(t)− pi,ni⟩ ≥ 0

egyenletet, ahol t ∈ [0, 1] mellett

x(t) = x1 + t(x2 − x1)

A metszéspont paramétere ekkor t = ⟨pi−x1,ni⟩⟨x2−x1,ni⟩

Bán Róbert [email protected] Számítógépes Grafika

Page 47: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

A korábban látottaknak megfelelően kell a végpontokat vágniaz aktuális félsíkraHa új végpontot kell számolni, akkor egyszerűen be kellhelyettesíteni a szakasz (aktuális) paramterikus egyenletét azadott félsíkot határoló egyenes implicit egyenletébe

Azaz, meg kell oldani az aktuális i ∈ {0, 1, 2, 3}-re az

⟨x(t)− pi,ni⟩ ≥ 0

egyenletet, ahol t ∈ [0, 1] mellett

x(t) = x1 + t(x2 − x1)

A metszéspont paramétere ekkor t = ⟨pi−x1,ni⟩⟨x2−x1,ni⟩

Bán Róbert [email protected] Számítógépes Grafika

Page 48: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

A korábban látottaknak megfelelően kell a végpontokat vágniaz aktuális félsíkraHa új végpontot kell számolni, akkor egyszerűen be kellhelyettesíteni a szakasz (aktuális) paramterikus egyenletét azadott félsíkot határoló egyenes implicit egyenletébeAzaz, meg kell oldani az aktuális i ∈ {0, 1, 2, 3}-re az

⟨x(t)− pi,ni⟩ ≥ 0

egyenletet, ahol t ∈ [0, 1] mellett

x(t) = x1 + t(x2 − x1)

A metszéspont paramétere ekkor t = ⟨pi−x1,ni⟩⟨x2−x1,ni⟩

Bán Róbert [email protected] Számítógépes Grafika

Page 49: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex négyszögre

A korábban látottaknak megfelelően kell a végpontokat vágniaz aktuális félsíkraHa új végpontot kell számolni, akkor egyszerűen be kellhelyettesíteni a szakasz (aktuális) paramterikus egyenletét azadott félsíkot határoló egyenes implicit egyenletébeAzaz, meg kell oldani az aktuális i ∈ {0, 1, 2, 3}-re az

⟨x(t)− pi,ni⟩ ≥ 0

egyenletet, ahol t ∈ [0, 1] mellett

x(t) = x1 + t(x2 − x1)

A metszéspont paramétere ekkor t = ⟨pi−x1,ni⟩⟨x2−x1,ni⟩

Bán Róbert [email protected] Számítógépes Grafika

Page 50: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex sokszögre

Ugyanúgy működik, mint konvex négyszögre

Az egyetlen különbség, hogy nem négy, hanem több (vagycsak három) határoló egyenes vanA normálisok irányítása legyen konzisztens

Bán Róbert [email protected] Számítógépes Grafika

Page 51: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex sokszögre

Ugyanúgy működik, mint konvex négyszögreAz egyetlen különbség, hogy nem négy, hanem több (vagycsak három) határoló egyenes van

A normálisok irányítása legyen konzisztens

Bán Róbert [email protected] Számítógépes Grafika

Page 52: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakasz vágása konvex sokszögre

Ugyanúgy működik, mint konvex négyszögreAz egyetlen különbség, hogy nem négy, hanem több (vagycsak három) határoló egyenes vanA normálisok irányítása legyen konzisztens

Bán Róbert [email protected] Számítógépes Grafika

Page 53: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakaszok vágása

A fentiek szerint tehát a szakaszt minden egyes félsíkra vágnikell

Viszont elég sokféle lehetőség van (négy félsík négyszögeknél,két végpont – bármelyik végpont eshet bárhová)A Cohen-Sutherland algoritmussal rendszerezni tudjuk, hogymely oldalakra kell vágást végezni

Bán Róbert [email protected] Számítógépes Grafika

Page 54: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakaszok vágása

A fentiek szerint tehát a szakaszt minden egyes félsíkra vágnikellViszont elég sokféle lehetőség van (négy félsík négyszögeknél,két végpont – bármelyik végpont eshet bárhová)

A Cohen-Sutherland algoritmussal rendszerezni tudjuk, hogymely oldalakra kell vágást végezni

Bán Róbert [email protected] Számítógépes Grafika

Page 55: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Szakaszok vágása

A fentiek szerint tehát a szakaszt minden egyes félsíkra vágnikellViszont elég sokféle lehetőség van (négy félsík négyszögeknél,két végpont – bármelyik végpont eshet bárhová)A Cohen-Sutherland algoritmussal rendszerezni tudjuk, hogymely oldalakra kell vágást végezni

Bán Róbert [email protected] Számítógépes Grafika

Page 56: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett téglalapokra vágásnál használják (deműködik konvex négyszögekre is)

Rendeljünk hozzá egy-egy 4 bites (úgynevezett TBRL) kódota két végponthoz:

T = 1 ha a pont az ablak felett van, különben 0B = 1 ha a pont az ablak alatt van, különben 0R = 1 ha a pont az ablaktól jobbra van, különben 0L = 1 ha a pont az ablaktól balra van, különben 0

Bán Róbert [email protected] Számítógépes Grafika

Page 57: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett téglalapokra vágásnál használják (deműködik konvex négyszögekre is)Rendeljünk hozzá egy-egy 4 bites (úgynevezett TBRL) kódota két végponthoz:

T = 1 ha a pont az ablak felett van, különben 0B = 1 ha a pont az ablak alatt van, különben 0R = 1 ha a pont az ablaktól jobbra van, különben 0L = 1 ha a pont az ablaktól balra van, különben 0

Bán Róbert [email protected] Számítógépes Grafika

Page 58: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett téglalapokra vágásnál használják (deműködik konvex négyszögekre is)Rendeljünk hozzá egy-egy 4 bites (úgynevezett TBRL) kódota két végponthoz:

T = 1 ha a pont az ablak felett van, különben 0

B = 1 ha a pont az ablak alatt van, különben 0R = 1 ha a pont az ablaktól jobbra van, különben 0L = 1 ha a pont az ablaktól balra van, különben 0

Bán Róbert [email protected] Számítógépes Grafika

Page 59: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett téglalapokra vágásnál használják (deműködik konvex négyszögekre is)Rendeljünk hozzá egy-egy 4 bites (úgynevezett TBRL) kódota két végponthoz:

T = 1 ha a pont az ablak felett van, különben 0B = 1 ha a pont az ablak alatt van, különben 0

R = 1 ha a pont az ablaktól jobbra van, különben 0L = 1 ha a pont az ablaktól balra van, különben 0

Bán Róbert [email protected] Számítógépes Grafika

Page 60: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett téglalapokra vágásnál használják (deműködik konvex négyszögekre is)Rendeljünk hozzá egy-egy 4 bites (úgynevezett TBRL) kódota két végponthoz:

T = 1 ha a pont az ablak felett van, különben 0B = 1 ha a pont az ablak alatt van, különben 0R = 1 ha a pont az ablaktól jobbra van, különben 0

L = 1 ha a pont az ablaktól balra van, különben 0

Bán Róbert [email protected] Számítógépes Grafika

Page 61: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett téglalapokra vágásnál használják (deműködik konvex négyszögekre is)Rendeljünk hozzá egy-egy 4 bites (úgynevezett TBRL) kódota két végponthoz:

T = 1 ha a pont az ablak felett van, különben 0B = 1 ha a pont az ablak alatt van, különben 0R = 1 ha a pont az ablaktól jobbra van, különben 0L = 1 ha a pont az ablaktól balra van, különben 0

Bán Róbert [email protected] Számítógépes Grafika

Page 62: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

code = Top, Bottom, Right, Left

Bán Róbert [email protected] Számítógépes Grafika

Page 63: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett esetben könnyen számítható a TBRL kód:code = (y > ymax, y < ymin, x > xmax, x < xmin)

Legyen a két végpont TBRL kódja codea és codebHa codea OR codeb == 0 akkor mindkét végpont az ablakonbelül van ⇒ megtartjuk a szakasztHa codea AND codeb != 0 akkor mindként végpont azablakon kívül van egy közös oldal mentén ⇒ eldobjuk aszakasztKülönben: vágnunk kell a szakaszt (a TBRL-beli 1-esekmondják meg, hogy melyik oldalra lehet). Újraszámítjuk avágott végpont kódját és ismét összehasonlítjuk őket afentieknek megfelelően.

Bán Róbert [email protected] Számítógépes Grafika

Page 64: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett esetben könnyen számítható a TBRL kód:code = (y > ymax, y < ymin, x > xmax, x < xmin)

Legyen a két végpont TBRL kódja codea és codeb

Ha codea OR codeb == 0 akkor mindkét végpont az ablakonbelül van ⇒ megtartjuk a szakasztHa codea AND codeb != 0 akkor mindként végpont azablakon kívül van egy közös oldal mentén ⇒ eldobjuk aszakasztKülönben: vágnunk kell a szakaszt (a TBRL-beli 1-esekmondják meg, hogy melyik oldalra lehet). Újraszámítjuk avágott végpont kódját és ismét összehasonlítjuk őket afentieknek megfelelően.

Bán Róbert [email protected] Számítógépes Grafika

Page 65: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett esetben könnyen számítható a TBRL kód:code = (y > ymax, y < ymin, x > xmax, x < xmin)

Legyen a két végpont TBRL kódja codea és codebHa codea OR codeb == 0 akkor mindkét végpont az ablakonbelül van ⇒ megtartjuk a szakaszt

Ha codea AND codeb != 0 akkor mindként végpont azablakon kívül van egy közös oldal mentén ⇒ eldobjuk aszakasztKülönben: vágnunk kell a szakaszt (a TBRL-beli 1-esekmondják meg, hogy melyik oldalra lehet). Újraszámítjuk avágott végpont kódját és ismét összehasonlítjuk őket afentieknek megfelelően.

Bán Róbert [email protected] Számítógépes Grafika

Page 66: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett esetben könnyen számítható a TBRL kód:code = (y > ymax, y < ymin, x > xmax, x < xmin)

Legyen a két végpont TBRL kódja codea és codebHa codea OR codeb == 0 akkor mindkét végpont az ablakonbelül van ⇒ megtartjuk a szakasztHa codea AND codeb != 0 akkor mindként végpont azablakon kívül van egy közös oldal mentén ⇒ eldobjuk aszakaszt

Különben: vágnunk kell a szakaszt (a TBRL-beli 1-esekmondják meg, hogy melyik oldalra lehet). Újraszámítjuk avágott végpont kódját és ismét összehasonlítjuk őket afentieknek megfelelően.

Bán Róbert [email protected] Számítógépes Grafika

Page 67: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland vágás

Tengelyillesztett esetben könnyen számítható a TBRL kód:code = (y > ymax, y < ymin, x > xmax, x < xmin)

Legyen a két végpont TBRL kódja codea és codebHa codea OR codeb == 0 akkor mindkét végpont az ablakonbelül van ⇒ megtartjuk a szakasztHa codea AND codeb != 0 akkor mindként végpont azablakon kívül van egy közös oldal mentén ⇒ eldobjuk aszakasztKülönben: vágnunk kell a szakaszt (a TBRL-beli 1-esekmondják meg, hogy melyik oldalra lehet). Újraszámítjuk avágott végpont kódját és ismét összehasonlítjuk őket afentieknek megfelelően.

Bán Róbert [email protected] Számítógépes Grafika

Page 68: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland clipping

codea OR codeb == 0:

Bán Róbert [email protected] Számítógépes Grafika

Page 69: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland clipping

codea AND codeb != 0:

Bán Róbert [email protected] Számítógépes Grafika

Page 70: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Cohen-Sutherland clipping

Különben:

Bán Róbert [email protected] Számítógépes Grafika

Page 71: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Poligon vágása konvex poligonra

Egy poligont eltárolhatunk a csúcspontjainak tömbjével, ha abejárási irányt rögzítjük

Legyen a vágási tartományunk egy konvex poligonNézzük meg, hogy miképp tudunk egy poligon egy konvexpoligonra vágni

Bán Róbert [email protected] Számítógépes Grafika

Page 72: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Poligon vágása konvex poligonra

Egy poligont eltárolhatunk a csúcspontjainak tömbjével, ha abejárási irányt rögzítjükLegyen a vágási tartományunk egy konvex poligon

Nézzük meg, hogy miképp tudunk egy poligon egy konvexpoligonra vágni

Bán Róbert [email protected] Számítógépes Grafika

Page 73: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Poligon vágása konvex poligonra

Egy poligont eltárolhatunk a csúcspontjainak tömbjével, ha abejárási irányt rögzítjükLegyen a vágási tartományunk egy konvex poligonNézzük meg, hogy miképp tudunk egy poligon egy konvexpoligonra vágni

Bán Róbert [email protected] Számítógépes Grafika

Page 74: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágásEgy oldalra vágás: legyen p[] a vágandó poligoncsúcspontjainak tömbje, a q[] pedig a kimeneti poligon tömbje(azaz a vágott poligoné)

Legyen n a csúcspontok száma, továbbá tegyük fel, hogyp[0] = p[n]Menjünk végig a vágandó poligon élein:

Ha p[i] és p[i + 1] belül van akkor⇒ adjuk hozzá a p[i] pontot a q[] kimeneti poligonhozHa p[i] belül és p[i + 1] kívül van akkor⇒ adjuk hozzá p[i]-t a q[] kimeneti poligonhoz és adjuk hozzáq[]-hoz a p[i],p[i + 1] által meghatározott szakasz és azaktuális oldal egyenesének metszéspontját isHa p[i] kívül és p[i + 1] belül van akkor⇒ adjuk hozzá q[]-hoz a p[i], p[i + 1] által meghatározottszakasz és az aktuális oldal egyenesének metszéspontjátHa p[i] és p[i + 1] is kívül van akkor ⇒ SKIP

Ezt ismételjük el a vágó poligon minden oldalára (az előzőoldal vágásának az eredménye a következő vágás bemenete)

Bán Róbert [email protected] Számítógépes Grafika

Page 75: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágásEgy oldalra vágás: legyen p[] a vágandó poligoncsúcspontjainak tömbje, a q[] pedig a kimeneti poligon tömbje(azaz a vágott poligoné)Legyen n a csúcspontok száma, továbbá tegyük fel, hogyp[0] = p[n]

Menjünk végig a vágandó poligon élein:Ha p[i] és p[i + 1] belül van akkor⇒ adjuk hozzá a p[i] pontot a q[] kimeneti poligonhozHa p[i] belül és p[i + 1] kívül van akkor⇒ adjuk hozzá p[i]-t a q[] kimeneti poligonhoz és adjuk hozzáq[]-hoz a p[i],p[i + 1] által meghatározott szakasz és azaktuális oldal egyenesének metszéspontját isHa p[i] kívül és p[i + 1] belül van akkor⇒ adjuk hozzá q[]-hoz a p[i], p[i + 1] által meghatározottszakasz és az aktuális oldal egyenesének metszéspontjátHa p[i] és p[i + 1] is kívül van akkor ⇒ SKIP

Ezt ismételjük el a vágó poligon minden oldalára (az előzőoldal vágásának az eredménye a következő vágás bemenete)

Bán Róbert [email protected] Számítógépes Grafika

Page 76: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágásEgy oldalra vágás: legyen p[] a vágandó poligoncsúcspontjainak tömbje, a q[] pedig a kimeneti poligon tömbje(azaz a vágott poligoné)Legyen n a csúcspontok száma, továbbá tegyük fel, hogyp[0] = p[n]Menjünk végig a vágandó poligon élein:

Ha p[i] és p[i + 1] belül van akkor⇒ adjuk hozzá a p[i] pontot a q[] kimeneti poligonhoz

Ha p[i] belül és p[i + 1] kívül van akkor⇒ adjuk hozzá p[i]-t a q[] kimeneti poligonhoz és adjuk hozzáq[]-hoz a p[i],p[i + 1] által meghatározott szakasz és azaktuális oldal egyenesének metszéspontját isHa p[i] kívül és p[i + 1] belül van akkor⇒ adjuk hozzá q[]-hoz a p[i], p[i + 1] által meghatározottszakasz és az aktuális oldal egyenesének metszéspontjátHa p[i] és p[i + 1] is kívül van akkor ⇒ SKIP

Ezt ismételjük el a vágó poligon minden oldalára (az előzőoldal vágásának az eredménye a következő vágás bemenete)

Bán Róbert [email protected] Számítógépes Grafika

Page 77: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágásEgy oldalra vágás: legyen p[] a vágandó poligoncsúcspontjainak tömbje, a q[] pedig a kimeneti poligon tömbje(azaz a vágott poligoné)Legyen n a csúcspontok száma, továbbá tegyük fel, hogyp[0] = p[n]Menjünk végig a vágandó poligon élein:

Ha p[i] és p[i + 1] belül van akkor⇒ adjuk hozzá a p[i] pontot a q[] kimeneti poligonhozHa p[i] belül és p[i + 1] kívül van akkor⇒ adjuk hozzá p[i]-t a q[] kimeneti poligonhoz és adjuk hozzáq[]-hoz a p[i],p[i + 1] által meghatározott szakasz és azaktuális oldal egyenesének metszéspontját is

Ha p[i] kívül és p[i + 1] belül van akkor⇒ adjuk hozzá q[]-hoz a p[i], p[i + 1] által meghatározottszakasz és az aktuális oldal egyenesének metszéspontjátHa p[i] és p[i + 1] is kívül van akkor ⇒ SKIP

Ezt ismételjük el a vágó poligon minden oldalára (az előzőoldal vágásának az eredménye a következő vágás bemenete)

Bán Róbert [email protected] Számítógépes Grafika

Page 78: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágásEgy oldalra vágás: legyen p[] a vágandó poligoncsúcspontjainak tömbje, a q[] pedig a kimeneti poligon tömbje(azaz a vágott poligoné)Legyen n a csúcspontok száma, továbbá tegyük fel, hogyp[0] = p[n]Menjünk végig a vágandó poligon élein:

Ha p[i] és p[i + 1] belül van akkor⇒ adjuk hozzá a p[i] pontot a q[] kimeneti poligonhozHa p[i] belül és p[i + 1] kívül van akkor⇒ adjuk hozzá p[i]-t a q[] kimeneti poligonhoz és adjuk hozzáq[]-hoz a p[i],p[i + 1] által meghatározott szakasz és azaktuális oldal egyenesének metszéspontját isHa p[i] kívül és p[i + 1] belül van akkor⇒ adjuk hozzá q[]-hoz a p[i], p[i + 1] által meghatározottszakasz és az aktuális oldal egyenesének metszéspontját

Ha p[i] és p[i + 1] is kívül van akkor ⇒ SKIPEzt ismételjük el a vágó poligon minden oldalára (az előzőoldal vágásának az eredménye a következő vágás bemenete)

Bán Róbert [email protected] Számítógépes Grafika

Page 79: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágásEgy oldalra vágás: legyen p[] a vágandó poligoncsúcspontjainak tömbje, a q[] pedig a kimeneti poligon tömbje(azaz a vágott poligoné)Legyen n a csúcspontok száma, továbbá tegyük fel, hogyp[0] = p[n]Menjünk végig a vágandó poligon élein:

Ha p[i] és p[i + 1] belül van akkor⇒ adjuk hozzá a p[i] pontot a q[] kimeneti poligonhozHa p[i] belül és p[i + 1] kívül van akkor⇒ adjuk hozzá p[i]-t a q[] kimeneti poligonhoz és adjuk hozzáq[]-hoz a p[i],p[i + 1] által meghatározott szakasz és azaktuális oldal egyenesének metszéspontját isHa p[i] kívül és p[i + 1] belül van akkor⇒ adjuk hozzá q[]-hoz a p[i], p[i + 1] által meghatározottszakasz és az aktuális oldal egyenesének metszéspontjátHa p[i] és p[i + 1] is kívül van akkor ⇒ SKIP

Ezt ismételjük el a vágó poligon minden oldalára (az előzőoldal vágásának az eredménye a következő vágás bemenete)

Bán Róbert [email protected] Számítógépes Grafika

Page 80: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágásEgy oldalra vágás: legyen p[] a vágandó poligoncsúcspontjainak tömbje, a q[] pedig a kimeneti poligon tömbje(azaz a vágott poligoné)Legyen n a csúcspontok száma, továbbá tegyük fel, hogyp[0] = p[n]Menjünk végig a vágandó poligon élein:

Ha p[i] és p[i + 1] belül van akkor⇒ adjuk hozzá a p[i] pontot a q[] kimeneti poligonhozHa p[i] belül és p[i + 1] kívül van akkor⇒ adjuk hozzá p[i]-t a q[] kimeneti poligonhoz és adjuk hozzáq[]-hoz a p[i],p[i + 1] által meghatározott szakasz és azaktuális oldal egyenesének metszéspontját isHa p[i] kívül és p[i + 1] belül van akkor⇒ adjuk hozzá q[]-hoz a p[i], p[i + 1] által meghatározottszakasz és az aktuális oldal egyenesének metszéspontjátHa p[i] és p[i + 1] is kívül van akkor ⇒ SKIP

Ezt ismételjük el a vágó poligon minden oldalára (az előzőoldal vágásának az eredménye a következő vágás bemenete)Bán Róbert [email protected] Számítógépes Grafika

Page 81: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgman poligon vágás

PolygonClip(in p[n], out q[m], in line) {m = 0;for( i=0; i < n; i++) {

if (IsInside(p[i])) {q[m++] = p[i];if (!IsInside(p[i+1]))

q[m++] = Intersect(p[i], p[i+1], line);} else {

if (IsInside(p[i+1]))q[m++] = Intersect(p[i], p[i+1], line);

}}

}

Bán Róbert [email protected] Számítógépes Grafika

Page 82: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman poligon vágás

Clip onto every edge of the clip-window (polygon)

Bán Róbert [email protected] Számítógépes Grafika

Page 83: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 84: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 85: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 86: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 87: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 88: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 89: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 90: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Sutherland-Hodgeman probléma: konkáv vágandó poligon

Bán Róbert [email protected] Számítógépes Grafika

Page 91: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Tartalom

1 Emlékeztető

2 VágásVágás 2D-benVágás 3D-ben

3 RaszterizálásSzakasz raszterizálásaHáromszög raszterizálásaPoligon raszterizáció

Bán Róbert [email protected] Számítógépes Grafika

Page 92: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 2D-ben

Bán Róbert [email protected] Számítógépes Grafika

Page 93: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 3D-ben

Bán Róbert [email protected] Számítógépes Grafika

Page 94: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 3D-benLényegében ugyanúgy működik, mint korábban, csak most az⟨x− p,n⟩ ≥ 0 típusú implicit egyenletek féltereket határoznakmeg

Térben még inkább megéri tengelyillesztett téglatestekre vágniA Cohen-Sutherland bitkódok most már 6 hosszúak: in front,behind, top, bottom, right, left

Bán Róbert [email protected] Számítógépes Grafika

Page 95: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 3D-benLényegében ugyanúgy működik, mint korábban, csak most az⟨x− p,n⟩ ≥ 0 típusú implicit egyenletek féltereket határoznakmegTérben még inkább megéri tengelyillesztett téglatestekre vágni

A Cohen-Sutherland bitkódok most már 6 hosszúak: in front,behind, top, bottom, right, left

Bán Róbert [email protected] Számítógépes Grafika

Page 96: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Vágás 2D-ben Vágás 3D-ben

Vágás 3D-benLényegében ugyanúgy működik, mint korábban, csak most az⟨x− p,n⟩ ≥ 0 típusú implicit egyenletek féltereket határoznakmegTérben még inkább megéri tengelyillesztett téglatestekre vágniA Cohen-Sutherland bitkódok most már 6 hosszúak: in front,behind, top, bottom, right, left

Bán Róbert [email protected] Számítógépes Grafika

Page 97: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Tartalom

1 Emlékeztető

2 VágásVágás 2D-benVágás 3D-ben

3 RaszterizálásSzakasz raszterizálásaHáromszög raszterizálásaPoligon raszterizáció

Bán Róbert [email protected] Számítógépes Grafika

Page 98: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz rajzolás

Egyik leggyakrabb primitív

Fontos, hogy szépen tudjuk rajzolniMégjobb, ha gyorsan is

Jason Thielke, jasonthielke.com

Bán Róbert [email protected] Számítógépes Grafika

Page 99: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz rajzolás

Egyik leggyakrabb primitívFontos, hogy szépen tudjuk rajzolni

Mégjobb, ha gyorsan is

Jason Thielke, jasonthielke.com

Bán Róbert [email protected] Számítógépes Grafika

Page 100: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz rajzolás

Egyik leggyakrabb primitívFontos, hogy szépen tudjuk rajzolniMégjobb, ha gyorsan is

Jason Thielke, jasonthielke.com

Bán Róbert [email protected] Számítógépes Grafika

Page 101: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz rajzolás

Egyik leggyakrabb primitívFontos, hogy szépen tudjuk rajzolniMégjobb, ha gyorsan is

Jason Thielke, jasonthielke.com

Bán Róbert [email protected] Számítógépes Grafika

Page 102: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Hogyan rajzolunk szakaszt?

Adott a két végpont.

Hogyan tudjuk összekötni őket?Csak miniatűr téglalapjaink vannak (amiket pixelneknevezünk).

Bán Róbert [email protected] Számítógépes Grafika

Page 103: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Hogyan rajzolunk szakaszt?

Adott a két végpont.Hogyan tudjuk összekötni őket?

Csak miniatűr téglalapjaink vannak (amiket pixelneknevezünk).

Bán Róbert [email protected] Számítógépes Grafika

Page 104: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Hogyan rajzolunk szakaszt?

Adott a két végpont.Hogyan tudjuk összekötni őket?Csak miniatűr téglalapjaink vannak (amiket pixelneknevezünk).

Bán Róbert [email protected] Számítógépes Grafika

Page 105: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Hogyan rajzolunk szakaszt?

Adott a két végpont.Hogyan tudjuk összekötni őket?Csak miniatűr téglalapjaink vannak (amiket pixelneknevezünk).

Bán Róbert [email protected] Számítógépes Grafika

Page 106: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Hogyan rajzolunk szakaszt?

Adott a két végpont.Hogyan tudjuk összekötni őket?Csak miniatűr téglalapjaink vannak (amiket pixelneknevezünk).

Bán Róbert [email protected] Számítógépes Grafika

Page 107: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz megadása (sokadszor)

Végpontok: (x1, y1), (x2, y2)

Tfh. nem függőleges: x1 ̸= x2.Szakasz egyenlete:

y = mx + b, x ∈ [x1, x2]

m =y2 − y1x2 − x1

b = y1 −mx1

Bán Róbert [email protected] Számítógépes Grafika

Page 108: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz megadása (sokadszor)

Végpontok: (x1, y1), (x2, y2)

Tfh. nem függőleges: x1 ̸= x2.

Szakasz egyenlete:

y = mx + b, x ∈ [x1, x2]

m =y2 − y1x2 − x1

b = y1 −mx1

Bán Róbert [email protected] Számítógépes Grafika

Page 109: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz megadása (sokadszor)

Végpontok: (x1, y1), (x2, y2)

Tfh. nem függőleges: x1 ̸= x2.Szakasz egyenlete:

y = mx + b, x ∈ [x1, x2]

m =y2 − y1x2 − x1

b = y1 −mx1

Bán Róbert [email protected] Számítógépes Grafika

Page 110: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Szakasz megadása (sokadszor)

Végpontok: (x1, y1), (x2, y2)

Tfh. nem függőleges: x1 ̸= x2.Szakasz egyenlete:

y = mx + b, x ∈ [x1, x2]

m =y2 − y1x2 − x1

b = y1 −mx1

Bán Róbert [email protected] Számítógépes Grafika

Page 111: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Naiv algoritmus

de f l i n e 1 ( x1 , y1 , x2 , y2 , draw ) :m = f l o a t ( y2−y1 )/ ( x2−x1 )x = x1y = f l o a t ( y1 )w h i l e x<=x2 :

draw . p o i n t ( ( x , y ) )x += 1y += m

Bán Róbert [email protected] Számítógépes Grafika

Page 112: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Naiv algoritmus

m = float(y2-y1)/(x2-x1) nempontos

y += m → a hiba gyűlik y-bandraw.point((x,y)) → int-eketvár, lassú a konverziócsak |m| < 1-re működik helyesen

Bán Róbert [email protected] Számítógépes Grafika

Page 113: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Naiv algoritmus

m = float(y2-y1)/(x2-x1) nempontosy += m → a hiba gyűlik y-ban

draw.point((x,y)) → int-eketvár, lassú a konverziócsak |m| < 1-re működik helyesen

Bán Róbert [email protected] Számítógépes Grafika

Page 114: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Naiv algoritmus

m = float(y2-y1)/(x2-x1) nempontosy += m → a hiba gyűlik y-ban

draw.point((x,y)) → int-eketvár, lassú a konverziócsak |m| < 1-re működik helyesen

Bán Róbert [email protected] Számítógépes Grafika

Page 115: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Naiv algoritmus

m = float(y2-y1)/(x2-x1) nempontosy += m → a hiba gyűlik y-bandraw.point((x,y)) → int-eketvár, lassú a konverzió

csak |m| < 1-re működik helyesen

Bán Róbert [email protected] Számítógépes Grafika

Page 116: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Naiv algoritmus

m = float(y2-y1)/(x2-x1) nempontosy += m → a hiba gyűlik y-bandraw.point((x,y)) → int-eketvár, lassú a konverziócsak |m| < 1-re működik helyesen

Bán Róbert [email protected] Számítógépes Grafika

Page 117: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 1.

de f l i n e 2 ( x1 , y1 , x2 , y2 , draw ) :m = f l o a t ( y2−y1 )/ ( x2−x1 )x = x1y = y1e = 0 .0w h i l e x<=x2 :

draw . p o i n t ( ( x , y ) )x += 1e += mi f e >= 0 . 5 :

y += 1e −= 1.0

Bán Róbert [email protected] Számítógépes Grafika

Page 118: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 1.

Jó: Mindig ”eltalálja” avégpontokat

Jó: Egyenletesebben lép az yirányban.Rossz: Még mindig használunkfloat-okat

Naív:

Javítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 119: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 1.

Jó: Mindig ”eltalálja” avégpontokatJó: Egyenletesebben lép az yirányban.

Rossz: Még mindig használunkfloat-okat

Naív:

Javítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 120: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 1.

Jó: Mindig ”eltalálja” avégpontokatJó: Egyenletesebben lép az yirányban.Rossz: Még mindig használunkfloat-okat

Naív:

Javítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 121: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 1.

Jó: Mindig ”eltalálja” avégpontokatJó: Egyenletesebben lép az yirányban.Rossz: Még mindig használunkfloat-okat

Naív:

Javítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 122: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 1.

Jó: Mindig ”eltalálja” avégpontokatJó: Egyenletesebben lép az yirányban.Rossz: Még mindig használunkfloat-okat

Naív:

Javítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 123: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 2.

de f l i n e 3 ( x1 , y1 , x2 , y2 , draw ) :x = x1y = y1e = −0.5←−w h i l e x<=x2 :

draw . p o i n t ( ( x , y ) )x += 1e += f l o a t ( y2−y1 )/ ( x2−x1 )←−i f e >= 0 . 0 :←−

y += 1e −= 1.0

Bán Róbert [email protected] Számítógépes Grafika

Page 124: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 3.

de f l i n e 4 ( x1 , y1 , x2 , y2 , draw ) :x = x1y = y1e = −0.5∗( x2−x1 )←−w h i l e x<=x2 :

draw . p o i n t ( ( x , y ) )x += 1e += y2−y1←−i f e >= 0 . 0 :

y += 1e −= ( x2−x1 )←−

Bán Róbert [email protected] Számítógépes Grafika

Page 125: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 4.

de f l i n e 5 ( x1 , y1 , x2 , y2 , draw ) :x = x1y = y1e = −(x2−x1 )←−w h i l e x<=x2 :

draw . p o i n t ( ( x , y ) )x += 1e += 2∗( y2−y1 )←−i f e >= 0 :

y += 1e −= 2∗( x2−x1 )←−

Bán Róbert [email protected] Számítógépes Grafika

Page 126: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 4.

Ez a Bresenham algoritmus (egyik speciális esete)

Külön gyűjtjük a hibát e-benNem használunk float-okatTetszőleges meredekségű szakaszokra általánosítható.

Bán Róbert [email protected] Számítógépes Grafika

Page 127: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 4.

Ez a Bresenham algoritmus (egyik speciális esete)Külön gyűjtjük a hibát e-ben

Nem használunk float-okatTetszőleges meredekségű szakaszokra általánosítható.

Bán Róbert [email protected] Számítógépes Grafika

Page 128: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 4.

Ez a Bresenham algoritmus (egyik speciális esete)Külön gyűjtjük a hibát e-benNem használunk float-okat

Tetszőleges meredekségű szakaszokra általánosítható.

Bán Róbert [email protected] Számítógépes Grafika

Page 129: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Javítsuk az algoritmust 4.

Ez a Bresenham algoritmus (egyik speciális esete)Külön gyűjtjük a hibát e-benNem használunk float-okatTetszőleges meredekségű szakaszokra általánosítható.

Bán Róbert [email protected] Számítógépes Grafika

Page 130: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Bresenham algoritmus

Nyolcadokra kéne felbontani a síkot, mindegyik külön eset.(Előzők végig: jobbra-le)El kell döntenünk, hogy |x2 − x1| vagy |y2 − y1| a nagyobb(merre meredekebb a szakasz).Ha |y2 − y1| a nagyobb, cseréljük fel xi ↔ yi, és rajzolásnál isfordítva használjuk!Ha x1 > x2, akkor csere: x1 ↔ x2, y1 ↔ y2.Az e hibatagot |y2 − y1|-nal növeljük minden lépésbeny-nal y2 − y1 előjele szerint haladunk.

Bán Róbert [email protected] Számítógépes Grafika

Page 131: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Bresenham algoritmus

Bán Róbert [email protected] Számítógépes Grafika

Page 132: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Teljes Bresenham algoritmus 1.

de f Bresenham ( x1 , y1 , x2 , y2 , draw ) :s t e e p = abs ( y2−y1)>abs ( x2−x1 )i f s t e e p :

x1 , y1 = y1 , x1x2 , y2 = y2 , x2

i f x1>x2 :x1 , x2 = x2 , x1y1 , y2 = y2 , y1

Dy = abs ( y2−y1 )i f y1<y2 :

Sy = 1e l s e :

Sy = −1

Bán Róbert [email protected] Számítógépes Grafika

Page 133: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Teljes Bresenham algoritmus 2.

x = x1y = y1e = −(x2−x1 )w h i l e x<=x2 :

i f s t e e p :draw . p o i n t ( ( y , x ) )

e l s e :draw . p o i n t ( ( x , y ) )

x += 1e += 2∗Dyi f e >= 0 :

y += Sye −= 2∗( x2−x1 )

Bán Róbert [email protected] Számítógépes Grafika

Page 134: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Tartalom

1 Emlékeztető

2 VágásVágás 2D-benVágás 3D-ben

3 RaszterizálásSzakasz raszterizálásaHáromszög raszterizálásaPoligon raszterizáció

Bán Róbert [email protected] Számítógépes Grafika

Page 135: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

A háromszög oldalait tudjuk vágni - most töltsük ki a belsejét!

Ha egy meghatározott bejárási irányban adtuk meg az összesháromszög csúcsát, tudunk félsíkokat adni (tudjuk irányítaniaz éleket) → u.i. ha (tx, ty) az irányvektora az oldalnak, akkor(−ty, tx) egy normális leszMinden pixelre menjünk végig a képernyőn és nézzük meg,hogy a háromszög oldalai által meghatározott síkok jó oldalánvan-e!

Bán Róbert [email protected] Számítógépes Grafika

Page 136: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

A háromszög oldalait tudjuk vágni - most töltsük ki a belsejét!Ha egy meghatározott bejárási irányban adtuk meg az összesháromszög csúcsát, tudunk félsíkokat adni (tudjuk irányítaniaz éleket)

→ u.i. ha (tx, ty) az irányvektora az oldalnak, akkor(−ty, tx) egy normális leszMinden pixelre menjünk végig a képernyőn és nézzük meg,hogy a háromszög oldalai által meghatározott síkok jó oldalánvan-e!

Bán Róbert [email protected] Számítógépes Grafika

Page 137: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

A háromszög oldalait tudjuk vágni - most töltsük ki a belsejét!Ha egy meghatározott bejárási irányban adtuk meg az összesháromszög csúcsát, tudunk félsíkokat adni (tudjuk irányítaniaz éleket) → u.i. ha (tx, ty) az irányvektora az oldalnak, akkor(−ty, tx) egy normális lesz

Minden pixelre menjünk végig a képernyőn és nézzük meg,hogy a háromszög oldalai által meghatározott síkok jó oldalánvan-e!

Bán Róbert [email protected] Számítógépes Grafika

Page 138: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

A háromszög oldalait tudjuk vágni - most töltsük ki a belsejét!Ha egy meghatározott bejárási irányban adtuk meg az összesháromszög csúcsát, tudunk félsíkokat adni (tudjuk irányítaniaz éleket) → u.i. ha (tx, ty) az irányvektora az oldalnak, akkor(−ty, tx) egy normális leszMinden pixelre menjünk végig a képernyőn és nézzük meg,hogy a háromszög oldalai által meghatározott síkok jó oldalánvan-e!

Bán Róbert [email protected] Számítógépes Grafika

Page 139: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

Bán Róbert [email protected] Számítógépes Grafika

Page 140: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció - okosabban

Bán Róbert [email protected] Számítógépes Grafika

Page 141: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

Lehetne még okosabban is csinálni, de: gyakorlatban ez abrute-force megközelítés nagyon jól alkalmazható!

Bán Róbert [email protected] Számítógépes Grafika

Page 142: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

Nem egy rögzített értékkel akarunk kitölteni, a hanem acsúcsokban adott értékeket akarjuk interpolálni.

Felhasználásai: szín (Gouraud-árnyalás), textúra koordinták,normálvektorokLegyen a felület egy pontja p = αp1 + βp2 + γp3, az α, β, γbaricentrikus koordinátákkal adott.Ekkor bármilyen más értéket is végig tudunk interpolálniugyan így:

c = αc1 + βc2 + γc3

Ez az úgy nevezett Gouraud interpoláció (nem véletlenül)

Bán Róbert [email protected] Számítógépes Grafika

Page 143: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

Nem egy rögzített értékkel akarunk kitölteni, a hanem acsúcsokban adott értékeket akarjuk interpolálni.Felhasználásai: szín (Gouraud-árnyalás), textúra koordinták,normálvektorok

Legyen a felület egy pontja p = αp1 + βp2 + γp3, az α, β, γbaricentrikus koordinátákkal adott.Ekkor bármilyen más értéket is végig tudunk interpolálniugyan így:

c = αc1 + βc2 + γc3

Ez az úgy nevezett Gouraud interpoláció (nem véletlenül)

Bán Róbert [email protected] Számítógépes Grafika

Page 144: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

Nem egy rögzített értékkel akarunk kitölteni, a hanem acsúcsokban adott értékeket akarjuk interpolálni.Felhasználásai: szín (Gouraud-árnyalás), textúra koordinták,normálvektorokLegyen a felület egy pontja p = αp1 + βp2 + γp3, az α, β, γbaricentrikus koordinátákkal adott.

Ekkor bármilyen más értéket is végig tudunk interpolálniugyan így:

c = αc1 + βc2 + γc3

Ez az úgy nevezett Gouraud interpoláció (nem véletlenül)

Bán Róbert [email protected] Számítógépes Grafika

Page 145: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

Nem egy rögzített értékkel akarunk kitölteni, a hanem acsúcsokban adott értékeket akarjuk interpolálni.Felhasználásai: szín (Gouraud-árnyalás), textúra koordinták,normálvektorokLegyen a felület egy pontja p = αp1 + βp2 + γp3, az α, β, γbaricentrikus koordinátákkal adott.Ekkor bármilyen más értéket is végig tudunk interpolálniugyan így:

c = αc1 + βc2 + γc3

Ez az úgy nevezett Gouraud interpoláció (nem véletlenül)

Bán Róbert [email protected] Számítógépes Grafika

Page 146: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög raszterizáció

Nem egy rögzített értékkel akarunk kitölteni, a hanem acsúcsokban adott értékeket akarjuk interpolálni.Felhasználásai: szín (Gouraud-árnyalás), textúra koordinták,normálvektorokLegyen a felület egy pontja p = αp1 + βp2 + γp3, az α, β, γbaricentrikus koordinátákkal adott.Ekkor bármilyen más értéket is végig tudunk interpolálniugyan így:

c = αc1 + βc2 + γc3

Ez az úgy nevezett Gouraud interpoláció (nem véletlenül)

Bán Róbert [email protected] Számítógépes Grafika

Page 147: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 1.

f o r a l l x :f o r a l l y :

α, β, γ = b a r y c e n t r i c ( x , y )i f α ∈ [0, 1] and β ∈ [0, 1] and γ ∈ [0, 1] :

c = αc_1 + βc_2 + γc_3draw . p o i n t ( ( x , y ) , c )

Bán Róbert [email protected] Számítógépes Grafika

Page 148: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Baricentrikus koordináták

A baricentrikus koordináták számíthatók a következőképletekkel:

f01(x, y) = (y0 − y1)x + (x1 − x0)y + x0y1 − x1y0

f12(x, y) = (y1 − y2)x + (x2 − x1)y + x1y2 − x2y1

f20(x, y) = (y2 − y0)x + (x0 − x2)y + x2y0 − x0y2

Ekkor az x, y ponthoz tartozó baricentrikus koordináták:

α = f12(x, y)/f12(x0, y0)

β = f20(x, y)/f20(x1, y1)

γ = f01(x, y)/f01(x2, y2)

Bán Róbert [email protected] Számítógépes Grafika

Page 149: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 2.

x_min = min ( f l o o r ( x_i ) )x_max = max( c e i l i n g ( x_i ) )y_min = min ( f l o o r ( y_i ) )y_max = max( c e i l i n g ( y_i ) )f o r y i n [ y_min . . y_max ] :

f o r x i n [ x_min . . x_max ] :α = f12(x, y)/f12(x0, y0)β = f20(x, y)/f20(x1, y1)γ = f01(x, y)/f01(x2, y2)i f α>0 and β>0 and γ>0:

c = αc_1 + βc_2 + γc_3draw . p o i n t ( ( x , y ) , c )

Bán Róbert [email protected] Számítógépes Grafika

Page 150: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 2.

Gyorsítás: felesleges minden x, y-t vizsgálni, elég aháromszöget tartalazó téglalapon végig menni.

Inkrementálissá tétel:Most még lassú, nem használjuk, ki hogy sorban megyünkx-en, y-on.

Milyenek is ezek az f-ek?Mind f(x, y) = Ax + By + C alakú.Ekkor f(x + 1, y) = f(x, y) + A, ill.f(x, y + 1) = f(x, y) + B

Megvalósítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 151: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 2.

Gyorsítás: felesleges minden x, y-t vizsgálni, elég aháromszöget tartalazó téglalapon végig menni.Inkrementálissá tétel:

Most még lassú, nem használjuk, ki hogy sorban megyünkx-en, y-on.

Milyenek is ezek az f-ek?Mind f(x, y) = Ax + By + C alakú.Ekkor f(x + 1, y) = f(x, y) + A, ill.f(x, y + 1) = f(x, y) + B

Megvalósítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 152: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 2.

Gyorsítás: felesleges minden x, y-t vizsgálni, elég aháromszöget tartalazó téglalapon végig menni.Inkrementálissá tétel:

Most még lassú, nem használjuk, ki hogy sorban megyünkx-en, y-on.Milyenek is ezek az f-ek?

Mind f(x, y) = Ax + By + C alakú.Ekkor f(x + 1, y) = f(x, y) + A, ill.f(x, y + 1) = f(x, y) + B

Megvalósítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 153: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 2.

Gyorsítás: felesleges minden x, y-t vizsgálni, elég aháromszöget tartalazó téglalapon végig menni.Inkrementálissá tétel:

Most még lassú, nem használjuk, ki hogy sorban megyünkx-en, y-on.Milyenek is ezek az f-ek?Mind f(x, y) = Ax + By + C alakú.

Ekkor f(x + 1, y) = f(x, y) + A, ill.f(x, y + 1) = f(x, y) + B

Megvalósítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 154: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 2.

Gyorsítás: felesleges minden x, y-t vizsgálni, elég aháromszöget tartalazó téglalapon végig menni.Inkrementálissá tétel:

Most még lassú, nem használjuk, ki hogy sorban megyünkx-en, y-on.Milyenek is ezek az f-ek?Mind f(x, y) = Ax + By + C alakú.Ekkor f(x + 1, y) = f(x, y) + A, ill.f(x, y + 1) = f(x, y) + B

Megvalósítás:

Bán Róbert [email protected] Számítógépes Grafika

Page 155: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Háromszög kitöltés 2.

Gyorsítás: felesleges minden x, y-t vizsgálni, elég aháromszöget tartalazó téglalapon végig menni.Inkrementálissá tétel:

Most még lassú, nem használjuk, ki hogy sorban megyünkx-en, y-on.Milyenek is ezek az f-ek?Mind f(x, y) = Ax + By + C alakú.Ekkor f(x + 1, y) = f(x, y) + A, ill.f(x, y + 1) = f(x, y) + B

Megvalósítás: házi feladat

Bán Róbert [email protected] Számítógépes Grafika

Page 156: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Tartalom

1 Emlékeztető

2 VágásVágás 2D-benVágás 3D-ben

3 RaszterizálásSzakasz raszterizálásaHáromszög raszterizálásaPoligon raszterizáció

Bán Róbert [email protected] Számítógépes Grafika

Page 157: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – elárasztásos kitöltés

Tetszőleges, már raszterizált poligon kitöltésére alkalmas.

Bemenet: raszter kép + annak egy pontjaBrute-force: a megadott pontból kiindulva rekurzívanhaladunk:

Az aktuális pont színe megegyezik a kiindulási pont színével?nem megállunkigen átszínezzük, ésminden szomszédra újrakezdjük az algoritmust.

Bán Róbert [email protected] Számítógépes Grafika

Page 158: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – elárasztásos kitöltés

Tetszőleges, már raszterizált poligon kitöltésére alkalmas.Bemenet: raszter kép + annak egy pontja

Brute-force: a megadott pontból kiindulva rekurzívanhaladunk:

Az aktuális pont színe megegyezik a kiindulási pont színével?nem megállunkigen átszínezzük, ésminden szomszédra újrakezdjük az algoritmust.

Bán Róbert [email protected] Számítógépes Grafika

Page 159: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – elárasztásos kitöltés

Tetszőleges, már raszterizált poligon kitöltésére alkalmas.Bemenet: raszter kép + annak egy pontjaBrute-force: a megadott pontból kiindulva rekurzívanhaladunk:

Az aktuális pont színe megegyezik a kiindulási pont színével?

nem megállunkigen átszínezzük, ésminden szomszédra újrakezdjük az algoritmust.

Bán Róbert [email protected] Számítógépes Grafika

Page 160: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – elárasztásos kitöltés

Tetszőleges, már raszterizált poligon kitöltésére alkalmas.Bemenet: raszter kép + annak egy pontjaBrute-force: a megadott pontból kiindulva rekurzívanhaladunk:

Az aktuális pont színe megegyezik a kiindulási pont színével?nem megállunkigen átszínezzük, és

minden szomszédra újrakezdjük az algoritmust.

Bán Róbert [email protected] Számítógépes Grafika

Page 161: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – elárasztásos kitöltés

Tetszőleges, már raszterizált poligon kitöltésére alkalmas.Bemenet: raszter kép + annak egy pontjaBrute-force: a megadott pontból kiindulva rekurzívanhaladunk:

Az aktuális pont színe megegyezik a kiindulási pont színével?nem megállunkigen átszínezzük, ésminden szomszédra újrakezdjük az algoritmust.

Bán Róbert [email protected] Számítógépes Grafika

Page 162: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – szomszédásgok

Négy szomszéd: fent, lent, jobbra, balra

Nyolc szomszéd: az előző négy + a sarkakRekurzió nagyon durva: gyakorlatban ennél okosabbalgoritmusok is vannak → aktív éllista stb. (Haladó Grafika)

Bán Róbert [email protected] Számítógépes Grafika

Page 163: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – szomszédásgok

Négy szomszéd: fent, lent, jobbra, balraNyolc szomszéd: az előző négy + a sarkak

Rekurzió nagyon durva: gyakorlatban ennél okosabbalgoritmusok is vannak → aktív éllista stb. (Haladó Grafika)

Bán Róbert [email protected] Számítógépes Grafika

Page 164: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – szomszédásgok

Négy szomszéd: fent, lent, jobbra, balraNyolc szomszéd: az előző négy + a sarkakRekurzió nagyon durva: gyakorlatban ennél okosabbalgoritmusok is vannak

→ aktív éllista stb. (Haladó Grafika)

Bán Róbert [email protected] Számítógépes Grafika

Page 165: Számítógépes Grafika - ELTEcg.elte.hu/~robi/eloadas/2020-osz/BSc_EA_08.pdfszűrjük ki Bán Róbert robert.ban102+cg@gmail.com Számítógépes Grafika..... Emlékeztető Vágás

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Emlékeztető Vágás Raszterizálás Szakasz raszterizálása Háromszög raszterizálása Poligon raszterizáció

Flood-fill – szomszédásgok

Négy szomszéd: fent, lent, jobbra, balraNyolc szomszéd: az előző négy + a sarkakRekurzió nagyon durva: gyakorlatban ennél okosabbalgoritmusok is vannak → aktív éllista stb. (Haladó Grafika)

Bán Róbert [email protected] Számítógépes Grafika