Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for fysikk, informatikk og matematikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I EMNE TDT40 VISUALISERING TIRSDAG 18. DESEMBER 007 KL. 09.00 1.00 LØSNINGSFORSLAG OPPGAVE 1 Geometrisk modellering a) Ved overflaterepresentasjon representeres objektet av en beskrivelse av sin overflate. Denne beskrivelsen vil vanligvis være en tilnærmelse til den virkelige overflaten. Vanlige metoder for overflaterepresentasjon er: Polygonrepresentasjoner Representasjon med parametriske flater Ved noen romoppdelingsrepresentasjoner deles rommet opp i regelmessige celler i form av kuber eller rette parallellepiped. Til hver celle knyttes informasjon om objektet overlapper cellen eller ikke. Slike representasjoner kan organiseres i for eksempel oktaltrær. Andre metoder går ut på å dele rommet med skillende plan etter mer eller mindre naturlige skiller. Slike representasjoner kan organiseres i BSP-trær.
Side av 10 b) Nedenstående er skisse av en enkel datastruktur for representasjon av polyedre: Object Surface Surface Surface Polygon Polygon edge edge edge edge vt vt vt vt vt vt Forkortelsen vt står for vertex (hjørne). Typiske vesentlige attributter i tillegg til nødvendige pekere er: Polygon: Flatenormal Farge Kant: Om kanten er mellom to polygoner eller to flater (surface) Om det er polygoner på begge sider av kanten Hjørne: Koordinater Gjennomsnittsnormal Teksturkoordinater Vingekantstrukturen er et annet eksempel på en aktuell representasjonsmetode.
Side av 10 c) Likningen representerer en ring: d) Ved CSG-modellering bygges modeller med utgangspunkt i standard grunnelementer som kombineres til mer komplekse objekter med boolske operasjoner. Forskjellige applikasjonsområder vil ha forskjellige bibliotek av grunnelementer. Strålekasting er en metode som kan brukes til å realisere operasjonene i CSG-modellering. 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.
Side 4 av 10 OPPGAVE Parametriske kurver og flater a) Geometrisk kontinuitet er kontinuitet i den geometrisk deriverte som er en retning. Den parametriske kontinuitet er kontinuitet i den deriverte av en parametrisk representasjon med hensyn på parameteren og er en vektor med retning og lengde. b) Eksempel: Den parametrisk deriverte kan gå til 0 (nullvektoren) når en går langs kurven mot et punkt fra hver av sidene. I dette punktet kan kurven ha en knekk. Men den parametrisk deriverte beholder i motsetning til den geometrisk deriverte sin grad av kontinuitet. Som eksempel kan en se på en kubisk uniform B-spline der suksessive 0 kontrollpunkt faller sammen. Kontinuiteten er CG. I figuren nedenfor har punktet P multiplisitet. c) Blandefunksjonene kommer fram ved multiplikasjon av parametervektoren [ u u u 1] med basismatrisen: T 1 1 1 u + u u+ + 0 0 u + u 1 0 0 0 u 6 0 u 6u u [ u u u1] MBéz = [ u u u1] = Hver enkelt blandefunksjon blir skrevet ut: B = u + u u+ 1 = (1 u) 0 1 B = u 6u + u = u(1 u) B = u + u = u u B = u (1 )
Side 5 av 10 d) Det er to betingelser som må være oppfylt for at konvekst skallegenskapen skal være oppfylt: 1. Summen av blandefunksjonene må være lik 1 uavhengig av parameteren u: + + + = + + 1+ B0 B1 B B u u u 6 + u u + u+ u u + + u 0 0 0 1 1 = u + u + u+ = Dette kravet er følgelig oppfylt for blandefunksjonene til kubiske Bézierkurver.. Blandefunksjonene må være ikke-negative i parameterintervallet som svarer til kurvesegmentet, altså for alle u [0,1] : Blandefunksjonene skrevet på faktorisert form inneholder parameteren u bare i faktorene u og (1 u). I det aktuelle intervallet blir ingen av disse to faktorene negative. Dette kravet er følgelig også oppfylt. Begge kravene som må være oppfylt for at konvekst skallegenskapen skal gjelde, er følgelig oppfylt. e) Det som er ukjent, er kontrollpunktene R 0, R 1, R og R for kurvesegmentet representert som en uniform B-spline. Kurvesegmentet er: R0 P0 R P Q( u) = [ u u u1] M = [ u u u1] M 1 1 Bsp Béz R P R P De nye kontrollpunktene R 0, R 1, R og R bestemmes slik: R0 P0 R 1 P 1 1 = MBspM Béz R P R P Konverteringsmatrisen M 1 Bsp for konvertering fra Bézier-representasjon til B-splinerepresentasjon kan regnes ut en gang for alle. M Béz
Side 6 av 10 f) Flatelikningen kan se slik ut: m n Quv ( ˆ, ˆ) PB( ub ˆ) ( vˆ) = i= 0 j= 0 ij i j OPPGAVE Lokale refleksjonsmodeller a) Belysningen fra en lyskilde med intensitet I på en flate med enhetsflateflatenormal n kan når l er en enhetsvektor i retning lyskilden og θ er vinkelen mellom n og l, modelleres som: I cos( θ ) = I ( l n) n θ l Faktoren cos( θ ) tar hensyn til at lyset fordeler seg over en større flate når flate står skjevt i forhold til retningen til lyskilden: I φ I φ I φ Tilsynelatende areal: da cos( θ ) Tilsynelatende areal: da Vi forutsetter at flaten er en perfekt matt flate og at Lamberts cosinuslov dermed gjelder slik at flaten blir seende like lys ut uavhengig av betraktningsretning. Refleksjonsbidraget fra flaten med spredningskoeffisient kd blir da: k I cos( θ ) = k I ( l n) d d
Side 7 av 10 b) Phongs refleksjonsmodell betrakter en blank flate som et ikke perfekt speil. v φ r θ r n θi l θ = θ r i Flatenormalen er n, l en vektor i retning lyskilden, r en vektor i retning for perfekt refleksjon og v en vektor i retning øyepunktet. Alle vektorene er enhetsvektorer. På grunn av imperfekt refleksjon, sendes en del av lyset ut i retningen som danner vinkler med retningen for perfekt refleksjon r. Lyset reflekteres ut i en kjegle der intensiteten avtar med økende vinkel φ. Intensitetsfordelingen modelleres med faktoren cos α ( φ ). For et perfekt speil er eksponenten α er uendelig stor. Dess mer speilet avviker fra det perfekte, dess mindre verdi forα må velges. Refleksjonsbidraget fra en blank flate kan med utgangspunkt i dette modelleres som: α k I cos ( φ) = k I ( r v) s s α der I er lyskildens intensitet og k s er refleksjonskoeffisienten. c) Belysningen E fra en punktlyskilde på en flate avtar med kvadratet av avstanden d til lyskilden: I E d der I er lyskildens intensitet. I Phongs refleksjonsmodell tas det hensyn til endringen i lysets attenuasjon som skyldes lyskildens utstrekning ved å modifisere modellen for en punktlyskilde slik: I E a + bd + cd Konstantene a, b og c tilpasses for den aktuelle lyskilden. Hensikten med konstanten a er å hindre at belysningen blir uendelig stor ved små avstander d. Videre må en for å få fram halvskyggeeffekter erstatte punktlyskilden med en passende samling av punktlyskilder.
Side 8 av 10 d) BRDF står for Bi-directional Reflection Distribution Function. For gitt innfallsretning angir den hvor stor andel av lyset som reflekteres og spredes i en gitt retning: BRDF = f ( θ, φ, θ, φ ) in in ref ref θ in og φ in er henholdsvis elevasjonsvinkel og asimutvinkel for vektoren L rettet mot lyskilden mens θ ref og φ ref er de tilsvarende vinklene for vektoren V rettet mot øyepunktet. Hensikten med en BRDF er at den for en gitt flatetype kan forhåndsberegnes og tabuleres. For Phongs refleksjonsmodell er BRDF summen av leddet som representerer spredning fra matt flate og leddet som representerer refleksjon fra en blank flate: BRDF = k I ( l n) + k I ( r v) α λd iλd i λs iλs i Typisk utseende av BRDF beregnet på grunnlag av Phongs refleksjonsmodell er: n r -l
Side 9 av 10 e) En BRDF for en isotrop flate vil være uavhengig av asimutvinkelen φ in. f) Leddet for refleksjon fra en blank flate modelleres mer realistisk i Cook-Torrancemodellen. De fire fysiske forholdene som den forbedrete modellen tar hensyn til, er: Refleksjon fra mikrofasetter i overflaten Skyggekasting og avmasking i mikroskopiske fordypninger i overflaten Glans ved lave innfallsvinkler Refleksjonskoeffisientens avhengighet av bølgelengde, materialtype og innfallsvinkel OPPGAVE 4 Grafiske filformater kompresjonsteknikker a) Run-length-kode for sekvensen: { 0, 0, 0, 0, 99, 68, 1, 40, 40, 40, 40, 40, 40, 40, 40, 7, 7, 5,,,. ) er: { 4, 0, -, 99, 68, 1, 8, 40,, 7, -1, 5,,,. } Run-length-koding egner seg for bilder som har større ensartede flater. b) Nedenstående er et komplett Huffman binærtre med kodete grener: Dette er ett av flere mulige trær.
Side 10 av 10 De resulterende binærkodene finnes i nedenstående tabell: Pikselverdi Binærkode 96 1 177 000 141 010 85 011 10 0010 4 0011 Andre tre ville ha en annen binærkoding.