UNIVERSITETET I OSLO De maemaisk-naurvienskapelige fakule Eksamen i INF3320/INF4320 Meoder i grask daabehandling og diskre geomeri Eksamensdag: 7. desember 2007 Tid for eksamen: 14:30 17:30 Oppgavesee er på 5 sider. Vedlegg: Tillae hjelpemidler: Ingen Ingen Konroller a oppgavesee er komple før du begynner å besvare spørsmålene. Oppgave 1 OpenGL (vek 1 5 ) Forklar kor hva de følgende begrepene beyr i OpenGL-sammenheng: 1. Modelview marise 2. Homogene koordinaer 3. Texure 4. Buffer objec 5. Frame buffer objec 6. Shader 7. Program (i sammenheng med en shader) 8. Alpha channel 9. Uniform variabler 10. Varying variabler Løsning: 1. Modelview marisen beskriver ransformasjonen fra koordinasyseme geomerien blir spesifiser i il koordinasyseme hvor kamerae ligger i origo og ser nedover negaiv z. (Forsees på side 2.)
Eksamen i INF3320/INF4320, 7. desember 2007 Side 2 2. Homogene koordinaer gir en måe å spesifisere 3D koordinaer som 4D koordinaer på en måe slik a vi kan spesifisere ranslasjoner og en del perspekivprojeksjoner som marisemuliplikasjoner. 3. Texure er e raserbilde som vi kan lime på geomeri for å geomerien e innrykk av øk dealjrikdom. 4. Buffer objec er en mekanisme for å allokere minneblokker på grafikkore. I disse minneblokkene kan man fylle asynkron, lagre geomeri for rask rendering, og rendero-exure uen FBO er. 5. Frame buffer objec er en måe å la en koneks håndere flere framebuffere. På denne måen kan man f.eks rendre direke il eksurer uen kopiering, noe som er mye bruk i GPGPU. 6. Shader beegner både e programmerbar rinn i pipelinen sam programme dee rinne kjører. 7. Shaderene for hver av de programmerbare segene link es sammen il e program. 8. Alpha channel er en fjerde farvekanal som brukes il å spesifisere gjennomsikighe. Denne verdien brukes av forskjellige blending-mekanismer for å blande farven il en ny pixel med farven som allerede er der. 9. Uniform variabler kan endres eer linking men er konsane over e se av primiiver. I mosening il konsane variable som ikke kan endres eer linking. 10. Varying variabler inerpoleres over hver primiiv, slik som f.eks farver og eksurkoordinaer. Oppgave 2 Lys og sjaering (vek 1 5 ) Hva er Snell s lov? Se opp urykk og lag en lien egning med relevane vekorer. Når skjer oalrefleksjon? Løsning: Snell s lov beskriver forholde mellom reningen på lys som går fra e maeriale og reningen på de refrakere lyse i de andre maeriale. Hvis vi lar n være flaenormalen il overflaen mellom de o maerialene, η i og η r være lyshasigheen i de o maerialene og θ i og θ r være reningen på lyse i de o maerialene, så er Snell s lov η i sin θ i = η r sin θ r. n i η i θ i η r θ r r (Forsees på side 3.)
Eksamen i INF3320/INF4320, 7. desember 2007 Side 3 Hvis lyse går fra e maeriale hvor η i er sørre enn η r, f.eks fra glass il luf, får vi oalrefleksjon hvis vinkelen for de innadgående lyse er sørre enn den kriiske vinkelen, som igjen er gi ved sin 1 ( ηr η i ). Oppgave 3 Subdivisjon av Bézierkurver (vek 1 5 ) Vi skal splie en kubisk Bézierkurve i o nye Bézierkurver. 1. Førs ana a vi skal splie på de parameriske midpunke (alså ved = 1 2 hvis parameerinervalle il kurven er [0, 1]). Se opp formler for konrollpunkene il de o kurvene vi får når vi splier. 2. Så ana a vi splie ved = 1 (alså den ene nye kurven er den førse 1/3 av den 3 opprinnelige kurven mens den andre er de resrerende 2/3). Se opp formler for konrollpunkene il de o kurvene vi får når vi splier. Løsning: Vi finner de nye koeffisienene langs sidene il de Caseljau-skjemae, c 0 0 c 0 1 c 0 2 c 0 3 (1 ) (1 ) (1 ) c 1 0 c 1 1 c 1 2 (1 ) (1 ) (1 ) c 2 0 c 2 1 og hvis vi lar s = 1 så får vi følgende = 1 = 1 2 3 p 0 = c 0 c 0 c 0 1 p 1 = sc 0 + c 1 c 2 0 + 1c 2 2 1 c 3 0 + 1c 3 1 p 2 = s 2 c 0 + 2sc 1 + 2 1 c 2 c 4 0 + 1c 2 1 + 1c 4 4 2 c 9 0 + 4c 9 1 + 1c 9 2 p 3 = q 0 = s 3 c 0 + 3s 2 c 1 + 3s 2 c 2 + 3 1 c 3 c 8 0 + 3c 8 1 + 3c 8 2 + 1c 8 8 3 c 27 0 + 4c 9 1 + 2c 9 2 + 1 q 1 = s 2 c 1 + 2sc 2 + 2 1 c 3 c 4 1 + 1c 2 2 + 1c 4 4 3 c 9 1 + 4c 9 2 + 1c 9 3 1 q 2 = sc 2 + c 3 c 2 2 + 1c 2 2 3 c 3 2 + 1c 3 3 q 3 = c 3 c 3 c 3 c 3 0 27 c 3 (Forsees på side 4.)
Eksamen i INF3320/INF4320, 7. desember 2007 Side 4 Oppgave 4 Glahe mellom Bézierkurver (vek 1 5 ) La p : [0, 1] R og q : [0, 1] R være o Bézierkurver gi ved med konrolpunkene p() = (1 ) 3 p 0 + 3(1 ) 2 p 1 + 3 2 (1 )p 2 + 3 p3, q() = (1 ) 3 q 0 + 3(1 ) 2 q 1 + 3 2 (1 )q 2 + 3 q3, p 0 = (0, 0) p 1 = (0, 1) p 2 = (1, 1) p 3 = (1, 0) q 0 = (1, 0) q 1 = (1, 1) q 2 = (2, 0) q 3 = (2, 1). La r : [0, 2] være splinekurven definer ved { p() 0 1, r() = q( 1) 1 < 2. 1. Skissér r. 2. Hvilken koninuiesorden har r, alså hva er den sørse k slik, a r er C k for = 1? Løsning: Kurven ser slik u: p 1 p 2 p p 0 q 0 p 3 q 2 q q 1 og r er i allefall C 0 fordi p 3 = q 0. Videre så har vi a p 3 p 2 = q 1 q 0, så kurven er C 1. Derimo er r ikke C 2 siden p 1 2p 2 + p 3 = (1, 1) q 0 2q 1 + q 2 = (1, 2). q 3 Oppgave 5 Subdivisjonsflaer (vek 1 5 ) Gi e lukke rekanmesh M med N v noder, N e kaner og N rekaner. Hva er analle noder, kaner, rekaner og firkaner efer a 1. M er forfine én gang med loop subdivisjon? 2. M er forfine én gang med 3-subdivisjon? (Forsees på side 5.)
Eksamen i INF3320/INF4320, 7. desember 2007 Side 5 3. M er forfine én gang med Camull-Clark-subdivisjon? Løsning: Skjema anall noder anall kaner anall rekaner anall firkaner Loop N v + N e 2N e + 3N 4N 0 3 Nv + N N e + 3N al. 3N e 3N al. 2N e 0 Camull-Clark N v + N e + N 2N e + 3N al. 4N e 0 3N