Klippning i 2D: Cohen-Sutherland. Implementation aspects for display of computer graphics

Relevanta dokument
Rastrering och displayalgoritmer. Gustav Taxén

DGI/SUDOA Diverse grundbegrepp. Translation. Linjens ekvation. Linjens ekvation. Linjens ekvation

Tillämpning - Ray Tracing och Bézier Ytor. TANA09 Föreläsning 3. Icke-Linjära Ekvationer. Ekvationslösning. Tillämpning.

Uppgiftssamling 5B1493, lektionerna 1 6. Lektion 1

Integraler. 1 Inledning. 2 Beräkningsmetoder. CTH/GU LABORATION 2 MVE /2013 Matematiska vetenskaper

SF1625 Envariabelanalys

TMV151/TMV181. Fredrik Lindgren. 19 november 2013

Frami transportbult 2,5kN


Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Listor = generaliserade strängar. Introduktion till programmering SMD180. Föreläsning 8: Listor. Fler listor. Listindexering.

LINJÄR ALGEBRA II LEKTION 1

ORTONORMERAT KOORDINAT SYSTEM. LÄNGDEN AV EN VEKTOR. AVSTÅND MELLEN TVÅ PUNKTER. MITTPUNKT. TYNGDPUNKT. SFÄR OCH KLOT.

Volum av rotationskroppar. Båglängd, rotationsytor. Adams 7.1, 7.2, 7.3

SF1625 Envariabelanalys

INLEDNING: Funktioner (=avbildningar). Beteckningar och grundbegrepp

Operativsystemets uppgifter. Föreläsning 6 Operativsystem. Skydd, allmänt. Operativsystem, historik

Spelutveckling - Scenegrafer. Scenegrafer Optimeringar Culling

IE1204 Digital Design

Svenska()(Bruksanvisning(för(handdukstork()(1400(x(250(mm(

Kurskod: TAMS11 Provkod: TENB 12 June 2014, 14:00-18:00. English Version

Programmeringsguide ipfg 1.6

9. Bestämda integraler

Ett förspel till Z -transformen Fibonaccitalen

Geometri. 4. Fyra kopior av en rätvinklig triangel kan alltid sättas ihop till en kvadrat med hål som i följande figur varför?

Så här gör du? Innehåll

4 Example exam questions

Associativa lagen för multiplikation: (ab)c = a(bc). Kommutativa lagen för multiplikation: ab = ba.

Belöningsbaserad inlärning. Reinforcement Learning. Inlärningssituationen Belöningens roll Förenklande antaganden Centrala begrepp

Definition 1 En funktion (eller avbildning ) från en mängd A till en mängd B är en regel som till några element i A ordnar högst ett element i B.

Innovation GAT med guldkant

Föreläsning 7. Splay-träd. Prioritetsköer och heapar. Union/Find TDDC70/91: DALG. Innehåll. Innehåll. 1 Splay-träd

Byt till den tjocka linsen och bestäm dess brännvidd.

Läsanvisningar för MATEMATIK I, ANALYS

Sidor i boken

GEOMETRISKA VEKTORER Vektorer i rummet.

Rationella uttryck. Förlängning och förkortning

abbcba a) A regular expression over

PASS 1. RÄKNEOPERATIONER MED DECIMALTAL OCH BRÅKTAL

ASSEMBLY INSTRUCTIONS SCALE SQUARE - STANDARD

x = x = x = x=3 x=5 x=6 42 = 10x x + 10 = 15 x = = 20 x = 65 x + 36 = 46

Materiens Struktur. Lösningar

Löpsedel: Integraler. Block 4: Integraler. Lärobok. Exempel (jfr lab) Exempel (jfr lab) Integrering i Matlab

Integralen. f(x) dx exakt utan man får nöja sig med att beräkna

TATA42: Tips inför tentan

Pre-Test 1: M0030M - Linear Algebra.

1. (6p) (a) Använd delmängdskonstruktionen för att tillverka en DFA ekvivalent med nedanstående NFA. (b) Är den resulterande DFA:n minimal? A a b.

EasyMP Multi PC Projection-bruksanvisning

Tillämpning av integraler

Sammanfattning, Dag 9

Support Manual HoistLocatel Electronic Locks

Kan det vara möjligt att med endast

Kylfrysguide [Namn] Elektroskandia Sverige AB [år-månad-dag]

Skriv tydligt! Uppgift 1 (5p)

Trigonometri. 2 Godtyckliga trianglar och enhetscirkeln 2. 3 Triangelsatserna Areasatsen Sinussatsen Kosinussatsen...

Lösningsförslag till tentamen i SF1683 och SF1629 (del 1) 23 oktober 2017

12 frågor om patent RESEARCHA-ÖVNING

1 e x2. lim. x ln(1 + x) lim. 1 (1 x 2 + O(x 4 )) = lim. x 0 x 2 /2 + O(x 3 ) x 2 + O(x 4 ) = lim. 1 + O(x 2 ) = lim = x = arctan x 1

ORTONORMERADE BASER I PLAN (2D) OCH RUMMET (3D) ORTONORMERAT KOORDINAT SYSTEM

BLÖTA BOKEN. Monteringsanvisning PALLADIUM DE LUXE II HÖRNA MED SKJUTDÖRR W1 E1= 10 VIKTIG INFORMATION. LÄS DETTA INNAN MONTERINGEN PÅBÖRJAS.

Mat Grundkurs i matematik 1, del III

MEDIA PRO. Introduktion BYGG DIN EGEN PC

Matematisk statistik för B, K, N, BME och Kemister. Matematisk statistik slumpens matematik. Exempel: Utsläpp från Källby reningsverk.

> VD har ordet: Frösunda satsar på anhörigfrågorna > Frösunda främjar kvinnors företagande i Indien > 5 frågor: Sofia Hägg-Jegebäck

SPEL OM PENGAR FÖR - EN FRÅGA FÖR SKOLAN? VERKTYG, ÖVNINGAR OCH KUNSKAPSBANK FÖR ARBETE MED SPEL OM PENGAR I SKOLAN

Finaltävling den 20 november 2010

BLÖTA BOKEN MONTERINGSANVISNING PALLADIUM DE LUXE PLUS VIKDÖRR I NISCH VIKTIG INFORMATION. LÄS DETTA INNAN MONTERINGEN PÅBÖRJAS.

Uppsala Universitet Matematiska Institutionen T Erlandsson

EGENVÄRDEN och EGENVEKTORER

Tentamen i Matematik 2: M0030M.

Tentamen Programmeringsteknik II Skrivtid: Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper.

In Bloom CAL # 3. Nu ska du göra 8 separata blomblad. Ett mitt på varje sida och ett i varje hörn. Använd nål 3.5 mm.

Appendix. De plana triangelsatserna. D c

Sfärisk trigonometri

6 Formella språk. Matematik för språkteknologer (5LN445) UPPSALA UNIVERSITET

TATA42: Föreläsning 4 Generaliserade integraler

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9

AUBER 95 9 jan LÖSNINGAR STEG 1:

TATA42: Föreläsning 4 Generaliserade integraler

Lösningsförslag till deltentamen i IM2601 Fasta tillståndets fysik. Teoridel

Styrning av Dynamiska Fasader

Vilken rät linje passar bäst till givna datapunkter?

Grundläggande datalogi - Övning 3

19 Integralkurvor, potentialer och kurvintegraler i R 2 och R 3

12.6 Heat equation, Wave equation

ASSEMBLY INSTRUCTIONS SCALE CIRCLE - STANDARD

MER MASSAGE - MINDRE LJUD

SIGNALER OCH SYSTEM II LEKTION 2 / MATEMATISK LEKTION 1. Fredrik Andréasson. Department of Mathematics, KTH

M6410C,L / M7410C Öka / minska ställdon

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Webbaserad applikation för administrering av investeringar

Isometries of the plane

H1009, Introduktionskurs i matematik Armin Halilovic. Definition. Mängden av alla lösningar till en ekvation kallas ekvationens lösningsmängd.

PRESS FÄLLKONSTRUKTION FOLDING INSTRUCTIONS

GEOMETRISKA VEKTORER Vektorer i rummet.

Evighetskalender. 19 a) nyårsdagen var år 2000 b) julafton kommer att vara på år 2010 c) de första människorna landade på månen, 20 juli 1969

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

Gauss och Stokes analoga satser och fältsingulariteter: källor och virvlar Mats Persson

Kvalificeringstävling den 2 oktober 2007

Lödda värmeväxlare, XB

Transkript:

Displylgoritmer: rstrering, klippning, HSE, LOD, Grip, DGI, DOA vt2008 Lrs Kjelldhl, en del bilder lånde v Gustv Txén Implementtion spets for disply of omputer grphis Steps in the rendering proess: Modeling (definition of objets,, e.g. struture with polygons) Geometri proessing (oordinte trnsformtions, lipping, hidden surfe elimintion) Rsteriztion (trnsformtion of objet desriptions to pixels) Disply (disply of frme buffer on sreen, inludes e.g. lising) We will fous on some ommon lgorithms in this proess Objektrum oh bildrum The lipping problem Objektrum Mn rbetr den mtemtisk beskrivningsnoggrnnheten Bildrum Mn rbetr med den noggrnnhet som ges bildpunktern (pixlrn) lines window Det blir ntlet objekt som vgör komplexiteten Det blir upplösningen som vgör komplexiteten The lipping problem Klippning i 2D: Cohen-Sutherlnd window 1001 1000 1010 lines lipped 0001 0000 0010 0101 0100 0110 1

Klippning i 2D: Cohen-Sutherlnd Klippning i 2D: Cohen-Sutherlnd 1001 1000 1010 1001 1000 1010 0001 0000 0010 Båd hr kod 0000: Linjen ligger i fönstret. 0001 0000 0010 En hr kod 0000, den ndr inte. Linjen måste klipps mot fönstret. 0101 0100 0110 0101 0100 0110 Klippning i 2D: Cohen-Sutherlnd Klippning i 2D: Cohen-Sutherlnd 1001 1000 1010 1001 1000 1010 0001 0000 0010 0101 AND 0100! 0000 Linjen syns inte i fönstret. 0001 0000 0010 0001 AND 0100 = 0000 Linjen knske behöver klipps mot fönstret. 0101 0100 0110 0101 0100 0110 Prmeter lipping (Cyrus-Bek, Ling-Brsky) Use p(") ) = (1- ")*p1 + " *p2 Clipping is done by first lulting " for lines tht you might lip (less work thn to lulte both x nd y) To lip with the egde x=xmin we get: " =(xmin- x1)/(x2-x1) P2 "1=0; "2=1; P1 for (ll four edges of window) { " =lulte(edgenr); if entering(edgenr) "11 =mx("1, 1,") ) else "22 =min("2, ")}; if "22 > "11 then drwline("1, "2); Polygon lipping Cn we use the line lipping lgorithm to lip polygon? new point With line lipping the new point ould not be inluded 2

Sutherlnd-Hodgemn's lgorithm Sutherlnd-Hodgemn's lgorithm Clip top s p Clip bottom Clip left Clip right for ll_window_edges { p=polypoint(1); for n=2 to n+1 { s=p; p=polypoint(n); if inside(s) nd inside(p) then sve(p); if inside(s) nd outside(p) then sve(interset interset(s,p)); if outside(s) nd inside(p) then {sve(interset(s,p)); sve(p) } } updte(polypoint polypoint); } Note tht in eh lipping phse of the polygon you hve to keep the order of the verties Wht hppens if the lipping give more thn one polygon? Uppdelening i konvex polygoner (tesseltion) Klippning i 3D x x z z 3

Rstrering Rstrering v linjer: Digitl Differentil Anlyzer (DDA) (x 1, y 1 ) (x 0, y 0 ) Låt linjens lutning vr m = (y 1 y 0 ) / (x 1 x 0 ) oh ntg tt 0 < m < 1. Diskretisering v en mtemtisk linje eller polygon. Sätt x = x 0 oh y = y 0. För vrje x = x + 1, låt y = y + m. Avrund oh rit ut pixel. Fungerr för m < 1 Vd gör vi om m > 1? Rstrering v linjer med heltlsritmetik: Bresenhm Rstrering v polygoner Line eqution n be written s F(x,y)=dy*x-dx*y+B*dx=0 (x p,y p ) NE M E d1 d2 The sign of F(x M,y M ) deides if we should hoose E or NE We denote d1=f(x M,y M )= dy*(x p +1)-dx*(y p +0.5)+B*dx Suppose we get d1<0, hoose E d2=f(x M +1,y M )= dy*(x p +2)-dx*(y p +0.5)+B*dx= d1+dy Similr result if d1>=0 http://en.wikipedi.org/wiki/bresenhm's_line_lgorithm Rstrering v polygoner Rstrering v polygoner Bresenhm för tt hitt x-värden. Lgr interpolerde värden längs med kntern. Fyll oh interpoler värden från vänster till höger. Sorter m..p. x-värden. 4

Rstrering v polygoner Rstrering v polygoner, särskild hntering v kntern kn iblnd behövs Linjär interpoltion Perspetive-orret Multi-Smple Anti-Alising (MSAA) Borttgning v skymd ytor Smplingsmönster Beräkn först pixelvärden för smplingspunktern......nvänd sedn 5 värden vid filtreringen! Hidden surfe removl Bkfe ulling Hdden surfe removl http://medilb.di.unipi.it/web/ium/wterloo/node70.html#section001160000000000000000 Hidden surfe removl Two min pprohes: investigte visibility for every pixel, i.e. resolution dependent (imge spe) investigte visibility for every objet, i.e. lulte intersetions et for ll objets, lines et with the preision of the omputer (objet( spe) Min ides Try to use the properties the objets, suh s: onvex objets? few objets, perhps only one objet? objets non interseting? stti view? dvned rendering wnted? 5

Bk-fe removl Imge spe hidden surfe removl The bk-fing polygons n be removed through simple test bs (#) < 90 or n o v > 0 n! eye v Z-buffer lgorithm Z-buffer lgorithm Use n extr buffer with depth vlues for eh pixel for every polygon { for eh pixel in polygom { if newpolygondepth(x,y) < depthvl_in_zbuffer(x,y) then {depthvl_in_zbuffer(x,y) <- newpolygondepth(x,y); frmebuffervlue <- newpolygonvlue } }} frmebuffer Z-buffer Z-buffring frmebuffer Z-buffer Fördelr: Effektiv. Funkr oberoende v komplexiteten i det som rits. Enkel tt implementer i hårdvr. Nkdelr: Alising! 8 bitr $ 256 distinkt djupvärden. Krävs extr minne på grfikkortet. frmebuffer Z-buffer 6

Depth sort lgorithm 1. Sort ll objet ording to depth 2. Pint (rsterize) them into frme buffer in the sorted order (strt with objet fr wy) Problem med pinter s s lgorithm inresing depth Vi måste del åtminstone någon polygon Binry Spe Prtitioning Trees (BSP-träd) b b Löser sorteringsproblemet för sttisk, pln, konvex polygoner (som dok kn h hur mång hörn som helst). 1) Välj en polygon.,, 2) Del rummet i två delr oh prtitioner. 3) För vrje delmängd, gör om rekursivt. 7

3) För vrje delmängd, gör om rekursivt. Klrt! Pinter s s lgorithm oh BSP-träd Pinter s s lgorithm oh BSP-träd 3 2 1 Kmerposition Kmerposition 3 2 1 2 3 1 Kmern är frmför, så vi sk först rit ut llt bkom, sedn oh sist llt frmför. Kmern är frmför, så vi sk först rit ut llt bkom, sedn oh sist llt frmför. Pinter s s lgorithm oh BSP-träd Vl v prtitionspln Kmerposition 3 2 1 2 3 1 b b Slutordning:,,,. Vl v prtitionspln kn h stor betydelse för slutresulttet. Tumregel: Välj det prtitionspln som skpr minst ntl polygondelningr. 8

Kombintion v BSP-träd oh Z-buffring Overdrw Med pinter pinter s lgorithm kommer polygoner långt bk tt rits över v polygoner längre frm. frm. Betyder tt ljussättning, ljussättning, texturering, texturering, m.m. ppliers i onödn för de flest polygoner! polygoner! Dett problem klls för overdrw overdrw.. Så vrför nvänds BSP-träd om mn lik gärn kunde nvänd z-buffring för tt undvik overdrw? Detil ulling, Level of Detil b1 b1 b2 b2 Osynligt delträd Eftersom kmerns frustum inte korsr :s pln, kn vi strunt i llt som ligger frmför! Använd sedn z-buffring för tt undvik overdrw. Level-of-detil Rit inte sker som är långt bort eller förenkl dem! Kombiners oft med någon form v dimm-effekt. Just Cuse - Avlnhe Studios Ultim IX Asension, Origin Systems Level-of-detil Morrowind, Bethesd Softworks Även om mn måste rit mång objekt kn mn oft spr resurser genom tt nvänd grövre detljnivåer långt bort från kmern. Potentilly Visible Sets / Portler Närliggnde vrint: Del världen i eller (knske m.h.. BSP-träd). För vrje ell C, t red på vilk ndr eller som kn syns från C. Lgr i en list. Vid körning, t red på vilken ell kmern är i. Rit den ellen. Rit ll eller i PVS:en. http://grphis.ls.mit.edu/~seth/pubs/pubs.html 9

Exempel Portler http://www.s.virgini.edu/%7eluebke/publitions/portls.html Portler kn speifiers utomtiskt med hjälp v lgoritmer eller plers ut för hnd i en 3D-editor. Portler Ry sting Skik en riktd linje (ry) från kmern (betrktren) genom vrje pixel oh t red på om/vr den korsr ll föremål. Välj den korsning som ligger närmst kmern. Sätt pixelfärgen till färgen på motsvrnde föremål. betrktren Quke II, Id Softwre Ry tring Bounding volumes Kmern kn se b.v: behndl modellen. Reflektion Skuggor (direkt ljus) Kmern kn delvis se b.v: behndl modellen. Kmern kn inte se b.v: bortse från modellen. Ry tring är en s.k. globl belysningsmodell oh kn ses som en slgs utbyggd ry sting Användbrt för modeller med begränsd utsträkning i rummet oh för sker som flytts omkring. 10

Hierrkisk bounding volumes Exempel på olik sorters bounding volumes Sfär Axis-ligned box Oriented box Oriented plnes Hierrkier kn okså skps dynmiskt under körning för föremål som flytts omkring. Wrnok lgorithm Divide the plne into four squres Qudtrees / Otrees B 0 B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 Vrint v BSP-träd som kn vr enklre tt hnter. Smidig för stor, sttisk modeller med stor detljrikedom. Kombiners med Z-buffring på ungefär smm sätt som i BSP-fllet. 11

Otrees Otrees http://www.gmetutorils.om/tutorils/opengl/otree.htm Olusion ulling Olusion ulling Frustum Frustum Oluder Ög Ög http://www.gmsutr.om/fetures/19991109/moller_hines_01.htm Impostors Impostors Billbord Clouds, Xvier D eoret m.fl. Plerr mn texturern smrt kn mn pproximer föremål på ett sådnt sätt tt mn kn roter dem okså! 12

Impostors Impostors Originl Billbord loud Billbord Clouds, Xvier D eoret m.fl. Impostors Impostors Mirosoft Flight Simultor 2004 Mirosoft Flight Simultor 2004 Moln är ett exempel på objekt som oft kn ersätts v impostors. I flygsimultorfllet lönr det sig tt rbet med impostors i två steg: dels som ersättning för 3D-moln, dels för tt pproximer moln långt från kmern. 13