Lunds universitet/Lunds tekniska högskola Datavetenskap Tentamen i Datorgrak 30 maj 2001, 813 De 6 uppgifterna är värda 10 poäng vardera. Inga hjälpmedel. 1. (a) Låt klippfönstret ha hörnkoordinater: (0,0), (10,0), (0,10), (10,10). Visa hur Sutherland-Hodgemans algoritm klipper ett polygon vars hörn är: v1 = ( 2 6) ; ; v2 = (3 11) ; ; v3 = (8 7) ; ; v4 = (2 3) ; (b) Använd DDA-algoritmen (eller Bresenhams algoritm) för att rastrera de linjesegment av polygonet som inte klippts i (a). Låt pixlar representeras av heltalskoordinater, dvs centrerade i punkterna (1,1) till (10,10). 2. (a) Beskriv vilka vyer (ramar) som ingår i en vypipeline. Motivera varför de nns med. (b) En tvådimensionell instanstransform består av en skalning, därefter en rotation, och slutligen en translation. Skalningen är likformig: sx = 1=2; sy = 1=2. Rotationen är 90o (motsols). Translationen är 2 enheter vänster (dvs, 2 i x-led). Beräkna den sammansatta transformmatrisen och applicera den på en triangel med hörn i (0; 0); (2; 4); (3; 1). Räkna fram triangelns hörnkoordinater efter instanstransformen. 3. (a) Vi använder Phongs modell. Hur beror reektionen från en idealt matt yta av vinkeln mellan den infallande ljusstrålen och ytans normal? Hur beror den av observatören uppfattade belysningen av vinkeln mellan ytans normal och synlinjen till observatören? Antag att ytan är blank (spekulär) och att vinkeln mellan infallande ljusstrålen och ytans normal är given. Hur beror då den av observatören uppfattade belysningen av vinkeln mellan ytans normal och synlinjen till observatören? (b) En triangels hörnpunkter P0 = (0; 0); P1 = (2; 4); P2 = (3; 1) har ljussatts med I0 = 0:2; I1 = 0:9 resp I2 = 0:5. Beräkna ljussättningen i punkten P = (2; 2). 4. (a) Beskriv kortfattat följande metoder för eliminering av dolda ytor: z-buertalgoritmen. Målaralgoritmen (Painter's algorithm). Vad är fördelar resp nackdelar med metoderna? (b) Beskriv hur BSP-träd kan användas i målaralgoritmen. Vad är fördelarna? Illustrera med exempel. 5. (a) Varför används procedurella metoder i datorgrak? I ett sköldpaddespråk, låt F betyda ett steg framåt, L vänstersväng 90o och R högersväng 90o. Rita det graska objekt som motsvaras av F L F R F R F F L F L F R F . Vad blir den fraktala dimensionen för kurvan där denna sträng appliceras rekursivt på varje F ? (b) Beskriv hur rastertransformer (bitblt-operationer) fungerar och ange några tillämpningar. 6. (a) En vektor har ändpunkterna (xi ; yi; zi ) och (xi ; yi ; zi ) + u (x; y; z ). Koordinatsystemet är högerhänt, och zi och u z är negativa. Var projiceras vektorns ändpunkter om vi tillämpar perspektivprojektion med projektionspunkt z = 1 (på z -axeln) och projektionsplan i origo? Givet en mängd vektorer med olika xi ; yi ; zi och u, men samma x; y; z , i vilken punkt kommer alla projektionernas förlängningar att skära varandra? (b) Varför är parametriska kurvor och ytor viktiga i datorgrak? Vad är NURBS? Varför hanteras dessa kurvor korrekt i perspektivseende?