Side 1 av 8 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for fysikk, informatikk og matematikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN I EMNE TDT430 VISUALISERING TIRSDAG 9. AUGUST 005 KL. 09.00 13.00 LØSNINGSFORSLAG OPPGAVE 1 Phongs refleksjonsmodell Phongs refleksjonsmodell: Si α Iλ = k ( ) ( ) λdiiλd li n + k λsiiλs hi n + kλaiiλa + kλaiλa i a+ bdi + cd (1) i a) Leddene som inngår: Leddet kλdiiλd( li n) modellerer diffus spredning. Leddet k sii s( hi n) α λ λ modellerer skinn (refleksjon) fra en flate som har en grad av blankhet. Leddet kλaiiλ aer bidraget til bakgrunnsbelysningen fra lyskilde i. Leddet kλaiλ a er den globale bakgrunnsbelysningen. 1 Faktoren modellerer avstanden til og utstrekningen av lyskilde i. d er a+ bdi + cdi avstanden til lyskilden. For en punktlyskilde er b = 0. Faktoren kan tilpasses en lyskilde med utstrekning ved å velge størrelsen av koeffisienten b. Hensikten med koeffisienten a er å hindre at faktoren blir for stor ved små avstander d.
Side av 8 Symbolene for øvrig har følgende betydning: I i λ I i.. S i k α indeks d indeks s indeks a n l i h i - lysstyrke - summerer over alle lyskildene - summerer for hver fargekomponent r, g og b - belysningskomponent fra lyskilde i - okklusjonsfaktor for lyskilde i (=1 synlig, =0 usynlig) - refleksjonskoeffisient - glanstall, stor verdi gir smal refleksjonslobe (opp mot speilende refleksjon), liten verdi gir bred refleksjonslobe (stor spredning) - diffus refleksjon - speilende refleksjon - bakgrunnsbelysning - flatenormal, enhetsvektor - enhetsvektor i retning lyskilde i - midt-i-mellomvektor, vektor i retning summen av vektoren i retning lyskilde i og vektoren i retning av projeksjonssenteret (øyet), enhetsvektor b) For en ideelt matt flate gjelder Lamberts cosinuslov. I φ I φ Loven uttrykker at lysstyrken I φ i en retning som danner vinkelen φ med flatenormalen er: I φ = I cos( φ) () Der I er lysstyrken loddrett på flaten. For et øye som betrakter flaten med areal da under vinkelen φ vil den tilsynelatende størrelsen av flaten være da cosφ : φ I φ I φ Luminansen (lysstyrke pr. flateenhet av den flaten en oppfatter med øyet) blir: Iφ I cosφ I Luminansen = = = konstant (3) tilsynelatende areal dacosφ da Dette betyr at flaten ser like lys ut uavhengig av betraktningsvinkelen.
Side 3 av 8 OPPGAVE Varianter av strålesporingsmodellen a) Ved topass strålesporing oppnår en å få tatt hensyn til at speilende flater reflekterer lyset fra lyskilder ut over omgivelsene. En oppnår også å få bildet av lyskilder ( caustics ) slik det blir etter at lyset har gått gjennom brytende transparente legemer (for eksempel linser). Metoden består i: Pass 1: Lyskildene skyter stråler mot speilende flater og mot transparente objekter Lyskart dannes på diffust spredende flater Pass : Normal strålesporing gjennomføres Legger til informasjonen fra lyskartet b) Distribuert strålesporing gir økt realisme ved: Ikke perfekte refleksjoner Ikke perfekt transmisjon egrenset dybdeskarphet evegelsesuskarphet Som tilleggsgevinst får en: Antialiasing Halvskygger
Side 4 av 8 Metoden er: Deler inn pikselen i 4x4 ruter Skyter en stråle på tilfeldig plass i hver rute Hver stråle merkes Merket avgjør: Hvor strålen går gjennom linsa Hvordan strålen passerer gjennom refleksjons- og transmisjonslobene Strålens merke avgjør tabelloppslaget for refleksjonslobene. Tilsvarende gjelder for transmisjonslobene og for linsa.
Side 5 av 8 OPPGAVE 3 Polygonmodeller a) Det sentrale i vingekantstrukturen er kantrepresentasjonen: n-ccw p p-cw hjørner: n (next) p (previous) n-polygonen p-polygonen n-cw n p-ccw Hjørnene som danner kantens ender gies navnene next (n) og previous (p). Polygonene som har kanten felles gies navnene n-polygoner og p-polygonen slik som vist på figuren (p-polygonet til høyre når en går fra n mot p og n-polygonen til høyre når en går fra p mot n). De tilstøtene kantene i hjørnene n og p og som også er kanter til n- og p- polygonene, navngies etter polygonen og rotasjonsretning (klokkeretning) som vist på figuren. Kanten har pekere til disse fire kantene, til de to hjørnene og til de to tilgrensende polygonene. Hvert hjørne har peker til en av kantene som ender i hjørnet. Hver polygon har peker til en av kantene som avgrenser polygonen. En komplett datastruktur for et objekt med hjørner, kanter og polygoner kan være: Objekt (volum): Identifikasjon Hode for dobbeltlenkede lister av: Polygoner Kanter Hjørner Kant: Identifikasjon Pekere til: To hjørner To polygoner Fire kanter Neste og foregående kant i objektets kantliste
Side 6 av 8 Hjørne: Identifikasjon Pekere: Første kant til hjørnet Neste og foregående hjørne i objektets hjørneliste Koordinater: Lokale koordinater Verdenskoordinater Projiserte koordinater Polygon: Identifikasjon Pekere til: Første kant til polygonen Neste og foregående polygon i objektets polygonliste Anvendelsesspesifikke polygonattributter - eksempelvis: Flatenormal Farge Refleksjonsegenskaper b) Vi ønsker en liste av alle kantene som har hjørnet felles. Mulig algoritme: 1. Initier listen med peker til kanten som hjørnet refererer direkte til.. Løkke: Hvis hjørnet er p-hjørnet til kanten: Ta p-cw som ny-kant Ellers Ta n-cw som ny-kant Hvis peker til ny-kant er lik peker til første kant i listen Ferdig med løkken Ellers Legg ny-kant til listen Ny-kant er stående kant Det er selvsagt også mulig å gå motsatt vei rundt ved å bruke ccw-kantene.
Side 7 av 8 OPPGAVE 4 Ikke-rasjonale -splines a) Etter nummereringskonvensjonen vi har brukt i emnet, får vi for uniforme kubiske - splines m- kurvesegmenter nummerert fra 3 til m: Segment Q 3 definert over kontrollpunktene P 0, P 1, P, P 3 Segment Q k definert over kontrollpunktene P k-3, P k-, P k-1, P k, 3 < k < m Segment Q m definert over kontrollpunktene P m-3, P m-, P m-1, P m b) En blandefunksjon er en vektfunksjon som er knyttet til et bestemt kontrollpunkt. Kontrollpunktet påvirker kurvesegmentet med en vekt som blandefunksjonen angir. Et kontrollpunkt vil påvirke et avgrenset antall kurvesegment. Hvert kurvesegment svarer til et intervall i parameteren û. landefunksjonen vil være forskjellig fra null bare for de parameterintervallene som svarer til de kurvesegmentene som påvirkes. Som eksempel viser ovenstående figur blandefunksjonen for en uniform kubisk -spline. landefunksjonen er forskjellig fra 0 for fire parameterintervall. Dette viser at kontrollpunktet har innflytelse på 4 sammenhengende kurvesegmenter. c) En knute er skjøten mellom kurvesegment og mellom parameterintervallene som svarer til de enkelte kurvesegmentene. Knuten angies med parameterverdi u k. I figuren (deloppgave b) er u i, u i+1, u i+, u i+3 og u i+4 knuter. For uniforme -splines er lengden av parameterintervallene uk+ 1 uk vanligvis lik 1. For ikke-uniforme -splines vil størrelsen på parameterintervallene variere. Vi kan ha sammenfallende knuter ( u + 1 u = 0 ). k k Knutevektoren er en ikke avtakende sammenhengende sekvens av knuteverdier. Enkle knuter har multiplisitet 1. Ellers er multiplisiteten antallet av knuter som faller sammen.
Side 8 av 8 d) For intervallet u ˆ u< u3 får vi: Vi bruker u = uˆ u ˆ ˆ = u 0 = u. Første orden: 0,1 1,1,1 3,1 4,1 ( u) = 0 ( u) = 0 ( u) = 1 ( u) = 0 ( u) = 0 Andre orden: uˆ u u uˆ u 0 (1 u) 0 ( u) = ( u) + ( u) = + = 0 0 0 0 0, 0,1 1,1 u1 u0 u u 1 û u u û u 0 (1 u) 1 ( u) = ( u) + ( u) = + = 1 u 0 1 1 3 1, 1,1,1 u u1 u3 u û u u û u 1 (1 u) 0 ( u) = ( u) + ( u) = + = u 1 0 4,,1 3,1 u3 u u4 u3 uˆ u u5 uˆ ( u 1) 0 (1 u) 0 ( u) = ( u) + 4,1( u) = + = 0 u u 0 0 3 3, 3,1 u4 u3 5 4 Tredje orden, søkte blandefunksjoner: û u u û u 0 (1 u) (1 u) ( u) = ( u) + ( u) = + = (1 u) 0 1 0 3 0,3 0, 1, u u0 u3 u1 û u u û u (1 u) (1 u) u ( u) = ( u) + ( u) = + = u(1 u) 1 1 1 4 1,3 1, i, u3 u1 u4 u û u u û u u (1 u) 0 ( u) = ( u) + ( û) = + = u 1 0 5,3, 3, u4 u u5 u3