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 LØRDAG 18. DESEMBER 2004 KL. 09.00 13.00 Løsningsforslag OPPGAVE 1 Fraktalmetoder (20 %) a) Stokastisk midtpunktforskyvning er spesielt godt egnet til modellering av terreng. Men metoden passer også ved modellering av mange andre typer av naturlige objekter. Metoden er et billigsubstitutt for stykkevise Brownske bevegelser. b) Metoder av typen stokastisk midtpunktforskyvning kan enkelt demonstreres på en rett linje: Midtpunktet på linjen mellom punktet ( aya, ( )) og punktet (, byb ()) forskyves vertikalt med et normalfordelt stokastisk størrelse r: 1 y mid = [ ya ( ) + yb ( )] + r (1) 2 Variansen til normalfordelingen velges ut fra hvor store variasjoner er ønsker i for eksempel landskapet. Prosessen gjentaes for hver av de to halvdelene til den ønskede finheten i modellen er oppnådd.
Side 2 av 12 Når et landskap skal modelleres, vil en gå ut fra et rektangulært plan. Midtpunktet av kantene til rektangelet forskyves vertikalt på samme måte som midtpunktet til linjen i eksempelet over: z e = ( z a + z b )/2+ r e z f = ( z b + z c )/2+ r f z g = ( z c + z d )/2+ r g z h = ( z d + z a )/2+ r h (2) For midtpunktet i rektangelet kan en velge mellom tre forskjellige måter å forskyve det på: eller: eller: z = ( z + z )/2+ r (3) m e g m z = ( z + z )/2+ r (4) m f h m z = ( z + z + z + z )/4+ r (5) m e f g h m Hver av de fire delene deles videre etter samme metode til ønsket grad av finhet er oppnådd.
Side 3 av 12 c) I stedet for å starte med et plant rektangel, kan en starte med et område med rektangulær grunnflate der fordypninger og forhøyninger er grovmodellert som eksemplifisert i følgende figur: De vertikale forskyvningene foretaes i forhold til flatene i denne modellen. d) Ved stokastisk midtpunktforskyvning skjer perturbasjonene i regelmessig fordelt punkter sett i horisontalprojeksjonen. Ved korrekt gjennomført modellering med Brownske bevegelser, er de tilsvarende punktene tilfeldig fordelt. OPPGAVE 2 Fargemodeller (30 %) Figur 1 Figur 2 a) Vi beregner tre fargekoordinater X, Y og Z ved hjelp av den målte spektrale fordelingen I( λ ): X = k I( λ) f dλ Y = k I( λ) f dλ Z = k I( λ) f dλ y z x Integrasjonen utføres nummerisk ved hjelp av de tabulerte funksjonene for de tre standard CIE primærfargene: Koordinatene X, Y og Z er entydige uttrykk for den målte fargen. (Likevel er det slik at flere spektrale fordelinger I( λ ) kan ha samme koordinatverdier.) (6)
Side 4 av 12 b) Mengden av alle mulige farger representeres av et volum spent ut av koordinatene X, Y og Z i et kartesisk koordinatsystem: Planet X + Y + Z = 1 skjærer volumet. Projeksjonen av dette snittet i planet z = 0 er det som er kjent som CIE kromasitetsdiagram. Koordinatene i kromasitetsdiagrammet er normaliserte X og Y koordinater: X x = X + Y + Z Y y = X + Y + Z (7) c) Svarene er: En mulig posisjon for hvitt er det punktet i kromasitetsdiagrammet som er merket C. Det er slik at hvitt defineres på forskjellige måter med referanse til forskjellige standard lyskilder. De forskjellige hvitverdiene ligger i nærheten av punktet C. Om en trekker en rett linje gjennom punktet som velges som hvitt og et annet punkt i kromasitetsdiagrammet som svarer til en bestemt farge, er komplementærfargen den fargen som ligger på den samme linjen på motsatt side av hvitt og som er slik at de to fargene blandes til hvitt. De to fargene ligger i samme relative avstand fra diagrammets kant i forhold til hvitt.
Side 5 av 12 Vi ser på en spektral fordeling. Dominat bølgelengde er bølgelengden til den spektrallinjen som svarer til det fargeinntrykket som fordelingen gir. En spektral fordeling har fargekoordinater X, Y og Z. De normaliserte kromasitetsverdiene er x og y. Dette er et punkt i kromasitetsdiagrammet. Den dominante bølgelengden er bølgelengden der en linje gjennom punktet for hvitt og punktet ( x, y ) skjærer kromasitetsdiagrammets kantlinje. C s er den dominerende bølgelengden for fargen C 1. C sp er den dominerende bølgelengden for fargen C 2. Fargemetning er et uttrykk for fargens renhet i forhold til den spektrale fargen som representeres på kromasitetsdiagrammets kantlinje. Med referanse til figuren over er fargemetningen for fargene C 1 og C 2 henholdsvis: CC CC og 1 2 s CC C C p (8)
Side 6 av 12 d) Svarene er: For å kunne regne om RGB-koordinater for en monitor til RGB-koordinater for en annen monitor, må vi kjenne X, Y og Z-koordinatene for hver av tristimulifargene R, G og B for hver av monitorene. Omregning fra RGB-koordinater til X, Y og Z- koordinater foregår slik: Xn Xr Xg X b Rn Rn Y = Y Y Y G = M G (9) n r g b n n n Z n Zr Zg Z b B n B n Omregning av koordinater for monitor 1 til koordinater for monitor 2 blir da slik: R2 R1 1 G2 = M2 M1 G1 B B 2 1 (10) Hvordan utfører vi omregningen? e) Tristimulifargene R, G og B spenner ut en trekant i kromasitetsdiagrammet. Denne trekanten kalles en fargegamut. De fargene som kan representeres på monitoren, er de fargene som ligger inne i denne trekanten. Tristimulifargene vil være noe forskjellige fra monitortype til monitortype og fra fabrikat til fabrikat. Derfor vil ikke fargegamutene helt overlappe. Farger som ikke felles for gamutene, kan transformeres fra den ene til den andre monitoren. OPPGAVE 3 Volumvisualisering (10 %) a) I pensum er tre metoder til lokalisering av flater i vokselmodeller behandlet: Gradientmetoden: Den aktuelle skalarverdien knyttet til de to nærmeste naboene i hver av de tre akseretningene gir de tre komponentene av gradienten. En flate regnes å gå gjennom vokselen dersom lengden av gradienten overstiger en grenseverdi. Marching cubes : Se deloppgave b) Flategroing: En voksel på flaten lokaliseres. Hvert av de 26 nærmeste nabovokslene undersøkes og innlemmes i flaten dersom den aktuelle skalarverdien ligger innenfor fastsatte grenser.
Side 7 av 12 b) Ved marching cubes -metoden tar en for seg en kube der hvert hjørne er en voksel. Kantene er mellom nabovoksler. En ser på den aktuelle skalarverdien som er knyttet til hvert kantpar av voksler. Dersom skalarverdien viser at vokslene ligger på hver sin side av flaten, plasserer en flaten slik at den skjærer kanten med skjæringspunktplassering på kanten bestemt av skalarverdien som definerer flaten og forholdet mellom denne verdien og hver av de to vokselverdiene. Flaten kan gå gjennom kuben på mange forskjellige måter (256). På grunn av symmetri reduseres antall prinsipielt forskjellige måter til de 15 som er vist i figuren. OPPGAVE 4 Bestemmelse av synlige flater (20 %) a) Dybdebufferen har (normalt) en lagerposisjon for hver piksel i bildet. Algoritme for dybdebuffermetoden er: 1. Initier dybdebufferen med en avstand som er uendelig langt borte og bildebufferen med bakgrunnsfargen 2. For hver polygon i scenen: For hver piksel polygonet dekker, beregn avstanden Dersom avstanden er mindre enn den avstanden som allerede er lagret i dybdebufferen: i. Lagre den nye beregnede avstanden i dybdebufferen ii. Lagre den tilhørende pikselfargen i bildebufferen Når alle polygonene er behandlet, er det ferdige bilden lagret i bildebufferen.
Side 8 av 12 En kan effektivisere beregningen over en polygon ved å anvende inkrementelle beregninger. Planet som polygonen ligger i, beskrives ved likningen: Løst med hensyn på z: Ax+ By+ Cz+ D= 0 (11) Ax By D z = (12) C Polygonet behandles scanlinje for scanlinje. Steglengden er en piksel, det vil si inkrement på 1 i x-retningen. Neste z-verdi blir da: z ' A( x+ 1) By D A = z C C = (13) y y+1 y Neste z-verdi langs en scanlinje kan altså beregnes ved inkrementering. Startverdien for z på neste scanlinje kan også finnes ved inkrementering. Vi tar utgangspunkt i polygonens venstre kant. Likningen for linjen som inneholder denne kanten, kan skrives: x y= mx+ k y x = k m (14) der m er linjens stigningsforhold og k er en konstant (y-verdien for skjæringen med y- aksen). Dersom scanlinjen y skjærer venstre polygonkant ved abscissen x, skjærer scanlinjen y+1 venstre polygonkant ved abscissen: y + 1 1 x' = k = x+ (15) m m Når vi bruker dette i likning (12), får vi: 1 A A( x+ ) B( y+ 1) D + B z' = m = z m (16) C C
Side 9 av 12 b) En enkel og billig metode som vanligvis fjerner grovt regnet halvparten av polygonene før en mer sofistikert metode for bestemmelse hvilke flater som er synlige, er baksidedeteksjon (back-face detection eller backface culling). Den går ut på å benytte den utadrettede flatenormalen N for hvert enkelt polygon og vektoren V rettet fra projeksjonssenteret (øyet) mot scenen. Dersom: Vi N > 0 (17) er polygonet ikke synlig og kan sees bort fra ved videre beregninger. c) Ved bruk av strålesporingsmodellen skytes en stråle (øyestrålen) fra projeksjonssenteret gjennom en piksel inn i scenen. Det punktet øyestrålen treffer, er synlig. Der er det ikke aktuelt å bruke andre metoder for bestemmelse av synlighet. d) Ved bruk av strålesporingsmodellen reflekteres strålen som skytes inn i scenen. Den reflekterte strålen vil også kunne treffe de flatene som ikke er synlige fra øyepunktet slik at disse flatene også vil bidra til fargene i bildet. Derfor kan de flatene som ikke er synlige fjernes før bruk av strålesporingsmodellen. OPPGAVE 5 Kubiske Bézier-kurver og flater (20 %) Blandefunksjonene for kubiske Bézier-kurver (Bernstein-polynomene) er: B ( u) = u + 3u 3u+ 1 = (1 u) B u u u u u u B u u u u u B u u u 3 2 3 0 3 2 2 1( ) = 3 6 + 3 = 3 (1 ) 3 2 2 2( ) = 3 + 3 = 3 (1 ) 3 3 3( ) = = u [0,1] (18) a) Betingelsene for at en kurve skal oppfylle konvekst skallegenskapen, er: Summen av blandefunksjonene må være lik 1 uavhengig av u Ingen av blandefunksjonene kan være negative noe sted i definisjonsintervallet Vi ser: 3 Bk ( u) = 1 (19) k= 0 Det første kravet er altså oppfylt.
Side 10 av 12 En formelt grei måte å undersøke om noen av blandefunksjonene kan ha negative verdier noe sted i definisjonsintervallet, er å søke funksjonenes maksima, minima og nullpassasjer og eventuelt også verdiene i definisjonsintervallets ender. Dette er en relativt arbeidskrevende metode som krever fullstendig undersøkelse av første- og andrederiverte sammen med nullpunktsbestemmelser. En elegant og formelt uangripelig måte å gjennomføre undersøkelsen på, er å se på denne formuleringen av blandefunksjonene: B ( u) = (1 u) B u u u B u u u B u 3 0 2 1( ) = 3 (1 ) 2 2( ) = 3 (1 ) 3 3( ) = u u [0,1] (20) Siden 0 u 1 hverken faktoren u eller faktoren (1 u) være negative i definisjonsintervallet. Da kan heller ikke potenser av faktorene være negative. Følgelig kan vi konkludere med at ingen av blandefunksjonene er negative i intervallet der de er definerte. Det er også greitt å nøye seg med å se på grafiske avbildninger av blandefunksjonene: Vi ser at ingen av blandefunksjonene er negative i definisjonsintervallet. Begge kravene er altså oppfylt. Det vil si at et Bézier-kurvesegment har konvekst skallegenskapen.
Side 11 av 12 b) At skjøten mellom to Bézier-kurvesegmenter maksimalt kan sikres C 1 som parametrisk kontinuitet kan vises på flere måter. En enkel og direkte måte er å konstatere at for en kubisk kurve kan vi maksimalt ta hensyn til fire geometriske betingelser. For Bézierkurven velger vi at den skal interpolere endepunktene. I tillegg velger vi ved hjelp av to kontrollpunkt den parametrisk førstederiverte i endepunktene. La oss også tenke oss at vi vil bestemme den parametrisk andrederiverte i ett av endepunktene. Det ville i så fall ta fra oss muligheten til å gjøre to valg i det andre endepunktet. Vi måtte enten forsake interpolasjon av endepunktet eller kontrollen med den parametrisk førstederiverte i dette endepunktet. Konklusjonen er at vi maksimalt kan sikre C 1 -kontinuitet i skjøtene mellom følger av Bézier-kurvesegmenter. c) En kubisk biparametrisk Bézier-flatelapp kan beskrives ved følgende uttrykk: Quv T T (, ) = U M P M V (21) Her er M basismatrisen: M 1 3 3 1 3 6 3 0 = 3 3 0 0 1 0 0 0 (22)
Side 12 av 12 Parametervektorene U og V er: 3 2 U = u u u 3 2 V = v v v 1 1 (23) Matrisen av kontrollpunkt ser slik ut: P p p p p p p p p 00 01 02 03 10 11 12 13 = (24) p20 p21 p22 p 23 p p p p 30 31 32 33