Fotorealistisk 3D Datorgrafik
|
|
- Malin Lundgren
- för 9 år sedan
- Visningar:
Transkript
1 Fotorealistisk 3D Datorgrafik Kensuke Sugii Åbo Akademi
2 Innehållsförteckning Innehållsförteckning 1 ABSTRAKT 3 1 INLEDNING 4 2 GEOMETRISKA HJÄLPMEDEL Koordinatsystem Vektorer Matriser och matristransformationer Matris rotation Matris translation Matris skalning (scaling) Komplexa tal Hyperkomplexa tal och kvaternioner Polygoner Constructive Solid Geometry B-splines Subdivision surfaces 12 3 BELYSNINGSMODELLER OCH SHADING Lambert shading Gouraud shading Phong shading Texture mapping Bump mapping Displacement mapping 16 4 RENDERING Projektion, sampling och kvantifiering Anti Alias Bilinjär filtrering (Bilinear filtering) Mip mapping Trilinjär filtrering (Trilinear filtering) 20 1
3 4.2.4 Anisotropisk filtrering (Anisotropic filtering) Skanlinje (Scan line) rendering Raytracing Radiosity Caustic rendering och fotonavbildning (Photon mapping) 25 5 DISKUSSION 26 Litteraturförteckning: 27 2
4 ABSTRAKT Denna uppsats är ämnad att ge en överblick av metoder som används vid framställning av fotorealistisk 3D datorgrafik i dagens läge, samt gå igenom de mest grundläggande begrepp och matematiska hjälpmedel som används, i modellering av objekt, scensättning, belysning samt rendering. Vidare har metoderna jämförts med avsikten att förklara för och nackdelarna med dem i olika sammanhang, samt förknippats med hur vi upplever verkligheten visuellt. Tonvikten har lagts på att skapa en realistisk upplevelse, men kostnaden för beräkningarna med tanke på vad hårdvara har att erbjuda kommer också tas i beaktande. Optimering av algoritmerna är därför inte huvudsyftet med uppsatsen utan snarare har metoderna jämförts med tanke på hur bra optimeringar har gjorts. Nyckelord: Modellering, Scensättning, Material, Refraktion, Reflektion, Färglära, Luminans, Shading, Raytrasing, Radiosity, HDR, Caustics, Photonmapping, Texture mapping, Anti- Aliasing, Mip mapping, Trilinear filtering, Rasterisering, Gamma korrigering, B-Splines, NURBS, CSG, Bumpmapping. 3
5 1 Inledning Grafik härstammar från det greksika ordet graphikos, att rita eller skriva skrapa på lertavlor. Idag använder vi ordet I betydelsen, visuella presentationer, I något givet medium, som t.ex. på papper, tavlor, film eller dator skärmar. När vi talar om grafik menar vi knappast något annat än tvådimensionella representationer, medan tredimensionella föremål går utöver definitionen. Men vi kan fortfarande representera tredimensionella föremål I två dimensioner genom nån typ av projektion. Med 3D grafik menas just sådan grafik, som projicerats i ett plan. Sådan grafik som genereras på dator kallar vi 3D Datorgrafik och är realistisk i den grad vi inte kan urskilja den från verkligheten, dvs. är naturtrogen. Nu är målet med utvecklingen av 3D datorgrafik att åstadkomma den typ av realism, men också samtidigt att göra det så effektivt som möjligt. Det senare kravet är ytterst viktigt när det gäller grafik som måste genereras i realtid alltså i sammanhanget att generera interaktiva animationer, som t.ex. datorspel, men också i icke-realtidssammanhang så kan tid vara en bristvara. Datorgrafiken är oftast inte fullt så realistisk att vi inte skulle kunna urskilja från verkligheten, men många framsteg har gjorts och bilderna och animationerna genererade på dator idag ser mycket mer verklighetstrogna än vad de gjorde för exempelvis tio år sedan. I den här uppsatsen kommer jag att lägga tonvikten vid kravet på realism snarare än optimering, men kommer också att beröra det senare i vissa sammanhang. Jag kommer därför att gå igenom de metoder och koncept som är aktuella, för att åstadkomma en överblick av 3D datorgrafik I dagens läge som koncentrerar sig på naturtrogenehet. Processen i produktionen av 3D datorgrafik kan delas upp i 3 delar, nämligen modelleringen av objekt, scensättning och rendering dvs. generering av den slutgiltiga bilden. Modellering av objekt sker mha. olika typer av geometriska hjälpmedel som jag tar upp i andra kapitlet. I det tredje kapitlet tar jag upp skuggning och belysningsmodeller som används för att åstadkomma de rätta ljuseffekterna för scen. I kapitel fyra så går jag igenom några renderingsalgoritmer och avslutar med en diskussion i det sista kapitlet. De flesta engelska tekniska termer som används här har ingen adekvat standardiserad svensk term, så därför har jag beslutat att använda den engelska termen och förklara vad det innebär första gången. De flesta bilder är tagna från nätet, i vilket fall det finns referenser angivna, men vissa bilder har jag själv ritat. 4
6 2 Geometriska hjälpmedel I det första steget gäller det att skapa en 3-dimensionell matematisk modell av de föremål man vill avbilda. Då finns det flera olika sätt att representera dessa objekt på, men i allmänhet krävs det att man har ett koordinatsystem som fungerar som en referensram till vilket allt är ursprungligen är relaterat. 2.1 Koordinatsystem Alla geometriska föremål som har läge är relaterade till varandra i ett så kallat kordinatsystem. Alternativt skulle objekt kunna beskrivas direkt i relation till varandra, men en sådan strategi är inte bara extremt ineffektiv utan förlorar också begrepp om perspektiv och förankring till vår rumsintuition. Istället så anger vi varje föremål i koordinater, för att bespara oss sådana problem. Koordinatsystem kan vara antingen högerhänta eller vänsterhänta, vilket bestäms av i vilken riktning y axeln har i relation till x och z axlarna. Om vi sätter tummen i x axelns led och långfingret i z axelns led så ska y axeln vara i pekfingrets led. Om det stämmer överrens med höger hand så är det högerhänt, annars vänsterhänt. I ett kartesiskt koordinatsystem anger man koordinaterna som komponenter i enhetsvektorernas riktning medan i ett polärt koordinatsystem anger man koordinater med vinklar och en radie. Ibland vill man uttrycka vissa rumsfenomen i lokala koordinater, dvs relativt en viss orientering i ett annat systemet och då använder man sig av ett lokalt koordinat system. Det ursprungliga systemet kallar man då för globalt koordinatsystem. När vi väl har koordinatsystemet på plats, så kan vi införa objekt som är i allmänhet angivna med hjälp av vektorer. 2.2 Vektorer Vektorer är en av de mest fundamentala begrepp inom 3D datorgrafik, för form och storlek på alla objekt kan beskrivas med vektorer. En vektor är en riktad endimensionell storhet, och kan antigen beskrivas av dess orientering och längd, eller som en n-tippel av dess utsträckning i varje dimension i det givna koordinatsystemet. Det tidigare sättet kallas polär medan det senare kartesisk, men eftersom den kartesiska representationen är den som används nästan uteslutande i detta sammanhang, så kommer jag endast att ta upp den. Med hjälp av de olika operationer som är definierade i vektoralgebran, kan man beräkna viktiga geometriska och dynamiska egeneskaper för objekt i en scen. För vektorer har de vanliga aritmetiska operatorerna har en speciell dynamisk funktion. Att addera och subtrahera betyder samma sak som att förflytta, medan att multiplicera 5
7 och dividera med en skalär betyder att ändra på storleken i omvänd proportion till skalären. Produkter mellan vektorer finns det två typer av. Den skalära produkten som ger en skalär, som är längden av den ena multiplicerat med längden av den andra projicerad på den förra. Skalär produktion används oftast för att framställa projektioner och för att eliminera användande av trigonometriska funktioner för att bestämma förhållandet mellan två vinklade plan. Vektor produkten som namnet redan antyder, består av en vektor. Dess riktning är vinkelrät mot dess operander och har en storlek som är arean av det område dessa spänner upp. Den används ofta för att bestämma normaler och orienteringen på asymmetriska objekt. Vektorer kan också användas för att ange hur objekt är lokaliserade i förhållande till ett koordinatsystem, men för att få en mera dynamisk kontroll över detta så används matriser. 2.3 Matriser och matristransformationer Matriser är ett hjälpmedel för att lösa linjära ekvationssystem, men också hjälpmedel för att representera hur objekt är orienterade i förhållande till varandra, eller till ett koordinatsystem. De består av räckor med tvådimensionella räckor varpå vi har definierat olika operationer, varav vi är intresserade av just två typer av produkter vi vill använda för att dynamiskt kunna manipulera objekts orienteringar, något vi kallar för att göra matristransformationer. Matris multiplikationen är en produkt mellan matriser som ger en sekventiell representation av operandernas transformationer. En människokropps olika delar är sammankopplade i olika rörliga leder, men om man vrider på en led så vrids alla delar omkring den leden, som tex. när man vrider på fingerlederna. När vi vrider på flera leder så får vi en sekventiell effekt. En vridning kan representeras med en matris, medan en sekventiell vridning av flera leder kan representeras med en matris multiplikation. Matris multiplikationen är av samma skäl inte kommutativ, eftersom om man gör de olika vridningarna i olika ordning får vi olika resultat. Det här har att göra med med specifika egenskaper av den geometriska rymden. Den andra produkten är matris-vektor produkten som består av en vektor som vi i det här sammanhanget representerar resultatet av en utförd transformation på något föremål som beskrivs av vektor operanden. Det finns tre typer av grundläggande operationer varur man kan komponera mera komplexa rörelser, nämligen translering, rotation och skalning. Att translera betyder att flytta, och att skala är att ändra på storleken. Matriser är väldigt behändiga eftersom komplicerade rörelser kan sammanfattas med en enda matris, och det följd av matrisprodukter på dess delsteg. Matriser används för animera objekt och kameror i scenen, men är också nyttiga för stillbilds generering om man vill återanvända matematiska modeller i andra sammanhang. 6
8 2.3.1 Matris rotation Rotation utförs genom att multiplicera med en så kallad rotationsmatris. Två typer av rotationsmatriser används, med olika dimensioner, 3 x 3 matriser och 4 x 4 matriser. De mindre matriserna är endast användbara om vi inte utför andra operationer än rotationer. Om vi ska rotera runt en given punkt annat än origo, så krävs translationer för att flytta den punkten till origo före rotationen och tillbaka efter rotationen, men det här måste man alltid göra med homogena koordinater, dvs. med en extra dimension som är en faktor i de andra. Beroende på vilken axel vi roterar runt, så har vi 3 matriser: cos_ 0 sin_ 0 cos_ -sin_ Cos_ -sin_ 0 0 Sin_ cos_ sin_ cos_ 0 0 -sin_ 0 cos_ X Rotation Y Rotation Z Rotation Om vi kombinerar dem får vi en enda matris, men här gäller det att alltid utföra kombinationen på samma sätt. Här är ett exempel: Cos_ cos_ Cos_ sin_ sin_-cos_ sin_ Cos_ cos_ sin_ +sin_ sin_ 0 Cos_ sin_ Cos_ cos_+sin_ sin_ sin_ -cos_ sin_ + cos_ sin_ sin_ 0 -sin_ cos_ sin_ cos_ cos_ Rx Ry Rz Att rotera runt en godtycklig axel är också möjligt men involverar komplicerade uttryck och då är det bättre att vi använder något mera lämpligare hjälpmedel som tex. kvaternioner som jag kommer att ta upp senare Matris translation Translation kan förstås som en förflyttning i något håll. Då multiplicerar vi med en translationsmatris som ser ut på följande sätt: Tx 7
9 0 1 0 Ty Tz Tx, Ty och Tz är de relativa koordinaterna för förflyttningen Matris skalning (scaling) Skalning är att förstora eller förminska något med avseende på origo. På samma sätt som vid rotation måste man utföra translation för att göra det med avseende på en godtycklig punkt. Skalningsmatrisen ser ut på följande sätt: Sx Sy Sz Sx, Sy och Sz är skalningskoefficienterna för komponenterna i enhetsvektorernas riktning. Då de inte är lika, så blir föremålet utsträckt eller alternativt tillplattat. För att göra det i godtycklig riktning, så kan man utföra en rotation först, och en efter i motsats riktning. 2.4 Komplexa tal Vektorer och matriser lämpar sig bra för att hantera kartesiska representationer, men i vissa fall kan det vara skäl att använda sig av polära representationer, mestadels för att hantera komplexa rotationer. Då kan ett enklare matematiskt begrepp användas, nämligen komplexa tal. Komplexa tal är en utvidgning av reella tal för att ge lösningar åt ekvationer av typen x 2 =-2, dvs. då vi får ett negativt tal under en rot av jämn grad. Komplexa tal skriver vi antingen som ett talpar: a+bi, där i=roten ur -1, a är den reella komponenten och b den imaginära komponenten, eller som re iϕ där ϕ är vinkeln mellan vektorerna (1,0) och (a,b). Vi kan framställa komplexa tal visuellt i två dimensioner som en vektorer (a,b), varvid vi kan föreställa oss hur de olika operationerna kan förstås. Addition och subtraktion sker på samma sätt som med vektorer, men multiplikation och division, sker rotation och skalning med avseende på punkten (0,0). I motsats till vektorer har komplexa tal alltså operationer för både polär och kartesisk framställning och gynnar därför inte bara en kartesisk representation. 8
10 2.4.1 Hyperkomplexa tal och kvaternioner Hyperkomplexa tal är en generalisering av komplexa tal, men inte för n utan för n 2 dimensioner. Kvaternioner är alltså en fyrtippel av tal och kan presenteras visuellt i fyra dimensioner. I många fall är upprepade rotationer ineffektiva att göra med matriser, och orsakar dessutom ett fenomen som kallas gimbal låsning, och då kan kvaternioner vara ett bättre hjälpmedel. Om vi roterar koordinataxlarna X och Y 90 grader successivt, så kommer rotering av Z axeln att sammanfalla med X axeln, vilket är alltså gimbal låsning. I flygplanssimulatorer måste man kunna klara av att svänga fritt kring planets egen axel, men det här klarar inte vanliga transformationer med Euler vinklar av. Därför används kvaternioner som tillåter oss att rotera kring en arbiträr axel, vilket sker genom multiplikation med en annan kvaternion. För att utföra successiva rotationer så multiplicerar vi med kvaternioner i serie. 2.5 Polygoner Nu har vi behandlat de viktigaste hjälpmedel att representera föremåls dynamiska egenskaper och kan fortgå till själva konstruktionen av modellerna. Polygoner är den vanligaste typen av geometriska objekt som används för att modellera en scen. En polygon består av en plan yta insluten av minst 3 stäckor. Eftersom alla polygoner kan delas upp i trianglar, så är ofta trianglar fördelaktiga att använda eftersom det förenklar renderingsproceduren. Trots det kan också polygoner av högre grad vara användbara och ha sina fördelar. En polygons konvexitet har också stor betydelse för renderings processen, eftersom den regelbundenhet konvexitet innebär att en massa förenklingar kan göras. En polygon är konvex om och endast om varje sträcka som man ritar i polygonen är helt innesluten i polygonen. Ett tvärsnitt kommer därför aldrig att dela upp dem i mer än två mindre polygoner. Det här garanter t.ex. att om man kapar av hörn som sticker ut ur skärmen så kommer återstoden alltid att vara en enda polygon och den kommer också att vara konvex, vilket underlättar dess konversion till skanlinjer, eftersom två skanlinjer inte kan finnas på samma rad (eller alternativt kolumn.) 2.6 Constructive Solid Geometry En mera sofistikerad metod som kallas Constructive solid geometry eller CSG behandlar olika volymobjekt algebraiskt som mängder med punkter. Att presentera dem som mängder med punkter vore otympligt, så snarare görs det med begränsande ytor. Skulle man få se ett tvärsnitt av en sfär, så skulle dess inre döljas av en cirkulär yta, för att ge intrycket av att vara solid och inte ihåligt. Med konstruktiv solid geometri så bygger man 9
11 upp komplexa objekt ur mera primitiva objekt med hjälp av booleska operationer som snitt, union och differens [5][7]. Enklast görs detta genom att man undersöker hur objekten skär varandra och delar upp vardera objekten i sin fristående del och sin sammanfallande del. Vid union eliminerar man de sammanfallande delarna, vid snitt eliminerar man de ickesammanfallande delarna, och inverterar ytorna ifall de är riktade. Vid differens eliminerar man subtrahendens fristående del och minuendens sammanfallande del, samt inverterar ytorna i subtrahendens sammanfallande del ifall de är riktade. I figuren nedan ser vi resultatet av fyra olika booleska operationer, uppifrån ner: union, snitt, A-B och B-A där A är klotet och B är konen. Figur 1. Constructive Solid Geometry Källa: < 2.7 B-splines Kurvor brukar uttryckas med hjälp av parametriska funktioner. Parametriska funktioner är av typen [0,1] -> R n, som kan föreställas som en punkt som rör sig från tidpunkt 0 till 1, i en n-dimensionell rymd. Speciellt användbara parametriska funktioner är splines, som är lätta att styra och få att se ut som man vill. Splines är polynom eller bitvis definerade av polynom. Ett polynom är en summa av olika potenser multiplicerade med koefficienter, alltså _ i=0 A i x i.de splines jag kommer att ta upp är Bezier kurvor, B-splines och NURBS [7]. Den enklaste typen Bezier kurvor, är en typ av polynom som 10
12 konstrueras mha. en mängd kontrollpunkter P som kurvan följer. Koefficienten A i blir då en produkt av P i och antalet kombinationer av i bland n utan hänsyn till ordning, alltså n!/(i!(n-i)!), och själva polynomet är _ i=0 A i x i (1-x) n-i [1][5]. Kvadratiska eller kubiska polynom används vanligen, men högre grads polynom blir kostsamma att beräkna, och därför använder man sig av Bezier splines istället som pusslas ihop av flera lägre ordningens bezier kurvor, men för att få kurvan att se kontinuerlig ut måste riktningen där den ena slutar och den andra börjar vara lika, och då sätter man den nästsista kontrollpunkten i den föregående och den nästförsta i den följande kurvan i rak linje. Att se till att att kurvan hålls kontinuerlig kan vara ganska jobbigt i längden, och svaret på det är B-Spline kurvor är en generalisering av Bezier kurvor som också är konstruerade mha. sådana kontrollpunkter, men ytterligare av en knot vektor [7] som bestämmer hur kurvan ska uppdelas. Det görs enkelt med att dela upp själva domänen, alltså själva parametern från 0 till 1, och om vi ordnar de här värdena som vi kallar för knotvärden så får vi en knotvektor, och punkterna i kurvan som delar upp den kallas för knoter. B-spline funktionen är alltså kontinuerlig men vi kan också snabbt ändra på uppdelningen till bezier kurvor, vilket vi inte kan göra med bezier splines. Bezier kurvan är ett specialfall av B-splines, nämligen då kurvans ordning sammanfaller med antalet kontrollpunkter-1. NURBS som står för Non Uniform Rational B-Spline är en generalisering av B-splines. För att förstå vad de är måste vi gå tillbaka till B-splines och undersöka distributionen av knoter. Om de är på jämnt avstånd från varandra så kallar vi dem för uniforma B-splines, i annat fall har vi något relativt tätare med knoter på en del av kurvan och då kallas den för icke uniform, vilket Non Uniform i NURBS står för. Rational står för att de kan uttryckas i form av en kvot (ratio) av polynom, och i motsats till vanliga polynom, kan vi med sådana uttrycka sådana kurvor som cirklar och ellipser. Kontrollpunkterna i NURBS är homogena koordinater, vilket betyder att en 3D NURBS kurva faktiskt är en projektion av en 4D B-spline. Det här förstår vi med att tänka på NURBS som en kvot av polynom. Den extra dimensionen använder vi för att sätta vikter på kontrollpunkter så att kurvan kan töjas ut och in, ungefär som om man skulle hänga vikter på en metallremsa för att få den att böjas olika mycket. NURBS hålls också konstanta under perspektivtransformation, vilket underlättar renderingen. NURBS, B-spline och Bezier kurvor kan vidare generaliseras till ytor, och då har vi två parametrar i stället för en, och ett matris av kontrollpunkter istället för en vektor. NURBS har varit en dominant metod men har på senaste tiden ersatts, dock inte helt av en mycket flexiblare metod som kallas subdivision surfaces, som bygger vidare på användningen av polygonbaserade modeller. 11
13 2.8 Subdivision surfaces Subdivision surfaces går ut på att man jobbar med en relativt enkel modell och sedan spjälker upp dess polygoner i mindre polygoner för att jämna ut hörn och kanter. Catmull-Clark är en sådan metod. Den går ut på att man sätter in nya punkter i mitten av varje polygon och i mitten av mitten av varje kant samt de nya punkterna i de avgränsade polygonerna. De gamla punkterna flyttas enligt ekvationen (Q + 2R + S(n-3))/n där Q är medelvärdet av de nya punkterna i de avgränsande polygonerna, R är medelvärdet på mittpunkterna på de utgående kanterna, S är original punkten samt n är antalet utgående kanter. Resultatet blir en rundad form av den enkla modellen, som man kan finjustera på olika nivåer som man kört metoden på rekursivt. Andra metoder är Loop, Doo-Sabin, Kobbelt och Butterfly. I jämförelse med NURBS har man mera kontroll över strukturen i helhet, men nackdelen är förståss att det krävs ganska mycket resurser att hantera alla finfördelade ytor. Därför brukar subdivision surfaces endast köras vid renderingen för att inte slösa resurser när man koordinerar en scen. Vid själva scensättningen är man mera intresserad av hur ljus och skuggspel som får scenenen att verka realistisk. Det behandlar vi i följande kapitel. 3 Belysningsmodeller och shading Näthinnan består av synceller som tar emot information i form av ljus och konverterar den till elektriska impulser som skickas vidare till hjärnans syncentrum [5]. Det finns två huvudtyper av synceller som kallas för tappar och stavar. Det finns tre typer av tappar, som är känsliga för olika frekvenser av ljus, närmare bestämt grönt, blått och rött. Stavarna är mycket känsligare för ljus men uppfattar inte färger, vilket är orsaken till varför vi inte ser färger så bra i halvmörker. De olika färger som vi ser är alltså kombinationer av dessa tre. I och för sig finns det flera färgmodeller där tre grundfärger kombineras för att skapa de andra, men den färgmodell som används mest i datorsammanhang är RGB-modellen som har grund färgerna röd grön och blå, och detta beror på att bildpunkterna på skärmen är röda, gröna och blåa. Det här kan man se med blotta ögat om man ser på bildskärmen på några centimeters avstånd. RGB modellen är additiv, dvs. färger blandas på samma sätt som vi blandar ljus, och i motsats till då vi blandar färgpigment, så blir ljuset starkare istället för svagare. Då vi blandar Rött grönt och blått i full intensitet får vi vitt, medan då vi blandar dem i lägsta intensitet får vi svart. I dagens läge klarar de flesta bildskärmar av färger, en siffra vi får av kombinationer av 256 olika luminansnivåer per grundfärg, alltså tredje potensen av 256. Varje punkt sparas således i 24 bitar, en siffra som vi får av att ta andra logaritmen av , dvs 8 bitar, eller en byte per grundfärg. 12
14 Andra ljusmodeller används också, speciellt i sammanhanget datorgrafik, eftersom RGBmodellen inte är speciellt intuitiv. HSL eller HSB modellen, som står för Hue-Saturation- Luminance eller Brightness är en mer intuitivare modell, eftersom den spjälker upp ljuset i komponenterna Luminance, alltså ljus styrka, Hue, alltså dominant våglängd eller nyans och Saturation, alltså färgmättnad eller spridning. Den här modellen får vi ur RGBmodellen om vi sätter luminans axeln i diagonalen på kuben som spänns upp av Röd, Grön och Blå koordinataxlarna [5][3]. I normalplanet till luminansen får vi dominant våglängd och mättnad som polära koordinater, alltså nyans som vinkel och färgmättnad som radie. Jag kommer endast att behandla luminansen i sammanhanget med belysningsmodeller, och för att ta i beaktande färger så tar vi antigen och beräknar luminansnivån för varje färgkomponent skilt och kombinerar dem sedan, eller så multiplicerar vi luminansen med färgfaktorn. Vid scensättningen har placeringen av belysning och val av typ av belysning ofta stor betydelse. Ljus och skuggfenomen är speciellt viktiga för att skapa ett realistiskt intryck. Vanligen delar vi in ljuskällor i tre huvudtyper: Ambient, Diffuse och Specular[5]. Ambient ljus finns närvarande överallt och är så pass utspritt att det inte har någon speciell riktning. Utan Ambient ljus skulle ytor som ligger i skugga vara totalt förmörkade. Diffust ljus är ljus som har en riktning, men inget ursprung, dvs. dess strålar är parallella. Solljus kan approximeras med diffust ljus eftersom solen ligger så pass långt borta att det inkommande ljuset är så gott som parallellt och det förenklar beräkningarna. Specular highlights får vi med ljus med givna källor, för det mesta punktformiga. Då beror riktningen på det inkommande ljuset på rumsförhållandet mellan ljuskällan och ytan. Några andra ljuskällor som används är strålkastare (spotlights) som har ett givet avfall, oftast exponentiellt, från den riktning strålkastaren är riktad mot, samt glödande ytor som avger ljus. Skuggor som orsakas av ljus som har utsträckning blir suddiga, eftersom ytan blir bara till en del skuggad av ljuset. Den belysta ytans material har också stor betydelse, eftersom olika material reagerar olika på ljus. Blanka ytor reflekterar högdagar bra medan matta ytor gör det inte, så därför är de tidigare förknippade med specular och det det senare med diffust ljus. Mikroskopiska skrovligheter i matta ytor får ljuset att spridas i alla riktningar. En idealisk diffus yta reflekterar ljuset lika mycket i alla riktningar, och den här modellen används just för diffust ljus. Högdagar å andra sidan reflekteras bara i spegelvänd riktning i förhållande till ytnormalen. För ytmaterialet kan man alltså specifiera en koefficient för andelen diffust ljus och högdagar skilt. Vidare så kan man specifiera en omgivande färg som anger vilken färg ytan har ursprungligen, och skulle ha i skugga av samtliga ljuskällor. Materialet kan också vara genomskinligt, helt eller dels, och därför få en andel ljus att brytas i materialet. Enligt brytningslagen så beror ljusets brytning på 13
15 densitetskilnader mellan materialet och omgivningen. För enkelhetens skull så anger vi ett brytningsindex för materialen och beräknar att kvoten mellan cosinus av vinklarna till ytnormalen är lika med kvoten av indexen. Då det är frågan om glödande ytor så tillskriver vi ytan en emmittansfaktor. 3.1 Lambert shading Lambert shading, också kallad flat shading är den enklaste av de skuggningsmodeller som jag kommer att ta upp. För en given yta räknas mängden diffust ljus som träffar ytan. Diffust ljus som träffar en yta sprids lika i alla riktningar, men eftersom diffust ljus har en riktning så kommer mindre ljus att träffa ytan i brantare vinkel. Enligt Lambert s cosinus lag [5] så är mängden ljus proportionell mot cosinus av vinkeln mellan ljuset och ytnormalen. Om vi normaliserar ytnormalen och vektorn mot ljuset behöver vi inte göra en krävande cosinus kalkyl utan kommer undan med att räkna punktprodukten av dem. Högdagar ska synas bäst i en vinkel spegelvänt från det inkommande ljuset, och vektorn för det utgående ljusstrålen får vi genom formeln i figuren nedan. Om man nu tänker säg att ytan inte är helt blank så kommer ljuset att falla av om vi avviker från den vinkeln, och avfallet brukar man beräkna att vara en exponentialfunktion av den vinkeln. Figur 2. Specular reflection 3.2 Gouraud shading Lambert shading en bra början, men ser artificiell och kantig ut. Gouraud [5][2] är en utveckling av Lamberts modell, som ger varje pixel en egen färg, en så kallad per pixel shader. För att utjämna kantigheten så interpolerar Gouraud shading färgerna linjärt mellan kanterna. Färgen på varje punkt på kanten är i sig linjärt interpolerade mellan hörnen och färgen på hörnen beräknas likadant som i Lamberts modell med en normal som är medelvärdet av alla avgränsande ytors normaler. I figuren nedan så har jag till vänster illustrerat ytornas normaler med svart och medelvärdet av dem som varje hörn 14
16 har med rött. För att finna färgen på punkt q och r i figuren i mitten, då vi räknat ut färgerna för punkt p1, p2 och p3, så räknar vi kvoten d=(q-p1)/(p2-p1), och får färg(q)=färg(p1)d+färg(p2)(1-d) och analogt för r [2]. Figur 3. Från vänster, Ytnormaler och deras medelvärden, Linjär interpolering samt jämförelse mellan Gouraud och Lambert shading. 3.3 Phong shading Liksom Gouraud shading bygger Phong [5][2] shading på interpolering men istället för att interpolera färgerna så interpolerar Phong shading normalerna direkt. Därför kallas också Phong och Gouraud för vektor respektive skalär interpolerings tekniker. I o för sig är inte en färg en skalär utan representeras av en vektor med 3 färg komponenter, men man kan tänka sig att färgkomponenterna interpoleras skilt. Problemet med Gouraud shading är att specular highlights, alltså högdagar i blanka krökta ytor, ofta representeras dåligt eller försvinner fullständigt. Det här beror på att blänket befinner sig i mitten regionen av ytan och färgerna som fås fram ur noderna ligger utanför det varför de interpolerade värdena inte innehåller nåt blänk. Även om blänket finns med i nån eller några av noderna så kan det få helt fel form i det interpolerade resultatet. I allmänhet brukar det inte synas så bra. Phong är en bra lösning på problemet eftersom de interpolerade normalerna inkluderar just de vinklar där blänket är som starkast, samt alla vinklar som faller av från den optimala vinkeln. Phong shading är naturligtvis inte heller perfekt. Skiftar perspektivet mycket så kommer phong skuggningen att presentera förändringar för snabbt i delar som ligger närmare kameran medan i delar som är längre bort sker de för långsamt. Det här beror på att interpoleringen är linjär och sker mellan bildpunkter och inte punkter i 3D rymd. Det går förståss att åtgärda så att man interpolerar de kordinaterna i 3D rymd. Phong shading är i allmänhet mycket mera kostsam än Gouraud men ger mycket bättre resultat. Ibland använder man fusk Phong shading som är en approximation för att få relativt bra resultat med betydligt mindre kostnad. I figuren jämförs Lambert, Gouraud och Phong shading. I Gouraud versionen så ser vi tydligt effekten av att interpolera färgerna, nämligen kantiga linjer ramar in blänket och ser onormalt ut, medan Phong versionen verkligen ser runt ut. 15
17 Figur 4. Jämförelse, från vänster, Lambert shading, Gouraud shading och Phong shading. 3.4 Texture mapping I många fall vill man inte ha en uniform färg för hela objektet utan vill klä det i en textur, alltså en bild som man täcker det med i ett tapetmönster. Då det är fråga om polygoner så brukar man avbilda texturkordinater på dess hörn, i ett så kallat UV-koordinatsystem. Texture mapping kan också göras på parametriska ytor som NURBS [5][3][9]. 3.5 Bump mapping Bump mapping är en metod som man använder för att få en yta som annars skulle vara flat att verka ojämn. Ojämnheterna kan man kartlägga genom att använda en bitkarta för att representera höjdskilnader i materialet [9]. Ofta gör man det här parallellt med texture mapping så att ojämnheterna sammanfaller med detaljer i texturen. Ur bitkartan får vi vidare fram ytnormalerna för varje punkt som partialderivator. Partialderivatorna sparar vi i den slutliga bitkartan och glömmer höjdskilnaderna vid renderingen. Bump mapping kan man använda i samband med en skuggningsmodell så att man roterar normalerna man får i skuggningsmodellen med normalerna för bump mapping. 3.6 Displacement mapping Ett problem med bump mapping är att objektet inte får någon bucklig siluett. Det här klarar däremot displacement mapping av som inte bara modifierar normalerna utan själva ytan [9]. Det här förutsätter däremot att ytan är så pass finfördelad i polygoner att detaljerna syns om vi kan flyttar på hörnena i riktning av medelvärdet av de avgränsande ytornas normaler, i proportion till motsvarande värde i bitkartan som anger höjdskilnaderna. Att spjälka upp objekten i tillräckligt många polygoner är tyvärr ofta är ett ganska högt krav på resurser, jämfört med bump mapping. 16
18 Figur 5. Bump mapping TV. och Displacement mapping TH. Källa: < 4 Rendering 4.1 Projektion, sampling och kvantifiering Efter att modelleringen och scensättningen är det bara att rendera. Rendering innebär att vi projicerar en 3D modell i ett plan, men det innebär också att vi måste kvantifiera och sampla, dvs. avbilda en kontinuerlig modell till en diskret. Projektionen kan vi enkelt åstadkomma med en projektionsmatris, men för att förstå den så ska vi undersöka det enkla fallet hur en punkt projiceras på en axel i projektionsplanet. Figur 6. Projicerad punkt. I figuren så ser vi att trianglarna som vi får av sträckorna till den projicerade och den tredimensionella punkten samt deras komponenter I Y och Z axeln är likformiga. Det här betyder att Y/Z = Y /Z alltså är Y=Y Z/Z. På samma sätt får vi att X=X Z/Z då vi byter ut Y axeln mot X axeln. I homogena koordinater blir transformationen att se ut på följande sätt: 17
19 där f är focuslängden alltså Z i figuren. Multiplicerar vi in homogena 3D koordinaten så borde vi få den homogena 2D koordinaten (-Xf, -Yf, Z) vilket är samma som (-Xf/Z, - Yf/Z,1) vilket är det vi ville ha. Men så här enkelt är det inte riktigt. De projicerade punkterna blir rationella tal om vi jobbar med heltal och reella om vi jobbar med flyttal, som man brukar representera reella tal med på datorer. Nu så har vi begränsad mängd minne att lagra bildpunkter i så vi kan inte rendera punkterna var som helst utan med jämna mellanrum i en matris av bildpunkter med given upplösning. Det här betyder att de projicerade punkterna kommer troligtvis inte att sammanfalla med punkterna i matrisen, utan vi måste avbilda punkter från en kontinuerlig domän till en diskret, dvs. kvantifiera. Då vi projicerar objekt med utsträckning så blir vi på samma sätt tvugna att avbilda en kontinuerlig funktion på en diskret, dvs. sampla. Sampling går ut på att man tar stickprov med jämna mellanrum ur en kontinuerlig signal, och erhåller en diskret signal. Vid samplingen kan ett problem uppstå som kallas alias. 4.2 Anti Alias Enligt Nyquists samplingsteorem [3] så innehåller ideala samplingen av en kontinuerlig funktion all information i den kontinuerliga funktionen om och endast om den kontinuerliga funktionen är samplad i en frekvens större än två gånger den högsta frekvensen i funktionen, den så kallade Nyquist frekvensen. Det här betyder att små detaljer tillräckligt långt borta kommer att försvinna i horisonten och inte synas i sampeln. Om frekvensen i signalen är större än Nyquist frekvensen så orsakas alias i sampeln, dvs. uppstår en falsk signal, i form av ett moire mönster. Att motverka sådana fenomen kallas för anti alias. Det här något som man oftast förknippar med att få kanter på bokstäver, linjer och andra figurer att se mindre kantiga ut, men problemet är det samma. Samplingen är tillräckligt grov och detaljerna på den fina kurvan eller bokstaven kommer inte med utan tvärtom får resultatet att se onaturligt ut. Moire mönster är speciellt tydliga och störande när det handlar om tvådimensionella samplingar och kan ibland tom. ändra färgen på resultatet. Det finns olika lösningar på problemet. De lösningar jag kommer att ta upp är bilinjär filtrering, mipmapping, trilinjär filtrering och anisotropisk filtrering. I diagrammet nedanför, så presenteras ett typiskt alias fenomen, 18
20 fast här i en dimension. Samplena som är tagna med ett regelbundet avstånd är lägre än Nyquist frekvensen och hamnar på en kurva som inte alls fanns i originalet. Figur 7. Från vänster, Ytnormaler och deras medelvärden, Linjär interpolering samt jämförelse Bilinjär filtrering (Bilinear filtering) Bilinjär filtrering är en metod som används i sammahang med texture mapping. Den går ut på att ge varje pixel (den samplade bildpunkten) det vägda medeltalet av de fyra närmaste texlar (textur bildpunkter, texels på engelska) [4]. Det här fungerar bra om texlarna är större än pixlarna och motverkar aliasen mellan texlarna. Vikten per texel avgörs med linjär interpolering, på samma sätt som i Gouraud skuggning. I figuren nedan så har jag ritat en virtuell texel som är centrerad i den punkt som sampeln ska tas. I normalt fall skulle det vara det övre vänstra hörnet, men istället beräknas den andel av texeln som sammanfaller med den virtuella texeln, dvs vikten av den övre vänstra texelns andel i sampeln, i figuren variabel a, och på samma sätt andelarna av de andra texlarna. Sampeln får då för varje färgkomponent, luminansen i varje texel gånger sin andel i den virtuella pixeln. 19
21 Figur 8. Bilinjärt filter Mip mapping Bilinjär filtreringen eliminerar det värsta av aliasfenomenet, men det är ganska onödigt egentligen. Mip är en förkortning av det latinska uttrycket multum in parvam, vilket betyder flera i några. Mip mapping är en teknik som går ut på att använda färdigt filtrerade texturer och successivt byta ut till mindre versioner ju längre bort texturen befinner sig [5][9]. Oftast gör man det men en frekvens på en potens på två, men alternativt kan man byta texturer oftare. Figuren nedan visar en typisk mip karta som innehåller färgkomponentvis uppdelade mipnivåer. Figur 9. Mip karta Källa < Trilinjär filtrering (Trilinear filtering) Med mipavbildning uppstår ett problem, nämligen på det avstånd där en mipnivå byts ut mot en annan så syns en tydlig skarv. För en jämnare övergång används trilinjär filtrering, som är helt enkelt en bilinijär filtrering utförd mellan två mip nivåer. 20
22 Figur 10. Jämförelse av Bilinjär och Trilinjär filtrering. Källa: < Anisotropisk filtrering (Anisotropic filtering) Vid snäva vinklar uppstår det ett annat problem; texturen blir suddig. Det här problemet kan man lösa med Anisotropisk filtrering. Anisotropi är ett begrepp som tagits från fysiken. Isotropi gäller för objekt som har samma egenskaper oberoende riktning. Anisotropi gäller för objekt vars egenskaper varierar beroende på riktning. Bilinjär och trilinjär filtrering är båda isotropiska i den mening att de är oberoende av vilken vinkel vi ser texturytan. I branta vinklar, som tex. golv som sträcker sig mot horisonten, borde egentligen flera texlar i vertikal led ingå filtermönstret än i horizontalled, men om det inte gör det så kommer resultatet att bli bara suddigare i ju brantare vinkel vi ser på texturen. Anisotropiska filter är anpassade för att lösa det här problemet genom att ta flera antal samples i någon given riktning. I figuren nedan är en jämförelse av alla hittils genomgångna filtreringsmetoder samt vanlig punktsampling längst till vänster. Punktsamplingen lider av grova aliasfenomen som försvinner bilinjär filtrering. Mip mapping tycks faktiskt ge sämre resultat, och orsakar en skarv, som inte syns så särledes bra i figuren om man inte ser noga i mitten regionen. Trilinjär filtrering har ingen sådan skarv. Men medan alla filtreringsmetoder ger en suddig bild ju längre mot horisonten vi går, så gör inte anisotropisk filtrering det. Det är däremot den dyraste av alla filtreringsmetoder. 21
23 Figur 11. Jämförelse, från vänster: Utan filter, bilinjärt filter, mip mapping, trilinjär filtrering, anisotropisk filter. Källa: < 4.3 Skanlinjerendering Den vanligaste renderingsproceduren är skanlinjerendering. Den går ut på att man systematiskt går igenom varje polygon som ska renderas, delar upp den i en bildpunkt höga, eller alternativt breda bildpunktsremsor som kallas för skanlinjer, en procedur som kallas för skanlinjekonvertering [3]. Sedan itereras varje skanlinje och plottas ut bildpunkt för bildpunkt från kant till kant. Proceduren att ge varje punkt sin färg kallas raserisering och räknas med texturavbildning. Skanlinjekonverteringen kan implementeras på olika sätt beroende på typen av polygoner som används. Komplexa polygoner kan delas upp till konkava, konkava polygoner kan delas upp till konvexa och konvexa polygoner kan delas upp till trianglar, där varje steg förenklar konverteringen. Ett problem som måste lösas är synlighetsproblemet. Vissa polygoner kan täcka andra och därför borde inte den täckta polygonen överskriva den täckande polygonen. Det här problemet kan man lösa på flera sätt, bland annat med occlusionsfilter och z-buffring. En z-buffer är en bitkarta som innehåller avstånden till den renderade bildpunkten, som uppdateras varje gång en ny pixel ritas på samma plats, men endast om den befinner sig närmare. Occlusionsfilter innehåller listor med skanlinjer som har renderats, som man klipper av från varje ny skanlinje som ska renderas. Skanlinjerenderingen klarar av att rendera transparenta polygoner, i vilket fall man tar ett vägt medeltal av den transparent 22
24 bildpunkten och bakgrunden. Däremot klarar den inte av reflektioner eller brytning av ljus, vilka kräver en mer sofistikerad algoritm, nämligen raytracing. 4.4 Raytracing Raytracing [5] är en rekursiv renderingsalgoritm som i motsats till skanlinjealgoritmen tar också i beaktande belysning och skuggfenomen, samt reflektioner och refraktion, dvs. brytning av ljus i genomskinliga föremål. Som namnet antyder, så går algoritmen ut på att man följer en stråle och spårar upp dess ursprung. Istället för att gå igenom primitiver så går raytracing igenom varje bildpunkt, vilket gör att raytracing blir ineffektiv i jämförelse med skanlinje algoritmen som skippar områden som saknar polygoner, men å andra sidan spelar det inte så stor roll om hela bilden är täckt med dem. Man itererar alltså genom varje bildpunkt varigenom man skjuter en stråle från brännpunkten, och undersöker sedan om den träffar något föremål, och ifall flera, vilket det närmaste är. Man itererar alltså genom varje objekt på scenen och varje gång en kollision hittas som ligger närmare projektionen så överskriver man den tidigare. När alla objekt är genomgångna, så undersöks först objektets relation till alla ljuskällor. Finns något objekt mellan ljuskällan och kollisionspunkten så bidrar inte den ljuskällan utan lämnar punkten i en skugga. Det här görs på samma sätt som tidigare, att man skjuter en stråle mot varje ljuskälla och undersöker om det uppstår kollisioner. Den här gången räcker det däremot med att en kollision hittas, varefter proceduren kan avbrytas. Vidare så undersöks andelen ljus som reflekteras i ytan genom att man skjuter en stråle som skjuts i riktning spegelvänt från ytnormalen i motsats riktning. Andelen ljus bestäms sedan rekursivt genom att man kallar på samma funktion som för de ursprungliga strålarna, fast med en cut-off dvs. en parameter som bestämmer det maximala rekursionsdjupet. Ytterligare så måste också andelen ljus bestämmas som bryts i objektet, ifall objektet är genomskinligt. Den brutna strålen undersöks på samma sätt som i fallet med reflektion. En given andel bestäms också av själva ytmaterialet, och den mängd ljus som är omgivande. I jämförelse med skanlinjerenderingen så tar raytracing oftast betydligt mera resurser men ger också i allmänhet bättre resultat. raytracing kan ändå optimeras att köras i realtid, fast optimeringarna kan inte göras lika bra som i skanlinjerenderingen på grund av att reflektions och refraktionsfenomenen hindrar effektiv gallring. Raytracing är betydligt populärare när det gäller fotorealistisk rendering, medan skanlinjekonvertering används nästan uteslutande i spel, som kräver snabb rendering. Därför har hårdvarustöd utvecklats för skanlinjerenderingen i form av grafikkort. I figuren nedan så syns hur raytracing går till väga rekursivt. R-strålarna är reflektioner medan T-strålarna är strålar som brutits i materialet. S strålarna är strålar som skickas mot ljuskällorna för att undersöka om de är i skugga eller inte. 23
25 Figur 12. Ray tracing Källa:< htm> 4.5 Radiosity Raytracing ger faschinerande resultat, men inte alltid så verklighetstrogna som de skulle kunna vara. En alternativ metod är Radiosity[5][3], som baserar sig på värmelära. Man kan förlikna ljus och termisk strålning, och räkna ut hur mycket utstrålningen av ljus från olika ytor påverkar varandra. Det mänskliga ögat är känsligt för radiositet och märker genast skilnad på verkligheten och en datorgenerad bild, speciellt om den inte genererats med beaktande av radiositet. Närliggande objekt har en tendens att färga av på varandra och på så sätt inge nyanser som får det att verka mer naturtroget. Ekvationen för mängden ljus som avges från ytan i är B i = E +p B j Ai Aj cos(φ i ) cos(φ j ) /(πr 2 ) da i da j, där E är ytans emmitans, p är ytans reflektivitet, B j är yta j s radiositet, φ i är strålens vinkel till yta i s normal, r är avståndet [3]. En intuitiv förklaring är följande: Det är ju fråga om diffust ljus, så enligt cosinuslagen så påverkar den inkommande vinkeln proportionellt med cosinus av vinkeln. Cosinus för vinkeln till normalen för ytan som avger ljus är i sin tur proportionell till hur synlig den ytan är för mottagaren, av samma skäl. Kvadraten på avståndet mellan ytan påverkar omvänt proportionellt, eftersom samma strålar som passerar igenom en yta på dubbla avståndet är fyra gånger så stort. I stort sätt är det alla faktorer som inverkar, men så måste vi integrera över båda 24
26 ytorna och göra det samma för varenda yta. Dessutom så kan ytan själv avge ljus, något som är förträffligt då man vill ha tvådimensionella ljuskällor. Så här brukar man ändå inte göra, för det skulle vara för kostsamt, utan man använder en så kallad hemicube approximation där ljuset projiceras i en halverad kub som ligger ovanpå ytan [3]. Radiosity är i allmänhet en ganska kostam procedur och används därför inte i realtidsrendering, men å andra sidan är radiosity utmärkt för statiska scener och kan därför användas i realtidsrendering för att få statisk objekt att verka mer realistiska. Trots kostnaderna kan radiosity optimeras på bekostnad av onödig precision att fungera i realtid också för dynamiska objekt. I motsats till raytracing klarar den bara av diffust ljus, men ger oftast ett mycket mer verklighetstroget intryck. Vill man ha specialeffekterna så lönar sig däremot raytracing. Det har ändå vissa brister vad gäller brytning av ljus, varför man har utvecklat en metod som kallas för caustic rendering. 4.6 Caustic rendering och Photon mapping Caustic kommer från grekiskan caustic som betyder att bränna. Om man håller ett förstorignsglas upp så bryts ljuset och samlas i en punkt som kallas brännpunkten, varifrån namnet kommer. Om man ser på bottnet i klart vatten så kan man se olika mönster som uppstår just på grund av att ljuset bryts på en vågig vattenyta. Sådana effekter kan man inte åstadkomma med varken strålföljning eller radiositet utan kräver en mera sofistikerad metod. Caustic rendering påminner om strålföljning, bara att det sker bakvänt, dvs. man följer strålar från ljuskällan inte från ögat. Det här kan man göra på flera sätt och jag tar upp en metod här som kallas fotonavbildning [8], och är en av de snabbaste algoritmerna för att hantera global belysning. Den går ut på att man skjuter ut ett tusen till miljontal fotoner från ljuskällorna, följer deras väg och sparar sedan deras desitnationer på en fotonkarta [6]. Istället för att fylla hela kartan med fotoner så estimerar man statistiskt resten av ytan. Renderingen sker på samma sätt som i strålföljning men för indirekt ljus så används fotonkartan istället. Caustic rendering blir i allmänhet långsammare än enbart strålföljning men ger mycket bättre resultat i fråga om indirekt ljus. Strålföljning klarar endast av bildreflektioner, men inte reflektioner av ljus som samlas. Radiositet är betydligt bättre på indirekta reflektioner men klarar endast av grova och matta ytor och är dessutom extremt kostsam. Blanka ytor, och Caustica reflektioner klarar den inte av, i motsats till Caustic rendering. Nedanför är två bilder renderade med Caustica reflektioner. 25
27 Figur 13. Caustics Källa: < 5 Diskussion Det finns en hel del mera att säga om de olika metoder som jag nämnt, men för att inte uppsatsen ska bli alltför lång så måste jag sammanfatta och ge en överblick av vad det är fråga om utan att gå in på detaljer. För att åstadkomma verklighetstrogna bilder, så måste man först veta ungefär vad som krävs, vilka typer av effekter man vill utnyttja med tanke på hur bilden ska se ut, och på basen av detta välja bland de alternativa metoderna. Om man vet ungefär vad dessa metoder erbjuder och på vilken kostnad så fattas bara att implementera dem. När det gäller realtidsrendering så måste man däremot också kunna optimera grafikmotorn vilket kräver mera erfarenhet i ämnet, men den här uppsatsen så har jag ämnat åt att ge en kort sammanfattning av metoderna så att man får en inblick i vad man har att göra med. Det finns förståss färdiga program som klarar av de flesta av de här sakerna, men ofta om man vill få resultatet just som man själv vill så är det bäst att man programmerar dem själv. 26
28 Litteraturförteckning: [1] Schneider Philop J. Geometric tools for computer graphics. San Francisco, CA : Morgan Kaufmann, 2003 [2] Xichun Jennifer Guo. Kollat Phong Shading and Gouraud Shading. < [3] G. Scott Owen, ändrat Hypergraph. < [4] William Shoaff, ändrat Bilinear filtering < [5] Pascal Vuylsteker, ändrat Computer Graphics 2003 / Semester 2 < [6] Zack Water, kollat Photon Mapping onmapping.html> [7] C.K. Shene, Introduction to Computing with Geometry Notes < [8] Yves puissant, 2003 Photon mapping in A:M < [9] Midori Kitagawa, kollat texture mapping < [10] Richard leader, kollat anisotropic filtering < 27
Försättsblad till skriftlig tentamen vid Linköpings Universitet
Försättsblad till skriftlig tentamen vid Linköpings Universitet (fylls i av ansvarig) Datum för tentamen Sal Tid Kurskod Provkod Kursnamn/benämning Institution Antal uppgifter i tentamen Antal sidor på
Bézierkurvor och parametriska objektrepresentationer
Sidan 1 av 11 Inledning Detta är en kort sammanfattning av teorimaterialet som år 2004 ingår i examinationen i kursen TNM077 3D-grafik och animering som ges vid Linköpings tekniska universitet på Campus
Spelutveckling 3d-grafik och modellering. Grunder för 3d-grafik Blender Animering
Spelutveckling 3d-grafik och modellering Grunder för 3d-grafik Blender Animering Grunderna för 3d-grafik Positionering, transformationer Projektion, kameran Objekt i en 3d-värld Ljusmodeller för 3d-grafik
Procedurell grottgenerator och eld i GLSL. Marcus Widegren
Procedurell grottgenerator och eld i GLSL Marcus Widegren 14 januari 2012 Innehåll 2 Sammanfattning Jag har gjort en enkel procedurell grottgenerator i GLSL och C++. För belysning används en fackla, som
Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel
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
Sidor i boken 110-113, 68-69 2, 3, 5, 7, 11,13,17 19, 23. Ett andragradspolynom Ett tiogradspolynom Ett tredjegradspolynom
Sidor i boken 110-113, 68-69 Räkning med polynom Faktorisering av heltal. Att primtalsfaktorisera ett heltal innebär att uppdela heltalet i faktorer, där varje faktor är ett primtal. Ett primtal är ett
DGI/SUDOA Den historiska utvecklingen. Globala - lokala belysningsmodeller. Lokala belysningsmodeller. Rendering equation
DGI/SUDOA - 060329 Rendering equation Belysningsmodeller (lokala och globala) Kort om texturer Den historiska utvecklingen 1. Enkla modeller som utvärderades genom att göra enkla bedömningar 2. Mera sofistikerade
Matematik för sjöingenjörsprogrammet
Matematik för sjöingenjörsprogrammet Matematiska Vetenskaper 9 augusti 01 Innehåll 5 komplexa tal 150 5.1 Inledning................................ 150 5. Geometrisk definition av de komplexa talen..............
Dimensioner och fraktal geometri. Johan Wild
Dimensioner och fraktal geometri Johan Wild 9 februari 2010 c Johan Wild 2009 johan.wild@europaskolan.se Får gärna användas i undervisning, kontakta i så fall författaren. 9 februari 2010 1 Inledning och
Transformationer i 3D. Gustav Taxén
Transformationer i 3D Gustav Taén gustavt@csc.kth.se 2D64 Grafik och Interaktionsprogrammering VT 27 Bakgrund Ett smidigt sätt att arbeta med 3D-grafik är att tänka sig att man har en virtuell kamera som
9-1 Koordinatsystem och funktioner. Namn:
9- Koordinatsystem och funktioner. Namn: Inledning I det här kapitlet skall du lära dig vad ett koordinatsystem är och vilka egenskaper det har. I ett koordinatsystem kan man representera matematiska funktioner
Abstrakt algebra för gymnasister
Abstrakt algebra för gymnasister Veronica Crispin Quinonez Sammanfattning. Denna text är föreläsningsanteckningar från föredraget Abstrakt algebra som hölls under Kleindagarna på Institutet Mittag-Leffler
Tentamen TNM061, 3D-grafik och animering för MT2. Tisdag 3/ kl 8-12 TP51, TP52, TP54, TP56, TP41, TP43. Inga hjälpmedel
Tentamen TNM061, 3D-grafik och animering för MT2 Tisdag 3/6 2014 kl 8-12 TP51, TP52, TP54, TP56, TP41, TP43 Inga hjälpmedel Tentamen innehåller 8 uppgifter, vilka tillsammans kan ge maximalt 50 poäng.
Självkoll: Ser du att de två uttrycken är ekvivalenta?
ANTECKNINGAR TILL RÄKNEÖVNING 1 & - LINJÄR ALGEBRA För att verkligen kunna förstå och tillämpa kvantmekaniken så måste vi veta något om den matematik som ligger till grund för formuleringen av vågfunktionen
Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014
Repetitionsuppgifter i Matematik inför Basår Matematiska institutionen Linköpings universitet 04 Innehåll De fyra räknesätten Potenser och rötter 7 Algebra 0 4 Funktioner 7 Logaritmer 9 6 Facit 0 Repetitionsuppgifter
Svar och arbeta vidare med Student 2008
Student 008 Svar och arbeta vidare med Student 008 Det finns många intressanta idéer i årets Känguruaktiviteter. Problemen kan inspirera undervisningen under flera lektioner. Här ger vi några förslag att
Kurvlängd och geometri på en sfärisk yta
325 Kurvlängd och geometri på en sfärisk yta Peter Sjögren Göteborgs Universitet 1. Inledning. Geometrin på en sfärisk yta liknar planets geometri, med flera intressanta skillnader. Som vi skall se nedan,
AB2.1: Grundläggande begrepp av vektoranalys
AB2.1: Grundläggande begrepp av vektoranalys En vektor är en storhet som dels har icke-negativ storlek dels har riktning i rummet. Två vektorer a och b är lika, a = b, om de har samma storlek och samma
Polarisation laboration Vågor och optik
Polarisation laboration Vågor och optik Utförs av: William Sjöström 19940404-6956 Philip Sandell 19950512-3456 Laborationsrapport skriven av: William Sjöström 19940404-6956 Sammanfattning I laborationen
Lokala kursplaner i Matematik Fårösunds skolområde reviderad 2005 Lokala mål Arbetssätt Underlag för bedömning
Lokala kursplaner i Matematik Fårösunds skolområde reviderad 2005 Lokala mål Arbetssätt Underlag för bedömning Eleven skall år 1 Begrepp Jämförelse- och storleksord, t.ex. stor, större, störst. Positionssystemet
Optiska ytor Vad händer med ljusstrålarna när de träffar en gränsyta mellan två olika material?
1 Föreläsning 2 Optiska ytor Vad händer med ljusstrålarna när de träffar en gränsyta mellan två olika material? Strålen in mot ytan kallas infallande ljus och den andra strålen på samma sida är reflekterat
I addition adderar vi. Vi kan addera termerna i vilken ordning vi vill: 1 + 7 = 7 + 1
BEGREPP ÅR 3 Taluppfattning och tals användning ADDITION 3 + 4 = 7 term + term = summa I addition adderar vi. Vi kan addera termerna i vilken ordning vi vill: 1 + 7 = 7 + 1 SUBTRAKTION 7-4 = 3 term term
Tentamen Mekanik F del 2 (FFM520)
Tentamen Mekanik F del 2 (FFM520) Tid och plats: Lördagen den 1 september 2012 klockan 08.30-12.30 i M. Hjälpmedel: Physics Handbook, Beta, Typgodkänd miniräknare samt en egenhändigt skriven A4 med valfritt
Analys o Linjär algebra. Lektion 7.. p.1/65
Analys o Lektion 7 p1/65 Har redan (i matlab bla) stött på tal-listor eller vektorer av typen etc Vad kan sådana tänkas representera/modellera? Hur kan man räkna med sådana? Skall närmast fokusera på ordnade
MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt
MATEMATIK GU H4 LLMA6 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 24 I block 5 ingår följande avsnitt i Stewart: Kapitel 2, utom avsnitt 2.4 och 2.6; kapitel 4. Block 5, översikt Första delen av block 5
Basbyte (variabelbyte)
Basbyte (variabelbyte) En vektors koordinater beror på valet av bas! Tänk på geometriska vektorer här. v har längden 2 och pekar rakt uppåt i papprets plan. Kan vi då skriva v (, 2)? Om vi valt basvektorer
RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: 40-120 minuter beroende på variant Material: TI-82/83/84 samt tärningar
Aktivitetsbeskrivning Denna aktivitet är utformat som ett spel som spelas av en grupp elever. En elev i taget agerar Gömmare och de andra är Gissare. Den som är gömmare lagrar (gömmer) tal i några av räknarens
Tal Räknelagar Prioriteringsregler
Tal Räknelagar Prioriteringsregler Uttryck med flera räknesätt beräknas i följande ordning: 1. Parenteser 2. Exponenter. Multiplikation och division. Addition och subtraktion Exempel: Beräkna 10 5 7. 1.
SF1624 Algebra och geometri Tentamen Onsdagen 29 oktober, 2014
SF1624 Algebra och geometri Tentamen Onsdagen 29 oktober, 214 Skrivtid: 14.-19. Tillåtna hjälpmedel: inga Examinator: Roy Skjelnes Tentamen består av nio uppgifter som vardera ger maximalt fyra poäng.
LABORATION 2 MIKROSKOPET
LABORATION 2 MIKROSKOPET Personnummer Namn Laborationen godkänd Datum Assistent Kungliga Tekniska högskolan BIOX 1 (6) LABORATION 2 MIKROSKOPET Att läsa i kursboken: sid. 189-194 Förberedelseuppgifter:
Föreläsningsanteckningar i linjär algebra
1 Föreläsningsanteckningar i linjär algebra Per Jönsson och Stefan Gustafsson Malmö 2013 2 Innehåll 1 Linjära ekvationssystem 5 2 Vektorer 11 3 Linjer och plan 21 4 Skalärprodukt 27 5 Vektorprodukt 41
http://www.leidenhed.se Senaste revideringen av kapitlet gjordes 2014-05-08, efter att ett fel upptäckts.
Dokumentet är från sajtsidan Matematik: som ingår i min sajt: http://www.leidenhed.se/matte.html http://www.leidenhed.se Minst och störst Senaste revideringen av kapitlet gjordes 2014-05-08, efter att
Enklare uppgifter, avsedda för skolstadiet.
Årgång 11, 1927 Första häftet 265. Lös ekvationssystemet { x 3 5x + 2y = 0 y 3 + 2x 5y = 0 266. Visa att uttrycket na n+1 (n + 1)a n + 1 där a och n äro positiva hela tal och a > 2, alltid innehåller en
Grafik raytracing. Mattias Axblom.
Grafik raytracing Mattias Axblom mam11003@student.mdh.se 1 SAMMANFATTNING Raytracing, strålföljning eller strålspårning är en metod för att rendera realistiska bilder, film och i framtiden spel. Grundidén
5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA
5 LINJÄR ALGEBRA 5 Linjär algebra En kul gren av matematiken som inte fått speciellt mycket utrymme i gymnasiet men som har många tillämpningsområden inom t.ex. fysik, logistik, ekonomi, samhällsplanering
Observationer rörande omvandling av digitala yttäckande vektordata till rasterformat.
GeoDataEnheten Kulturgeografiska Institutionen 106 91 Stockhlm Observationer rörande omvandling av digitala yttäckande vektordata till rasterformat. 1993 Stefan Ene INNEHÅLL Inledning Omvandling av koordinatsatta
Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation
Innehåll Föreläsning 11 Trie Sökträd Trie och Sökträd 356 357 Trie Ytterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat träd där barnen till
MATEMATIK. Ämnets syfte
MATEMATIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas, såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan. Kommunikation
Denna våg är. A. Longitudinell. B. Transversell. C. Något annat
Denna våg är A. Longitudinell B. Transversell ⱱ v C. Något annat l Detta är situationen alldeles efter en puls på en fjäder passerat en skarv A. Den ursprungliga pulsen kom från höger och mötte en lättare
Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6. Ledning för att lösa problemen i Övningar för kapitel 5, sid 138-144
Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6 Ledning för att lösa problemen i Övningar för kapitel 5, sid 138-144 Avsikten med de ledtrådar som ges nedan är att peka på
Lösningsförslag Cadet 2014
Kängurutävlingen 2014 Cadet svar och korta lösningar Lösningsförslag Cadet 2014 1. A 0 2014 2014 2014 2014 = 0 2. D 21 mars Det blir torsdag senast om månaden börjar med en fredag. Då är det torsdag dag
FOURIERANALYS En kort introduktion
FOURIERAALYS En kort introduktion Kurt Hansson 2009 Innehåll 1 Signalanalys 2 2 Periodiska signaler 2 3 En komplex) skalärprodukt 4 4 Fourierkoefficienter 4 5 Sampling 5 5.1 Shannon s teorem.................................
Version 0.82. Linjär algebra kapiltet från ett ODE-kompendium. Mikael Forsberg
Version.8 Linjär algebra kapiltet från ett ODE-kompendium Mikael Forsberg 8 Den här boken är typsatt av författaren med hjälp av L A TEX. Alla illustrationer är utförda av Mikael Forsberg med hjälp av
varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.
PASS 8 EKVATIONSSYSTEM OCH EN LINJES EKVATION 8 En linjes ekvation En linjes ekvation kan framställas i koordinatsystemet Koordinatsystemet består av x-axeln och yaxeln X-axeln är vågrät och y-axeln lodrät
Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA671 2014-05-26
Institutionen för Matematiska Vetenskaper Göteborg TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F/TM, TMA67 4-5-6 DAG: Måndag 6 maj 4 TID: 4. - 8. SAL: V Ansvarig: Ivar Gustafsson, tel: 75-33545 Förfrågningar:
8-1 Formler och uttryck. Namn:.
8-1 Formler och uttryck. Namn:. Inledning Ibland vill du lösa lite mer komplexa problem. Till exempel: Kalle är dubbelt så gammal som Stina, och tillsammans är de 33 år. Hur gammal är Kalle och Stina?
Mer om analytisk geometri
1 Onsdag v 5 Mer om analytisk geometri Determinanter: Då man har en -matris kan man till den associera ett tal determinanten av som också skrivs Determinanter kommer att repeteras och studeras närmare
Vektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://w3.msi.vxu.se/users/pa/vektorgeometri/gymnasiet.html Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Vektorer i planet
Sammanfattningar Matematikboken Z
Sammanfattningar Matematikboken Z KAPitel procent och statistik Procent Ordet procent betyder hundradel och anger hur stor del av det hela som något är. Procentform och 45 % = 0,45 6,5 % = 0,065 decimalform
Explorativ övning 11 GEOMETRI
Explorativ övning 11 GEOMETRI Syftet med denna övning är att ge kunskaper om grundläggande geometriska begrepp och resultat om geometriska figurer. Vi vill också ge en uppfattning om geometri som en matematisk
Att använda bildhanteringsprogram, del 2
Att använda bildhanteringsprogram, del 2 Gå till Adobe Online (M) Markeringsram - (L) Lasso - (C) Beskärning - (J) Airbrush - (S) Klonstämpel - (E) Suddgummi - (R) Oskärpa - (A) Markering av bankomponenter
Hands-On Math. Matematikverkstad. Förskolans nya läroplan 1 juli 2011. Matematik är en abstrakt och generell vetenskap
Hands-On Math Matematikverkstad 09.00 10.30 & 10.45 12.00 Elisabeth.Rystedt@ncm.gu.se Lena.Trygg@ncm.gu.se eller ett laborativt arbetssätt i matematik Laborativ matematikundervisning vad vet vi? Matematik
a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.
PASS 9. OLIKHETER 9. Grundbegrepp om olikheter Vi får olikheter av ekvationer om vi byter ut likhetstecknet mot något av tecknen > (större än), (större än eller lika med), < (mindre än) eller (mindre än
SF1626 Flervariabelanalys Tentamen Måndagen den 27 maj, 2013
SF626 Flervariabelanalys Tentamen Måndagen den 27 maj, 23 Skrivtid: 8:-3: Tillåtna hjälpmedel: inga Examinator: Mattias Dahl Tentamen består av nio uppgifter som vardera ger maximalt fyra poäng. De tre
Complex numbers. William Sandqvist
Complex numbers Hur många lösningar har en andragradsekvation? y = x 2 1 = 0 Två lösningar! Kommer Du ihåg konjugatregeln? Svaret kan ju lika gärna skrivas: x 1 = 1 x2 = + 1 Hur många lösningar har den
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade
NMCC Sigma 8. Täby Friskola 8 Spets
NMCC Sigma 8 Täby Friskola 8 Spets Sverige 2016 1 Innehållsförteckning Innehållsförteckning... 1 Inledning... 2 Sambandet mellan figurens nummer och antalet små kuber... 3 Metod 1... 3 Metod 2... 4 Metod
MATEMATIK 3.5 MATEMATIK
TETIK 3.5 TETIK Matematiken har en flertusenårig historia med bidrag från många kulturer. Den utvecklas såväl ur praktiska behov som ur människans nyfikenhet och lust att utforska matematiken som sådan.
Studiehandledning till. MMA121 Matematisk grundkurs. Version 2012-09-03
Studiehandledning till MMA Matematisk grundkurs läsåret 0/ Version 0-09-0 Kursinformation för MMA Mål Avsikten med kursen MMA Matematisk grundkurs är att ge grundläggande kunskaper i matematik, av betydelse
Omtentamen TNM077, 3D datorgrafik och animering (samt även TNM008, 3D datorgrafik och VR)
Omtentamen TNM077, 3D datorgrafik och animering (samt även TNM008, 3D datorgrafik och VR) Grupp: MT2 och NO2MT Datum: Fredagen den 23 april 2004 Tid: 14.00-18.00 Hjälpmedel: inga Ansvarig lärare: Stefan
Concept Selection Chaper 7
Akademin för Innovation, Design och Teknik Concept Selection Chaper 7 KPP306 Produkt och processutveckling Grupp 2 Johannes Carlem Daniel Nordin Tommie Olsson 2012 02 28 Handledare: Rolf Lövgren Inledning
Lathund algebra och funktioner åk 9
Lathund algebra och funktioner åk 9 För att bli en rackare på att lösa ekvationer är det viktigt att man kan sina förutsättningar, dvs vilka matematiska regler som gäller. Prioriteringsreglerna (vilken
LABORATION 2 MIKROSKOPET
LABORATION 2 MIKROSKOPET Personnummer Namn Laborationen godkänd Datum Assistent Kungliga Tekniska högskolan BIOX (5) Att läsa före lab: LABORATION 2 MIKROSKOPET Synvinkel, vinkelförstoring, luppen och
Kurvor och ytor. Gustav Taxén
Kurvor och ytor Gustav Taxén gustavt@csc.kth.se 2D1640 Grafik och Interaktionsprogrammering VT 2007 Kurvor och ytor Explicit form Implicit form Parametrisk form Procedurbaserade Polynom Catmull-Clark Kubiska
Vektorer. 1. Vektorer - definition och räkneoperationer F H
Vektorer Detta material bygger på valda och delvis omarbetade delar av kompendiet Vektoralgebra av Hasse Carlsson. Dessutom har ett helt nyskrivet avsnitt om strömtriangeln lagts in. Inledning Du är säkert
Fingerprint Matching
Fingerprint Matching Björn Gustafsson bjogu419 Linus Hilding linhi307 Joakim Lindborg joali995 Avancerad bildbehandling TNM034 Projektkurs Biometri 2006 1 Innehållsförteckning 1 Innehållsförteckning 2
Omtentamen i DV & TDV
Umeå Universitet Institutionen för Datavetenskap Gunilla Wikström (e-post wikstrom) Omtentamen i Teknisk-Vetenskapliga Beräkningar för DV & TDV Tentamensdatum: 2005-06-07 Skrivtid: 9-15 Hjälpmedel: inga
Engelska... 2. Svenska... 6. Svenska som andraspråk... 7. Idrott och hälsa... 8. Musik... 9. Biologi... 10. Fysik... 11. Kemi... 11. Slöjd...
2010-08-23 Lokal kursplan år 3 Engelska... 2 Svenska... 6 Svenska som andraspråk... 7 Idrott och hälsa... 8 Musik... 9 Biologi... 10 Fysik... 11 Kemi... 11 Slöjd... 12 Geografi... 13 Historia... 13 Religion...
Kv. Ogräset. Martin Stenmarck, janst942@student.liu.se
Kv. Ogräset Martin Stenmarck, janst942@student.liu.se Fig 1. Kv. Ogräset. Bakgrund Kvarteret Ogräset är en samling av tre bostadsrättshus i Gottfridsberg, Linköping. Dessa tre hus håller på att byggas
Linjär Algebra, Föreläsning 2
Linjär Algebra, Föreläsning 2 Tomas Sjödin Linköpings Universitet Geometriska vektorer, rummen R n och M n 1 En (geometrisk) vektor är ett objekt som har storlek och riktning, men inte någon naturlig startpunkt.
Laboration i Fourieroptik
Laboration i Fourieroptik David Winge Uppdaterad 4 januari 2016 1 Introduktion I detta experiment ska vi titta på en verklig avbildning av Fouriertransformen. Detta ska ske med hjälp av en bild som projiceras
TENTAMEN I TILLÄMPAD VÅGLÄRA FÖR M
TENTAMEN I TILLÄMPAD VÅGLÄRA FÖR M 2012-01-13 Skrivtid: 8.00 13.00 Hjälpmedel: Formelblad och räknedosa. Uppgifterna är inte ordnade efter svårighetsgrad. Börja varje ny uppgift på ett nytt blad och skriv
Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta
Niclas Larson Myra på villovägar Att modellera praktiska sammanhang i termer av matematik och att kunna använda olika representationer och se samband mellan dessa är grundläggande förmågor som behövs vid
Matematik 2 Digitala övningar med TI-82 Stats, TI-84 Plus och TI-Nspire CAS
Matematik 2 Digitala övningar med TI-82 Stats, TI-84 Plus och TI-Nspire CAS Matematik 2 digitala övningar med TI 82 Stat, TI 84 Plus och TI Nspire CAS Vi ger här korta instruktioner där man med fördel
Explorativ övning Vektorer
Eplorativ övning Vektorer Syftet med denna övning är att ge grundläggande kunskaper om vektorräkning och dess användning i geometrin Liksom många matematiska begrepp kommer vektorbegreppet från fysiken
Södervångskolans mål i matematik
Södervångskolans mål i matematik Mål som eleverna lägst ska ha uppnått i slutet av det första skolåret beträffande tal och taluppfattning kunna läsa av en tallinje mellan 0-20 kunna läsa och ramsräka tal
Facit till Några extra uppgifter inför tentan Matematik Baskurs. x 2 x 3 1 2.
KTH Matematik Lars Filipsson Facit till Några extra uppgifter inför tentan Matematik Baskurs 1. Låt f(x) = ln 2x + 4x 2 + 9 + ln 2x 4x 2 + 9. Bestäm definitionsmängd och värdemängd till f och rita kurvan
Lennart Carleson. KTH och Uppsala universitet
46 Om +x Lennart Carleson KTH och Uppsala universitet Vi börjar med att försöka uppskatta ovanstående integral, som vi kallar I, numeriskt. Vi delar in intervallet (, ) i n lika delar med delningspunkterna
Fotorealistiska bilder 1 PV360 kap 1 7: Grunder samt material och dekaler i Photoview 360
Fotorealistiska bilder 1 PV360 kap 1 7: Grunder samt material och dekaler i Photoview 360 1 Att skapa en fotorealistisk bild kan sägas bestå av två delar: - Den artstiska delen. Att välja scen, ljussättning,
Tentamen TNM077, 3D datorgrafik och animering
Tentamen TNM077, 3D datorgrafik och animering Grupp: MT2 och NO2MT Datum: Lördagen den 13 mars 2004 Tid: 1400-1800 Hjälpmedel: inga Ansvarig lärare: Stefan Gustavson, ITN, 011-363191 Anvisningar Denna
Modul 1: Komplexa tal och Polynomekvationer
Modul : Komplexa tal och Polynomekvationer. Skriv på formen a + bi, där a och b är reella, a. (2 + i)( 2i) 2. b. + 2i + 3i 3 4i + 2i 2. Lös ekvationerna a. (2 i)z = 3 + i. b. (2 + i) z = + 3i c. ( 2 +
VRay för SketchUp Camilla Ravenna / André Ravenna Alto Punto 2014 Alto Punto Askims Stationsväg 21 436 40 Askim
VRay för SketchUp Camilla Ravenna / André Ravenna Alto Punto 2014 Alto Punto Askims Stationsväg 21 436 40 Askim ISBN 978-91-637-2534-0 Förord Alto Punto är ett konsultföretag som startades av Camilla Ravenna
Skinning and Animation
Skinning and Animation Skelett Keyframe animation BSpline Quaternioner Kinematics Animation Blending Skinning Skinning på GPU:n Skelett Hierarkiskt Kan närmast liknas vid en trädstruktur Ben och leder
Min syn på visuella verktyg i produktutvecklingsprocessen
Mälardalens Högskola Min syn på visuella verktyg i produktutvecklingsprocessen KPP306 Produkt- och processutveckling Joakim Vasilevski 10/4/2012 Innehåll Sammanfattning... 2 Inledning... 3 Skisser... 3
Datorgrafik Ray tracing. Mattias Ekström, Västerås,
Datorgrafik Ray tracing Mattias Ekström, Västerås, 2010-03-05 1 SAMMANFATTNING Ray tracing är en teknik för att skapa bilder digitalt. Den används komersiellt främst inom film- och spelindustrin. Metoden
Lektionsanteckningar 2: Matematikrepetition, tabeller och diagram
Lektionsanteckningar 2: Matematikrepetition, tabeller och diagram 2.1 Grundläggande matematik 2.1.1 Potensfunktioner xmxn xm n x x x x 3 4 34 7 x x m n x mn x x 4 3 x4 3 x1 x x n 1 x n x 3 1 x 3 x0 1 1
Lite verktyg och metoder Photoshop CS2
Lite verktyg och metoder Photoshop CS2 Kurvor och Nivåer Med Nivåer och Kurvor kan man ställa nästan allt i bilden. Vitt ska vara vitt och svart ska vara svart. Fixa det med Nivåer. Hur ljus ska den vara?
Linjär algebra på några minuter
Linjär algebra på några minuter Linjära ekvationssystem Ekvationssystem: { Löses på matrisform: ( ) ( ) I det här fallet finns en entydig lösning, vilket betyder att determinanten av koefficientmatrisen
Grafiska pipelinen. Edvin Fischer
Grafiska pipelinen Edvin Fischer Sammanfattning Rapporten behandlar den grafiska pipelinen och dess steg, vilka stegen är och hur de funkar. Inledning Rapporten har till syfte att beskriva hur den grafiska
Omtentamen. TNM077 3D-datorgrafik och animering kl 8-12 Inga hjälpmedel. (samt även TNM008 3D-datorgrafik och VR)
Omtentamen TNM077 3D-datorgrafik och animering (samt även TNM008 3D-datorgrafik och VR) 2005-06-10 kl 8-12 Inga hjälpmedel Denna tentamen innehåller 7 uppgifter som tillsammans kan ge maximalt 40 poäng.
Banach-Tarskis paradox
Banach-Tarskis paradox Tony Johansson 1MA239: Specialkurs i Matematik II Uppsala Universitet VT 2018 Banach-Tarskis paradox, bevisad 1924 och döpt efter Stefan Banach och Alfred Tarski, är en sats inom
Signalanalys med snabb Fouriertransform
Laboration i Fourieranalys, MVE030 Signalanalys med snabb Fouriertransform Den här laborationen har två syften: dels att visa lite på hur den snabba Fouriertransformen fungerar, och lite om vad man bör
Inlämningsuppgift 4 NUM131
Inlämningsuppgift 4 NUM131 Modell Denna inlämningsuppgift går ut på att simulera ett modellflygplans rörelse i luften. Vi bortser ifrån rörelser i sidled och studerar enbart rörelsen i ett plan. De krafter
Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.
TANA09 Föreläsning 8 Approximerande Splines B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor. Exempel Parametriska Kurvor. Ritprogram. Beziér kurvor. Design av kurvor och ytor. Tillämpning
1. Skriv = eller i den tomma rutan, så att det stämmer. Motivera ditt val av tecken.
Modul: Taluppfattning och tals användning. Del 3: Det didaktiska kontraktet Likhetstecknet Ingrid Olsson, fd lärarutbildare Mitthögskolan Läraraktivitet. 1. Skriv = eller i den tomma rutan, så att det
Begrepp :: Determinanten
c Mikael Forsberg 2008 1 Begrepp :: Determinanten Rekursiv definition :: Kofaktorutveckling Låt oss börja definiera determinanten för en 1 1 matris A = (a). En sådan matris är naturligtvis bara ett vanligt
Elektromagnetiska fält och Maxwells ekavtioner. Mats Persson
Föreläsning 26/9 Elektromagnetiska fält och Maxwells ekavtioner 1 Maxwells ekvationer Mats Persson Maxwell satte 1864 upp fyra stycken ekvationer som gav en fullständig beskrivning av ett elektromagnetiskt
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall
Skolverkets förslag till kursplan i matematik i grundskolan. Matematik
Matematik Matematiken har en mångtusenårig historia med bidrag från många kulturer. Den har utvecklats ur människans praktiska behov och hennes naturliga nyfikenhet och lust att utforska. Matematisk verksamhet
TATM79 Matematisk grundkurs, 6hp Kurs-PM ht 2015
TATM79 Matematisk grundkurs, 6hp Kurs-PM ht 2015 Fredrik Andersson Mikael Langer Johan Thim All kursinformation finns också på courses.mai.liu.se/gu/tatm79 Innehåll 1 Kursinnehåll 2 1.1 Reella och komplexa