Side 1 av 12 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for fysikk, informatikk og matematikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I EMNE TDT4230 VISUALISERING TORSDAG 14. DESEMBER 2006 KL. 15.00 19.00 LØSNINGSFORSLAG OPPGAVE 1 Virtuell virkelighet (15 %) a) De to metodene er: Aktiv stereo Passiv stereo Aktiv stereo: En projektor benyttes. Bilder for venstre og høyre øye projiseres vekselvis. Briller med LCD-lukkere synkroniseres med bildevekslingen for eksempel ved bruk av infrarøde signaler eller gjennom kabel. Passiv stereo: Et par av projektorer benyttes. En projektor viser bilde for venstre øye og en for høyre øye. Foran projektorene er det plassert polarisasjonsfiltre som velger ut vertikal polarisasjon for det ene øyet og horisontal for det andre. Med briller utstyrt med tilsvarende filtre blir visningen stereoskopisk.
Side 2 av 12 b) Problemet med øyekonvergens og akkomodasjon har sin rot i at en også ved stereoskopisk projeksjon er henvist til å projisere på en flate, at bildeparet er fokusert på denne flaten og at bildeparet må projiseres med en bestemt, fast parallakse. Problemet forsterkes ved at bildeparet bare kan lages for en posisjon av projeksjonssentre mens resultatet skal betraktes av en forsamling som er spredt. Dersom bildeparet projiseres slik at en har null parallakse for objekter som ligger i projeksjonsplanet, vil både konvergens og akkomodasjon stemme for disse objektene. For objekter mellom projeksjonsplan og observatør burde bildeparet projiseres med negativ parallakse for å få korrekt øyekonvergens. Akkomodasjonsavstanden ville fortsatt være feil. For objekter bak projeksjonsplanet burde bildeparet projiseres med positiv parallakse for å få korrekt øyekonvergens. Akkomodasjonsavstanden ville fortsatt være feil.
Side 3 av 12 c) Tommelfingerregler: Velg projeksjonssenter i samsvar med følgende regel fra fotografisk teori: Avstanden fra projeksjonssenteret til bildeplanet bør være omtrent lik lengden av bildediagonalen Hvis mulig legges projeksjonsplanet gjennom midten av scenen eller gjennom senteret av gruppen av de viktigste objektene Ingen objekter burde komme nærmere projeksjonssenteret enn halvparten av avstanden mellom projeksjonssenter og projeksjonsflate Et godt første valg av øyeavstand kan være 1/30 av avstanden mellom projeksjonssenter og projeksjonsflate OPPGAVE 2 Polygonmodeller og volummodeller (20 %) a) Det sentrale elementet i vingekantstrukturen er kantene. Hver kant Ex har pekere til: Hver av de to tilgrensende polygonene Hvert av de to avgrensende hjørnene Hver av de fire kantene som deler hjørner med kantene Ex og som også er kanter til de to tilgrensende polygonene E2 V1 E3 F1 E1 F2 E4 V2 E5 Hvert hjørne har peker til en av kantene som støter inn mot hjørnet og hver polygon har peker til en av de avgrensende kantene. Begrunnelsen for den høye graden av redundans er å gjøre ulike typer av søking i strukturen enklest mulig.
Side 4 av 12 b) Vi benytter følgende standard nomenklatur for elementene i vingekantstrukturen: n-ccw p p-cw Vertices: n (next) p (previous) n-polygon p-polygon n-cw n p-ccw Vi velger å gå rundt polygonen i cw-retningen. Motsatt valg ville fungere like godt. Gitt peker til en av strukturens polygoner. Finn alle hjørnene til polygonen: Finn kanten som polygonen peker på Ta vare på denne kanten som første kant Hvis polygonen er p-polygon til kanten: Legg p-hjørnet til listen over søkte hjørner Ta kanten p-cw som neste kant ellers Legg n-hjørnet til listen over søkte hjørner Ta kanten n-cw som neste kant Gjenta til neste kant faller sammen med første kant Gjør neste kant til stående kant Hvis siste hjørne er n-hjørnet til stående kant Legg stående kants p-hjørne til listen over søkte hjørner Ta stående kants p-cw-kant som neste kant ellers Legg stående kants n-hjørne til listen over søkte hjørner Ta stående kants n-cw-kant som neste kant c) Ideen ved CSG-modellering er at mer kompliserte modeller bygges ved sammensetning av enklere grunnelementer som hentes fra et bibliotek. Grunnelementene vil være applikasjonsspesifikke. Sammenstillingen skjer ved bruk av logiske operasjoner etter at elementene er brakt i posisjon ved hjelp av geometriske transformasjoner. Bokstavene står for Constructive Solid Geometry.
Side 5 av 12 d) Nedenstående figurer og tabell viser en strålekastingsmetode for bestemmelse av union, snitt og differens mellom kula og terningen. Strålen skjærer inn i kula i punktet A og går ut i punktet B. Tilsvarende går strålen inn i terningen i punkt C og ut i punkt D. OPPGAVE 3 Parametriske kurver og flater (15 %) a) Blandefunksjonene for kubiske Bézier-kurver er vektorkomponentene (polynomene) en får ved å multiplisere: 3 3 1 u + u u+ 3u 6u + 3u u u u 1 MB = 3u + 3u u 3 (1) Blandefunksjonene er altså: Bz ( u) = u + 3u 3u + 1 = (1 u) 0,3 1,3 3 Bz ( u) = 3u 6u + 3u = 3 u(1 u) 2 2 2,3( ) = 3 + 3 = 3 (1 ) Bz u u u u u Bz ( u) = u = u 3,3 3 3 (2)
Side 6 av 12 Funksjonene forløper slik: b) Kravene som må oppfylles av blandefunksjonene for at konveks skallegenskapen skal være oppfylt, er: Summen av blandefunksjonene må være 1 uavhengig av verdien av parameteren u Ingen av blandefunksjonene kan være negative noe sted i parameterintervallet for kurvesegmentet Summen av blandefunksjonene er: Bz + Bz + Bz + Bz = 0,3 1,,3 3,3 = u + u u+ ( 3 3 1) + u u + u (3 6 3 ) + u + ( 3 3 ) + u 3 u = + + u + + u + + u+ = ( 1 3 3 1) (3 6 3) ( 3 3) 1 1 (3) Den gode og enkle måten til å se at polynomene er ikke-negative i intervallet u [0,1], er å konstatere at faktorene u og (1 u), som inngår i en av de mulige formuleringene av blandefunksjonene, se deloppgave a), ikke er negative i intervallet. Alternativt, men vesentlig mer arbeidskrevende, kan maksima og minima av blandefunksjonene analyseres ved derivasjon sammen med analyse av nullpasseringer. Henvisning til skissen av blandefunksjonenes forløp ansees imidlertid også som god nok påvisning av at ingen av dem antar negative verdier i intervallet u [0,1]. Det at konveks skallegenskapen gjelder, innebærer at kurvesegmentet i sin helhet ligger inne i et omsluttende konvekst legeme i form av et polyeder utspent av kontrollpunktene.
Side 7 av 12 c) Grunnen til at andregrads parametriske kurver i sin alminnelighet er uegnet til å representere kurver som slynger seg i rommet, er at slike kurver er planare (ligger i et plan). d) Et uttrykk for en kubisk Bézier flatelapp er: der T T Quv (, ) = U MB P MB V (4) M B er den gitte basismatrisen: M B 1 3 3 1 3 6 3 0 = 3 3 0 0 1 0 0 0 (5) U og V er parametervektorer: = 1 (6) = 1 U u u u V v v v og P matrisen av de 16 nødvendige kontrollpunktene: p00 p01 p02 p03 p10 p11 p12 p13 P = p20 p21 p22 p23 p30 p31 p32 p33 Alternativt og likeverdig kan flatelappen uttrykkes: 3 3 = i= 0 j= 0 0,3 1,,3 3,3 pbz ( u) Bz ( v) = pbz ( u, v) i,3 j,3 ij ij,3 i= 0 j= 0 () v p 0,3 00 p01 p02 p03 p10 p11 p Bz 12 p13 1,3() v p20 p21 p22 p 23Bz2,3() v p30 p31 p32 p 33 Bz3,3() v Quv (,) = [ Bz () u Bz () u Bz () u Bz ()] u = ij 3 3 Bz (7) (8) med: B uv B ub v ij,3 (,) i,3 () j,3() (9) Hvilken variant som foretrekkes, bestemmes av anvendelsen. Som grunnlag for numeriske beregninger, vil den siste varianten være mest hensiktsmessig. En av formuleringene er tilstrekkelig som besvarelse.
Side 8 av 12 e) Normalen til en kubisk Bézier flatelapp på et hvilket som helst sted på lappen kan bestemmes som vektorproduktet av de parametrisk partiellderiverte med hensyn på hver av parametrene u og v. Disse to partiellderiverte er begge tangentvektorer til flaten. Quv (, ) Quv (, ) Nuv (, ) = = Qu( uv, ) Qv( uv, ) u v (10) OPPGAVE 4 Forskjellige tema (50 %) a) For enkelhets skyld antar vi at antall intensitetsnivå er n + 1 is stedet for n. Med n + 1 intensitetsnivå I, 0 k n bør nivåene fordeles slik: 1 2 3 n = = = = = 0 1 2 n 1 k I I I I r (11) I I I I der r er en konstant. Grunnen til denne fordelingen er at øyet ser økningen fra ett nivå til det neste som likt dersom forholdet mellom nivåene er det samme. (Øyets følsomhetskurve er logaritmisk.) b) Gammakorreksjon er korreksjon for at intensiteten som vises på en CRT-skjerm ikke øker lineært med styrespenningen.
Side 9 av 12 Sammenhengen mellom intensitet og styrespenning er: I = av γ (12) Når en ønsker å vise en bestemt intensitet, kan nødvendig styrespenning beregnes ved bruk av likning (12): V 1 γ I = ( ) (13) a En praktisk måte å gjennomføre gammakorreksjon på, er å tabulere nødvendig styrespenning for hvert av de valgte n + 1 intensitetsnivåene. c) I Phongs refleksjonsmodell modelleres refleksjon fra en blank flate ved speiling av den innfallende strålen i retning r. Imperfekt speiling taes hensyn til ved faktoren cos α ( φ ) der φ er vinkelen mellom speilet stråle og retning mot øyet, v, og α er en karakteristisk konstant for imperfeksjonen til den blanke flaten. v φ r θ r n θi l θ = θ r i I Phongs refleksjonsmodell kommer dette slik til uttrykk i refleksjonsbidraget R λ s : α α R = k cos ( φ) = k ( r v) (14) λs λs λs der k λ s er refleksjonskoeffisienten for spektralkomponenten med bølgelengde λ. Eksponenten α er mål for perfeksjonsgraden av flaten som speil. Stor α representerer en flate som nærmer seg et ideelt speil. Liten α representerer en flate som speiler dårlig (sprer det reflekterte lyset mye). Skalarproduktet r v blir ofte erstattet med skalarproduktet n h der n er flatenormalen og h midtimellomvektoren, vektoren som er den normerte summen av vektorene l og v. Skalarproduktet n h er vanligvis billigere å beregne enn skalarproduktet r v.
Side 10 av 12 Belysningen fra en lyskilde på en flate reduseres med økende innfallsvinkel θ i samsvar med: E = E cos( θ) = E n l (15) θ der E er belysningen ved loddrett innfall, n flatenormalen og l vektor i retning av lyskilden. n θ l En ideelt matt flate der en antar at Lamberts cosinuslov gjelder, har samme luminans uavhengig av retningen den betraktes under. Dette er grunnlaget for Phongs modelleringen av spredningsbidraget R λ fra matte flater: der d R ( ) λd = kλd l n (16) k λ d er refleksjonskoeffisienten for spektralkomponent med bølgelengde λ. d) Både z-bufferalgoritmen og A-bufferalgoritmen bygger på oppdatering av en dybdebuffer med informasjon om de polygonfragmentene som finnes å være nærmest øyet etter hvert som modellen traverseres. I motsetning til z-bufferalgoritmen skytes det i A- bufferalgoritmen flere stråler pr. piksel. Hensikten er å ta hensyn til: Flere polygon kan være synlig i samme piksel Noen polygon kan være transparente eller gjennomskinnelige Reduksjon av aliaseffekter For hver piksel kan informasjonen om polygonfragmenter lagres i en liste. Eksempler på attributter: Dybde Fragmentets dekningsandel av pikselen RGB-komponenter Opasitetparameter
Side 11 av 12 e) Bumpmapping går ut på å illudere overflateujevnheter ved å bruke et bumpmap til å perturbere retningen av overflatenormalen. En rett fram måte å gjennomføre bumpmapping på, er å ta utgangspunkt i en parametrisk formulering av flatebeskrivelsen: Puv (, ) (17) De partiellderiverte: P Pu, u P Pv v (18) definerer sammen med et flatepunkt tangentplanet. Flatenormalen blir: n= P P u v (19) Forskyvning av et overflatepunkt i retning av flatenormalen gir følgende perturberte overflatepunkt: nuv (, ) P'( u, v) = P( u, v) + B( u, v) (20) nuv (, ) Den perturberte flatenormalen blir: n' = P' P' u v (21)
Side 12 av 12 der: n n P' = P + B + B( u, v)( ) n n n n P' = P + B + B( u, v)( ) n n u u u u v v v v (22) B( uv, ) vil vanligvis være en liten størrelse for alle u og v. På en annen side vil de partielt deriverte av u og v ikke være små. Dermed får vi for flatenormalen: n n n n n' = Pu Pv + Bu Pv + BvPu + BuBv + B( u, v)( ) n n n n n n N + Bu Pv + BvPu = n n n n = N + Bu Pv Bv Pu = n+ ( BuA BC v ) = n+ D n n (23) Når dette brukes i Phongs refleksjonsmodell, blir cosinusleddet for refleksjon fra blank flate og spredning fra matt flate henholdsvis: og: n h n h+ D h (24) nl nl + Dl (25) De partielt derivert av B og P kan beregnes ved vanlig numerisk derivasjon. En annen måte å derivere på, er å benytte den algoritmen som kalles multipass bumpmapping. Denne algoritmen godtaes også som eneste svar på spørsmålet om gjennomføringsmåte: Lyskildene slåes av og nedenstående gjennomføres for hver av lyskildene Polygonene skyggelegges med bumpmappet som tekstur. Dette gir bilde A. Det velges en farge som gir det ønskede sluttresultatet Vektoren l i retning lyskilden transformeres til tangentplankoordinatsystemet for hvert polygonhjørne Bumpmappet forskyves en teksel i retningen bestemt av projeksjonen av vektoren l ned i planet n = 0 Polygonen skyggelegges på nytt med bumpmappet i den nye posisjonen. Dette gir bilde B, som er forskjellig fra hjørne til hjørne Bilde B subtraheres fra bilde A. Dette gir skalarproduktet Dl og tilnærmet også D h siden projeksjonene av l og h vanligvis har omtrent samme retning Objektet skyggelegges på nytt denne gangen med lyskildene på. Skalarproduktene Dl og D hlegges til.