Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel

Relevanta dokument
Tentamen TNM061, 3D-grafik och animering för MT2. Tisdag 3/ kl 8-12 TP51, TP52, TP54, TP56, TP41, TP43. Inga hjälpmedel

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Omtentamen TNM077, 3D datorgrafik och animering (samt även TNM008, 3D datorgrafik och VR)

Tentamen TNM061 3D-grafik och animering för MT2 och DAV1

Omtentamen. TNM077 3D-datorgrafik och animering kl 8-12 Inga hjälpmedel. (samt även TNM008 3D-datorgrafik och VR)

Tentamen TNM077, 3D datorgrafik och animering

Spelutveckling 3d-grafik och modellering. Grunder för 3d-grafik Blender Animering

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

MATEMATIK 5 veckotimmar

Konvexa höljet Laboration 6 GruDat, DD1344

Koordinatsystem och Navigation

9-1 Koordinatsystem och funktioner. Namn:

Kurs: Datorstödd konstruktion fortsättningskurs, V15-3, TM051B. Provmoment: Tentamen 2,5 högskolepoäng. Personnummer:.. (Ifylles av student)

Tentamen Relativitetsteori , 22/8 2015

Robotarm och algebra

Tentamen i Matematisk analys MVE045, Lösningsförslag

Ma2c - Prövning nr. 3 (av 9) för betyget E - Geometri

TAIU07 Matematiska beräkningar med Matlab

Bézierkurvor och parametriska objektrepresentationer

TANA17 Matematiska beräkningar med Matlab

Parabeln och vad man kan ha den till

TANA17 Matematiska beräkningar med Matlab

NpMa2b vt Kravgränser

Procedurell grottgenerator och eld i GLSL. Marcus Widegren

SF1669 Matematisk och numerisk analys II Bedömningskriterier till tentamen Torsdagen den 4 juni 2015

Datorstödd konstruktion fortsättningskurs, TM051B Tentamen: Del 2-3D CAD - modellering

Lösningar till udda övningsuppgifter

Vektorgeometri och funktionslära

SF1626 Flervariabelanalys Bedömningskriterier till tentamen Onsdagen den 15 mars 2017

NATIONELLT KURSPROV I MATEMATIK KURS D HÖSTEN Del I, 9 uppgifter utan miniräknare 3. Del II, 8 uppgifter med miniräknare 6

(d) Mängden av alla x som uppfyller x = s u + t v + (1, 0, 0), där s, t R. (e) Mängden av alla x som uppfyller x = s u där s är ickenegativ, s 0.

Ellipsen. 1. Apollonius och ellipsen som kägelsnitt.

Rumsuppfattning är förmågan att behandla sinnesintryck av former

PROCEDUELL TERRÄNG. Proceduella metoder för bilder (TNM084) Jimmy Liikala Institutionen för teknik och naturvetenskap

Tentamen 973G10 Matematik för lärare årskurs 4-6, del2, 15 hp delmoment Geometri 4,5 hp, , kl. 8-13

Kap 5.7, Beräkning av plana areor, rotationsvolymer, rotationsareor, båglängder.

Tillåtna hjälpmedel: Physics Handbook, Beta, kalkylator i fickformat, samt en egenhändigt skriven A4- sida med valfritt innehåll.

Om ellipsen och hyperbelns optiska egenskaper

NATIONELLT KURSPROV I MATEMATIK KURS B VÅREN Del I, 9 uppgifter utan miniräknare 3. Del II, 8 uppgifter utan miniräknare 5

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Tentamen, Algoritmer och datastrukturer

ÖVNINGSTENTOR I MATEMATIK DEL C (MED LÖSNINGSFÖRSLAG)

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Linjär algebra på några minuter

Träff 1 Skissa & Extrudera

2. 1 L ä n g d, o m k r e t s o c h a r e a

Tentamen Relativitetsteori

Procedurella Grottor TNM084. Sammanfattning. Alexander Steen

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

Elevuppgift: Bågvinkelns storlek i en halvcirkel

Kvalificeringstävling den 29 september 2009

NATIONELLT KURSPROV I MATEMATIK KURS B HÖSTEN Del I, 10 uppgifter utan miniräknare 3. Del II, 8 uppgifter med miniräknare 5

Lösningsförslag till övningsuppgifter, del V

Bästa skottläge på en fotbollsplan längs långsidan

Inför tentamen i Linjär algebra TNA002.

Datorprogrammet MagneFiC, Magnetic Field Calculations

3.0. Tips och Trix Sida 1 av 18

MAA123 Grundläggande vektoralgebra

Denna tentamen består av två delar. Först sex enklare uppgifter, som vardera ger maximalt 2 poäng. Andra delen består av tre uppgifter, som

ditt Träningsprogram: Uppvärmning

Tentamen i Linjär algebra , 8 13.

Hjälpmedel: Typgodkänd räknare, Physics Handbook, Mathematics Handbook.

Provet består av Del I, Del II, Del III samt en muntlig del och ger totalt 76 poäng varav 28 E-, 24 C- och 24 A-poäng.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

SF1626 Flervariabelanalys Tentamen Måndagen den 16 mars 2015

Stöd inför omtentamen i Linjär algebra TNA002.

NpMa2b ht Kravgränser

TENTAMEN. Matematik 1 Kurskod HF1903 Skrivtid 13:15-17:15 Onsdagen 25 september 2013 Tentamen består av 3 sidor

MEKANIK II 1FA102. VIK detta blad om bladen med dina lösningar. Se till så att tentamensvakterna INTE häftar samman lösningsbladen.

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

Tentamen i Objektorienterad modellering och design Helsingborg

Student för elever på kurs Ma 4 och Ma 5

Högskolan i Skövde (SK, JS) Svensk version Tentamen i matematik Lösningsförslag till del I

5. Förklara och ange definitionsmängden och värdemängden för funktionen f definierad enligt. f(x) = x 2

Parabeln och vad man kan ha den till

x 2 + x 2 b.) lim x 15 8x + x 2 c.) lim x 2 5x + 6 x 3 + y 3 xy = 7

4. I lagret finns 24, 23, 17 och 16 kg:s säckar. På vilket sätt kan man leverera en beställning på exakt 100 kg utan att öppna någon säck?

Exempel :: Spegling i godtycklig linje.

TNA001- Matematisk grundkurs Tentamen Lösningsskiss

Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta

Högskoleprovet Kvantitativ del

Avalanche Studios. OpenGL. Vår teknik. Våra spel. Lite inspiration... Stora, öppna spelvärldar. Sandbox-gameplay. Hög audiovisuell standard

Tentamen Mekanik F del 2 (FFM520)

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara

Provet består av Del I, Del II, Del III samt en muntlig del och ger totalt 76 poäng varav 28 E-, 24 C- och 24 A-poäng.

Svar och arbeta vidare med Student 2008

LYCKA TILL! kl 8 13

7F Ma Planering v2-7: Geometri

TMV166 Linjär Algebra för M. Tentamen

1 x 1 x 2 1 x x 2 x 2 2 x 3 2 A = 1 x 3 x 2 3 x x 4 x 2 4 x 3 4

Institutionen för matematik KTH. Tentamensskrivning, , kl B1210 och 5B1230 Matematik IV, för B, M, och I.

After Effects Lathund

Inociell Lösningsmanual Endimensionell analys. E. Oscar A. Nilsson

Tentamen Datastrukturer (DAT036)

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

5B1134 Matematik och modeller

Tentamen Matematisk grundkurs, MAGA60

Transkript:

Tentamen TNM061, 3D-grafik och animering för MT2 Onsdag 20/8 2014 kl 14-18 SP71 Inga hjälpmedel Tentamen innehåller 7 uppgifter, vilka tillsammans kan ge maximalt 50 poäng. För betyg G (registreras som sifferbetyg 3) erfordras minst 24 poäng. För betyg VG (registreras som sifferbetyg 5) erfordras minst 35 poäng. Deluppgifterna bygger inte direkt på varandra, så läs t ex b) även om du inte svarar på a). Svara kortfattat men rimligt fullständigt på uppgifterna. Förutsätt inte att läsaren redan kan svaret, utan visa med ditt svar att du kan ämnet och att du förmår förklara det för andra. Förklara införda beteckningar och ekvationer, och redovisa eventuella beräkningar. Rita figurer där det gör svaret tydligare. Glöm inte heller bort att förklara dina figurer i ord eller i ekvationer. För uppgifter som ger många poäng vill jag se rimligt utförliga svar för full poäng, men för uppgifter med enstaka poäng räcker det med korta svar. Även korta svar skall vara tydliga. Jag kommer att befinna mig i närheten av tentamenslokalen och besöka den flera gånger under tentamenstiden för att svara på eventuella frågor. Kontakta tentamensvakten om du behöver få tag i mig mellan dessa tillfällen. Lycka till! Stefan Gustavson

Uppgift 1 (9 p). Phongs klassiska lokala reflexionsmodell med tre termer för allmänljus, diffus reflexion och spekulär reflexion brukar traditionellt presenteras med följande förenklade ekvation: I=I a k a +I d k d ( ^N ^L)+I s k s ( ^R ^V ) n a) Förklara vad de fyra vektorerna ^N, ^L, ^R och ^V betecknar. Rita en tydlig figur. (3 p) b) Flera av de ingående parametrarna beskriver ytans egenskaper, och dessa kan fås att variera över ytan med hjälp av en textur (texture map). Beskriv tydligt vilken visuell effekt man får av att koppla en textur till var och en av de tre parametrarna k d, k s och N. (6 p) Uppgift 2 (9 p). Nedanstående bild visar en mycket enkel scen som renderats med raytracing. Scenen innehåller tre sfärer på ett rutigt golv, belysta av en enda ljuskälla. Sfären till vänster har en diffust reflekterande yta, sfären i mitten har en rent speglande yta och sfären till höger är avsedd att simulera glas. Fyra ringar (A, B, C, D) markerar positionen för fyra pixels i bilden. För var och en av dessa pixels, beskriv vilka strålar som måste ha varit inblandade i renderingen av dem för att bilden skall ha kunnat få det utseende den har! Använd figurer i din förklaring. (A, B, C 2 p vardera, D 3 p) A B C D Uppgift 3 (4 p). Ange varför följande effekter är förhållandevis svåra och tidskrävande att beräkna med raytracing. a) Skuggor med mjuka kanter. (2 p) b) Diffusa reflexioner mellan objekt. (2 p) Uppgift 4 (6 p). Det finns flera väsentliga skillnader mellan 3D-grafik i spel, där man måste räkna ut omkring 60 bilder per sekund, och 3D-grafik i filmeffekter, där man oftast har flera minuter eller timmar på sig per bild. Ange minst tre fundamentala tekniska skillnader i hur renderingen görs, och förklara vilken inverkan de har på det visuella resultatet!

Uppgift 5 (6 p). En 3D-modellerare gör en textur för ett golv med kvadratiska plattor som skall ligga på diagonalen i 45 graders vinkel mot väggarna. (Se bild nedan till vänster.) Golvet ska kunna visas i närbild. Den bildbaserade texturen blir tyvärr taggig i kanterna när man zoomar in. Det syns väldigt tydligt att den består av pixels. (Se bild nedan i mitten.) Bilden som modelleraren ritat och sparat som en PNG-fil med storleken 128x128 pixels ser ut som visas i bilden nedan till höger. a) Föreslå en lösning för att skapa det här mönstret som fortfarande använder en bildbaserad textur men utan att ge samma extremt pixliga intryck på nära håll, och som ändå inte kräver att texturbilden görs större! Det finns minst två sätt att lösa problemet. (2 p) b) En annan lösning är att använda en så kallad procedurell textur (procedural texture). Förklara vad som menas med detta, och ange de väsentliga för- och nackdelarna med metoden jämfört med bildbaserade texturer. (4 p) Uppgift 6 (6 p). En kubisk Béziérkurva definieras av ekvationen: p(t)=(1 t) 3 p 0 +3t(1 t) 2 p 1 +3t 2 (1 t)p 2 +t 3 p 3, 0 t 1 där p i är kurvans kontrollpunkter, i=0,1,2,3. a) En trevlig egenskap för Béziér-kurvor är att punkterna på kurvan håller sig inom det konvexa höljet (convex hull) av kontrollpunkterna. Med detta menas att alla punkter på kurvan kan beskrivas som en linjärkombination av kontrollpunkternas vektorer, där ingen av linjärkombinationens vikter är negativ, och där summan av alla vikterna är 1. Visa detta! (4 p) b) Béziér-kurvsegment används ofta för att rita cirklar, men en sådan cirkel blir inte exakt. Ett kurvsegment som approximerar en kvartscirkel i första kvadranten (x 0,y 0 ) med centrum i origo och radien 1 kan anges med kontrollpunkterna p 0 =(0,1), p 1 =(a,1), p 2 =(1,a), p 3 =(1,0), med a=( 4/ 3)( (2) 1) 0.552. Avvikelsen mellan den exakta cirkelns radie och radien för approximationen ser då ut som i grafen här bredvid. Ange hur man räknar ut den grafen! Du behöver inte förenkla slututtrycket, men ange alla steg som behövs för beräkningen. (4 p)

Uppgift 7 (10 p). Programkoden längst ner på sidan ritar en Lego-figur med OpenGL och C++. Figuren kan rotera armarna vid axlarna, vrida händerna vid handlederna och vrida på huvudet, men benen är orörliga och sitter fast i kroppen. En verklig figur med samma rörelsemöjligheter visas i bilden här bredvid, och den finns också fysiskt i tentamenslokalen om du vill testa. (Vinklar och avstånd har förenklats i koden, och armarna antas för enkelhets skull vara raka och inte krökta.) Klassen Matrix implementerar en matrisstack enligt följande: Matrix.pop() Matrix.push() Matrix.init() Matrix.rotateX(phi) Matrix.rotateY(phi) Matrix.rotateZ(phi) Tag bort den översta matrisen från stacken. Skapa en kopia av den översta matrisen och lägg den överst på stacken. Tag bort alla matriser från stacken och lägg en enhetsmatris överst. vinkeln phi runt x-axeln. vinkeln phi runt y-axeln. vinkeln phi runt z-axeln. Matrix.translate(tx, ty, tz) Mutliplicera den översta matrisen med en translationsmatris. För att rita objekt har man implementerat en enkel klass Mesh som renderas med metoden: Mesh.render(Matrix M); Matrisen högst upp på matrisstacken M används för att transformera objektet vid renderingen. Arrayen float pose[5] innehåller de vinklar som beskriver rotationen för figurens leder. Matrix M; Mesh FigBody, FigHead, FigLeftArm, FigRightArm, FigLeftHand, FigRightHand; float pose[5]; // (Code to create meshes left out) M.init(); FigBody.render(M); M.translate(0.0, 0.0, 2.0); M.rotateZ(pose[0]); FigHead.render(M); M.translate(0.7, 0.0, 1.5); M.rotateY(0.1); // 6 degrees or so M.rotateX(pose[1]); FigRightArm.render(M); M.translate(0.0, 0.0, -2.0); M.rotateZ(pose[2]); FigRightHand.render(M); M.translate(-0.1, 0.0, 0.2); M.rotateY(-0.1); // -6 degrees or so M.rotateX(pose[3]); FigLeftArm.render(M); M.translate(0.0, 0.0, -2.0); M.rotateZ(pose[4]); FigLeftHand.render(M); (uppgiften fortsätter på nästa sida)

a) Rita en scengraf för att beskriva samma scen i ett scengrafsbaserat API, exempelvis Java3D. Det är inte så noga med exakt vilken notation du använder, men du skall visa tydligt hur scengrafen ser ut, och det ska framgå vilken funktion de olika noderna har. (5 p) b) Man vill sätta en mössa på figuren. (Den verkliga figuren på bilden och i tentamenslokalen har en sådan mössa.) Mössan skall sitta fast på huvudet och rotera med huvudet, men den skall också kunna rotera för sig själv runt z-axeln. Visa hur detta skulle återspeglas i scengrafen, och visa också hur det skulle kunna göras i OpenGL-koden. (3 p) c) Antag nu att man skulle vilja göra så att figuren i stället håller mössan i handen. Hur skulle scengrafen se ut då? Hur skulle OpenGL-koden behöva förändras? (2 p)