The Procedural Arctic

Storlek: px
Starta visningen från sidan:

Download "The Procedural Arctic"

Transkript

1 The Procedural Arctic Realtidsrendering och generering av en animerad havsyta och himmel, samt en isbergsformation med hjälp av GPU:n och Simplex Noise.

2 Inledning Denna rapport utgör en del i ett projekt ur kursen TNM084 Procedurella metoder för bilder som hölls av Stefan Gustavson vid ITN. Projektet utfördes under slutet av höstterminen 2008 vid Linköpings Universitet, Campus Norrköping. Rapporten utgår från att läsaren har förkunskaper från kursen samt bred kunskap inom datorgrafik och programmering i allmänhet. Mål Mitt först generella mål var enbart att skapa en procedurell rendering av en havsyta i realtid med hjälp av att använda Stefan s noise-implementationer i en GLSL fragment shader. I början av projektet var jag inställd på att havsytan skulle utgöras av en höjdkarta med effekter såsom reflektioner, refraktioner samt bump mapping från en genererad normal map(utifrån höjdkartan). Det skulle även vara möjligt att interaktivt kunna variera mängden brus eller t.om. om tid fanns att ändra metoden för hur bruset genereras, t.ex. genom att även använda FFT utöver noisegenerering. Huvudmålet var i alla fall att vad jag en utförde så skulle jag inte använda någon form av statiska texturer eller modeller i programmet. Metodval & Implemenationsordning Implementering utfördes i C++ med hjälp av OpenGL [1] och GLSL [2]. Jag utgick ifrån Stefan exempelapplikation GLSL-noise där han renderar en sfär med en yta som består av rörligt brus från en fragment shader. Stefan kom tidigt med tipset att istället för att beräkna fram en normal map så skulle jag använda en nyligen implementerad version av simplex noise med analytiska gradienter som han implementerat i programmeringsspråket C. Citerat från Stefan: Att beräkna gradienten analytiskt är i runda tal tre gånger så snabbt som att göra finita differenser i två riktningar.. Detta gjorde att jag även valde att försöka använda mig av denna implementation som Stefan producerat. Med dessa hjälpmedel valde jag att utföra implementationen enligt ordningen nedan(i stort sätt): Utforma en platt yta med en yta av rörligt brus liknande vattnets rörelse. Utforma en klass för en flyttbar kamera. Skapa en omgivning med animerade himmel av simplex noise. Producera reflektioner på ytan. Genera en terräng med hjälp av simplex noise. Producera refraktioner i ytan. Applicera Fresnels effekter. Implementera bump mapping med hjälp av analytiska gradienter av simplex noise. Implementera animerat vatten i tre dimensioner(höjdkarta) Använd FFTW biblioteket( för att generera havsytan med denna metod. OBS! De två sista punkterna blev aldrig utförda, se diskussion för mer om detta. 1

3 Teori & Implementation Vattenytan Ytan implementerades som en enda stor texturerad fyrkant med hjälp av GL_QUADS från OpenGL. Sedan skapades en fragment shader(ocean.frag) och en vertex shader(ocean.vert) för att färglägga ytan med användning av Stefan s 3D simplex noise implementation och användning av texturkoordinaterna (s,t) samt värdet från funktionen glfwgettime() (den interna klockan) som variabler för bruset. För att få bruset att se ut som animerat osymmetriskt vatten adderar jag olika oktaver med olika vikter och amplituder enligt ekvationen nedan(generarer alltså Fractal Noise ). N n i i i = 0.5 snoise( tid + a texcoord. x,0.5* a texcoord. y, tid ) i= 0 N = totala bruset, n = antal oktaver, a = baspotens för amplituden Att tiden appliceras på x-koordinaten gör att den rör sig i den riktningen och sedan applicerar jag e skalning av y-koordinaten för att få utsträckta mönster, liknande vågor. En skärmdump av ytan med endast en blåaktig färg multiplicerad med bruset (n = a = 4) visas nedan. 2

4 Himmel För att skapa en någorlunda tolkning av en himmel med rörliga dimmiga moln så använda jag mig först enkelt av att använda Stefans egna implementation av texturerad sfär och skapa ett molnliknande mönster genom en fragment shader(sky.frag), en vertex shader(sky.vert) och samma metod som beskrivet i delen om vattenytan. Enda skillnaden är att man måste ta hänsyn till sfärens struktur och utforma parametrarna så molnens rörelse cirkulerar runt sfären. För att få så att texturering görs på insidan av sfären använder man funktionen glcullface. Enda nackdelen med de flesta texturerade sfärer är att det bildas fula sömmar när man applicerar en tvådimensionell textur om man inte har åtgärdat detta i valet av texturkoordinater på ytan. Efter en del webbsökning så hittade jag istället en implementation av en så kallad SkyDome [1], eller helt enkelt halvsfär som används för att representera en himmel. Kodad med hjälp av en vertex array och fin åtgärd av problemet med sömmarna gjorde att jag valde att använda mig av hans implementering. Ett flertal statiska texturer som representerar en omgivning brukar ofta innehålla en sol. Utifrån solens position kan man positionera en ljuskälla och skapa en mer realistisk miljö. Jag fastnade då för att implementera en procedurell representation av solen på himlen. Genom att färglägga himlen med en gulaktig färg en specifik radie runt nuvarande position i object space så kunde jag få fram en cirkulär form som följde kamerans rörelser längs himlen. För att få solen att stanna på en specifik position på himlen och kunna röra kameran utan att den rör sig måste man skicka in solens position till vertex shadern, transformera position till object space genom att multiplicera med gl_modelviewmatrix och sedan dra ifrån den nuvarande positionen med solens position för att få fram var den ska ritas ut i förhållande till kameran. Positionen måste också viktas genom att subtrahera kamerans Z-koordinat (eller den koordinat som representerar uppåt i världen). Koden för att få fram den vektorn: P=normalize(vec3((1.0-cameraPos.z)*sunPosObjSpace.xposx,(1.0-cameraPos.z)*sunPosObjSpace.y-pos.y, ( )*sunPosObjSpace.z-pos.z)); Detta är en lösning jag har testa fram för att en interaktivt flyttbar sol som ändå kan upplevas statisk på himlen. Den är inte buggfri men fungerar någorlunda bra. Himlen visas på en skärmdump nedan. 3

5 Terräng För att få en mer intressant scen med fler reflektioner än himlen och möjligheten att få någon användning med att implementera refraktioner i vattenytan är terräng som befinner sig både över och under vattennivån att föredra. För att framställa terrängen procedurellt valde jag att fortsätta använda mig av simplex noise, fast i kombination med F.Kenton Musgrave s funktion multifractal[2]. Genom att översätta Kenton s funktion till GLSL samt modifiera den något så att fler distinkta toppar uppenbarade sig, vilket är tänkt att representera större isbergformationer som sticker upp ur vattnet på olika ställen. Nedan presenterar jag stegen jag tog för att gå ifrån en höjdkarta till ett tredimensionellt objekt. Detta sker innan programmet körs: Ställ om vystorlek till att motsvara den storleken(b*h) som du vill ha på texturen. Rendera en GL_QUADS med vertex positionerna från -1 till 1 texturerad med fragment och vertex shadern där man räknar ut höjdkartan. Spara undan alla pixelvärden i ett fält med hjälp av OpenGL funktion glreadpixels(). Skapa ett fält av en egen struktur (som utformas t.ex. med struct) som innehåller tre variabler (x,y,z) (a.k.a vertex array) samt ett annat fält med en struktur som innehåller två variabler (s,t). Loopa igenom (B*H) gånger och spara undan i storleksordning två trianglar(6 punkter) per position samt den texturkoordinat som denna position avser. (Här används även en enkel Level of Detail metod för att hålla ner antalet trianglar genom att bara hoppa över ett visst antal texturkoordinater under loopningen). Lagra båda fälten i var sitt VBO(vertex buffer object) för att återanvändas i renderingen senare. Under programkörning(rendering) Bind en buffert (med hjälp av glenableclientstate och glbindbuffer) till alla texturkoordinater och sedan en till alla hörnpunkter och rita sedan utan alla hörnpunkter som GL_TRIANGLE_STRIPS med funktion gldrawarrays. De fyra sista av dessa punkter har jag lärt mig genom att följa en tutorial [3]. Enda skillnaden mot det jag utfört är att denna tutorial utgår från att man har en statisk höjdkarta som man läser in från en fil. För att sedan färglägga höjdfältet valde jag att använda ett ytterligare shaderpar (ice.frag, ice.vert). Snygg färgläggning får man enklast om man vet strukturen på objektet man färglägger (om man inte använder sig av belysning i scenen). Därför valde jag att samtidigt som jag läser innan alla pixelvärden för den renderade höjdkartan också spara undan scenen som en textur i en texturkanal med hjälp av funktionen glcopytexsubimage2d. Denna textur skickar jag sedan in i shaderparet som nämndes tidigare och då kan jag färglägga höjdfältet beroende på höjd eller lutning. Eftersom värdet från texturen är mellan 0 & 1 så kan man skapa en överföringsfunktion med GLSL funktionerna mix och smootstep där olika värden motsvarar olika färger. 4

6 För att förbättra utseendet ytterligare valde jag att även lägga in en mörkare toning på de ställen där lutningen är kraftig. För att undersöka detta bör man dock ha tillgång till ytans normaler (man behöver alltså en normal map). Eftersom en höjdkarta har skickats in som en textur kan man räkna ut dessa normaler. Uträkningarna kan ske på flera sätt. Nedan visas två av dem. Det sista är något snabbare(också det som jag implementerat) än det första som ni nog känner till sen tidigare. Första sättet(klassiska sättet): Ta fram den 9 värden som omgiver vår nuvarande position i texturen(lagra i matris M). Följande lösningar ger oss dx & dy vilket är vår normal N. x = M N. y = M Andra sättet(något snabbare): Utför finita differenser i två riktningar enligt följande figurer och formler. C B 0 A XY i proportion till Z : D s = S xy S z N. x = C. z A. z N. y = D. z B. z N. z = 2* s Nedan visas en skärmdump av endast den renderade terrängen. 5

7 Reflektion För att återge reflektioner från en perfekt yta [4] skulle en av de mest snyggast metoderna säkert vara raytracing. Men för att hålla de enkelt och i bra prestanda så valde jag en mycket enklare metod. Att helt enkelt rendera världen upp och ner, spara undan scenen som en textur och sedan skicka in den i shadern för vattenytan. Mer noggrann utförelse finns listad nedan. Precis som tidigare som måste man specificera vystorleken till storleken på texturen. Sedan vänder man på hela vyn med hjälp av OpenGL funktion glscalef(1.0, 1.0,-1.0); Parametrarna i funktionen motsvarar koordinataxlarna och i programmet har jag valt att z-axeln ska representera uppåt i världen och därför har den värdet För bara terrängen som är ovanför vattenytan ska reflekteras måste man specificera ett glclipplane. Med denna funktion kan ett plan i scenen där allt över eller under planet inte ska tas med i renderingen. OBS! Om man använder sig av GLSL så måste man också specificera vilken position man är på för den inbyggda variabeln gl_clipvertex i en vertex shader: T.ex: gl_clipvertex = gl_modelviewmatrix * gl_vertex; Sedan är det bara att rendera sin värld och spara undan scenen som en textur. Skicka in texturen till shadern. Eftersom man ser scenen ur ett speciellt perspektiv måste man använda sig av projicerade texturkoordinater för att plocka fram rätt färgvärde. I GLSL skickar man då en variabel från vertex shadern enligt: projection = gl_modelviewprojectionmatrix * gl_vertex I fragment shadern måste man sedan normera projection.w komponenten genom att ta projection / projection.w och sedan flytta koordinaterna så de ligger mellan 0 och 1. Nedan visas en skärmdump av reflektionen i vattenytan från den renderade terrängen och himlen. Refraktion & Djup Refraktion benämns även vid ordet ljusbrytning, vilket beskriver fenomenet att ljuset ändrar riktning när det går från ett medium till ett annat. Detta fenomen gör så att ett sugrör ser brutet ut om det halva är i luften och halva i vatten. Eftersom ljuset bryts så ser man mindre och mindre av ett föremål om det t.ex. sjunker djupare ner i vattnet. Hade man använt sig av en cube map för att representera omgivningen hade man enkelt kunna utföra både korrekt reflektion och refraktion i GLSL shadern då det finns ett kapitel i GLSL bibeln [2] om 6

8 detta. Men så är inte fallet i denna applikation. Vad man kan göra är att använda sig av en du/dv map [7] vilket är en textur som innehåller derivatan av en normal map. Men min tanke med vattenytan är att jag inte vill flytta massa texturer mellan olika shaders för att få till vattenytan utan endast använda mig av ett shaderpar för vattenytan. Därför valde jag inte detta heller. För att uppnå en känsla av ljusbrytning kan man enligt [8] skala scenen med förhållandet mellan brytningsindexen, i detta fall (luft)/1.33(vatten) i riktning med Z-axeln. Sedan behöver man bara spara undan det som är under vattenytan på samma sätt som med reflektion i en texturkanal samt spara undan en textur som endast innehåller en komponent som beskrivet djupet. Djupkomponenten kan återfås om man specificerar GL_DEPTH_COMPONENT i funktionen glcopytexsubimage2d. Genom att sedan slå upp texturkoordinaterna på samma sätt som med reflektionen i shadern så kan man skapa en yta där man ser mindre och mindre det som finns under vattenytan ju längre ifrån man kommer. Nedan visas en skärmdump av hur refraktionen och djupet påverkar vattenytan med hänsyn till den renderade terrängen och himlen. Fresnels ekvationer Utseendet på vattnet beror mycket på den vinkel du tittar ifrån. Detta fenomen studerades av Augustin- Jean Fresnel vilket resulterade i Fresnels ekvationer [8]. För att skapa den effekt måste man räkna fram ett värde som man använder för att avgöra hur mycket reflektion som ska visas i förhållande till refraktionen. Jag valde att använda mig av ett sätt som tas upp i GLSL bibeln [2]. 7

9 Fresnel bump mapping med analytiska gradienter av ytans brus. Som de flesta redan känner till så är bump mapping ett sätt att få ytan att se ojämn ut genom att förändra ytans normal och beräkna ytans egenskaper utifrån den nya normalen. I området realtids renderig kan detta utföras genom att räkna ut en normal map enligt något av de sätten som togs upp i avsnittet om terrängrenderingen. Men detta kräver att man har tillgång till närliggande komponenter och eftersom jag utgått från att skapa en yta med simplex noise i GLSL måste jag då spara undan hela ytan för att skicka in till en annan shader för att uppnå denna effekt. Precis som jag beskrev i början av rapporten när jag tog upp målen så kom Stefan Gustavson med förslaget att jag skulle använda hans simplex noise implementation med analytiska gradienter som han skrivit i C-kod. Det jag gjorde då var att översätta delen där han räknade ut de analytiska gradienterna till hans tidigare implementering av simplex noise i GLSL. Först använde jag en teknik som kallas Fresnels term [9] för att få reflektionen och refraktion att anpassa sig till en förändring av normalen. Sedan genom att bara ta de analytiska gradienterna från det bruset som tidigare hade implementerats och addera dem med ytans tidigare normal(med en viss skalning) så kan man urskilja bruset effekt på vattenytan. Distorsion av reflektionen och refraktionen. Det är sällan reflektioner och refraktioner är helt perfekta. För att skapa en syn av att vattnets rörelse förändrar reflektionerna och refraktionen kan man enligt [8] förändra texturkoordinaterna som man använder för att slå upp färgerna i texturerna för reflektion och refraktion. För att förändring ska följa vattnets rörelse adderar man normalen(skalad för ett bra utseende) och då uppstår det rörelser i både reflektionen och refraktionen enligt bilden nedan. Som synes uppstår ofta artefakter såsom att terrängen ser ut att ha hål i hörnen samt när texturen tar en punkt utanför någon del av reflektionen. 8

10 Diskussion & Vidareutveckling Jag är mycket nöjd med resultatet och känner att jag fått in många olika varianter av vad man kan Simplex Noise till samt beräkningskraften hos en GPU via GLSL. För att få mer realistiskt vatten var jag också inne på att utföra vertex displacement mapping vilket skulle ersatt bump mappingen. Detta utfördes dock aldrig men hänsyn till tid samt den optimering som antog skulle behöva utföras för att programmet skulle få tillfredställande prestanda. Även jämförelsen med att använda FFT till genereringen av havsytan hanns aldrig med på grund av tidsbrist. Mycket av realismen ligger i färgläggningen vilket också kunde lagts ner mer tid för att t.ex. få till en soluppgång med naturliga färger eller liknande. Måste passa på att tacka Stefan för att han tillhandhöll en implementation av simplex noise i GLSL samt gav mig tillgång till hans nyligen implementerade version med analytiska graidenter i C-kod. Det var lite pilligt att få det att fungera i GLSL då man får vara försiktig så inte antalet temporaries(variabler/värden som lagras under uträckningen) överstiger antalet som kompilatorn rekommenderar. Referenser [1]. Shreiner, Dave, o.a. OpenGL Programming Guide, Sixth Edition. [2]. Rost, J. Randi. OpenGL Shading Language, Second Edition. [3]. Flannery, Simon. SkyDome. [Online] [4]. Ebert, David S., o.a. Texturing & Modelling : A Procedural Approach. u.o. : Morgan Kaufmann Publishers, Third Edition. [5]. Swiftless Terrarin Tutorial. [Online] [6]. Watt, Alan. 3D Computer Graphics, Third Edition [7]. Humphrey, Ben DigiBen. Realistic Water Using Bump Mapping and Refraction. [Online] [8]. Johanson, Claes. Real-time water rendering. [Online] [9]. Wikipedia. Fresnel equations. [Online] [10]. Hu, Yaohua, o.a. Realistic, Real Time Rendering of Ocean Waves. [Online] 10

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

PROCEDUELL TERRÄNG. Proceduella metoder för bilder (TNM084) Jimmy Liikala Institutionen för teknik och naturvetenskap PROCEDUELL TERRÄNG Proceduella metoder för bilder (TNM084) Jimmy Liikala (jimli570@student.liu.se) Institutionen för teknik och naturvetenskap Sammanfattning Rapporten beskriver hur en proceduell terräng

Läs mer

Procedurell grottgenerator och eld i GLSL. Marcus Widegren

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

Läs mer

Procedurell Terräng med LOD i OpenGL 4

Procedurell Terräng med LOD i OpenGL 4 Procedurell Terräng med LOD i OpenGL 4 TNM084: Proceduella metoder för bilder ITN, Linköpings universitet Lucas Correia, lucco863@student.liu.se Bakgrund Terräng är ett tydligt exempel där procedurella

Läs mer

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

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å

Läs mer

Procedurell renderingsmotor i Javascript och HTML5

Procedurell renderingsmotor i Javascript och HTML5 Procedurell renderingsmotor i Javascript och HTML5 TNM084 Procedurella Metoder för bilder Gustav Strömberg - gusst250@student.liu.se http://gustavstromberg.se/sandbox/html5/shademe/texture_stop_final.html

Läs mer

Procedurella Grottor TNM084. Sammanfattning. Alexander Steen

Procedurella Grottor TNM084. Sammanfattning. Alexander Steen Procedurella Grottor TNM084 Alexander Steen alest849@student.liu.se 13-01-12 Sammanfattning Denna rapport beskriver en metod för att skapa procedurella grottor. Grottorna består utav sammanlänkade rum

Läs mer

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/ 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.

Läs mer

Procedurell 3D-eld på grafikkortet

Procedurell 3D-eld på grafikkortet Procedurell 3D-eld på grafikkortet TNM084 Procedurella metoder för bilder Anders Hedblom, andhe893@student.liu.se 2012-04-04 1. Bakgrund 1.1. Procedurella metoder Procedurella metoder har ett stort användningsområde

Läs mer

Grafiska pipelinen. Edvin Fischer

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

Läs mer

HAND TRACKING MED DJUPKAMERA

HAND TRACKING MED DJUPKAMERA HAND TRACKING MED DJUPKAMERA ETT PROJEKT I TNM090 - SOFTWARE ENGINEERING Rasmus KARLSSON Per JOHANSSON Erik HAMMARLUND raska293@student.liu.se perjo020@student.liu.se eriha891@student.liu.se 2014-01-14

Läs mer

TNM022 Proceduella Bilder Rendering av proceduell päls i realtid

TNM022 Proceduella Bilder Rendering av proceduell päls i realtid TNM022 Proceduella Bilder Rendering av proceduell päls i realtid Jonas Nilsson jonni957@student.liu.se Sammanfattning Jag har undersökt och experimenterat med möjligheterna att rendera päls i realtid med

Läs mer

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/ 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

Läs mer

Projekt i TNM084, Procedurella bilder

Projekt i TNM084, Procedurella bilder Projekt i TNM084, Procedurella bilder Inledning Kursen TNM084, Procedurella Bilder innehåller ett examinerande projekt. Målet med projektet är att utöka förståelsen för hur man kan producera syntetiska

Läs mer

Grafiska pipelinens funktion

Grafiska pipelinens funktion LUNDS TEKNISKA HÖGSKOLA CAMPUS HELSINGBORG Grafiska pipelinens funktion Ludvig von Sydow EDT62, HT17 Datorarkitekturer med Operativsystem Sammanfattning Denna rapport syftar till att beskriva hur en graphics

Läs mer

Procedurell stad. Projekt i kursen TNM022 Procedurella metoder för bilder. Tobias Heldring, tobhe335 2011-02-09

Procedurell stad. Projekt i kursen TNM022 Procedurella metoder för bilder. Tobias Heldring, tobhe335 2011-02-09 Procedurell stad Projekt i kursen TNM022 Procedurella metoder för bilder Tobias Heldring, tobhe335 2011-02-09 Sammanfattning Jag har gjort en enkel stadsgenerator med fokus på stadssiluett. Programmet

Läs mer

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

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

Läs mer

Kort introduktion till POV-Ray, del 1

Kort introduktion till POV-Ray, del 1 Kort introduktion till POV-Ray, del 1 Kjell Y Svensson, 2004-02-02,2007-03-13 Denna serie av artiklar ger en grundläggande introduktion och förhoppningsvis en förståelse för hur man skapar realistiska

Läs mer

Inledning. Kapitel 1. 1.1 Bakgrund. 1.2 Syfte

Inledning. Kapitel 1. 1.1 Bakgrund. 1.2 Syfte Sammanfattning Vi har i kursen Modelleringsprojekt TNM085 valt att simulera ett geléobjekt i form av en kub. Denna består av masspunkter som är sammankopplade med tre olika typer av fjädrar med olika parametrar.

Läs mer

Generering av L-system fraktaler med Processing.js

Generering av L-system fraktaler med Processing.js Generering av L-system fraktaler med Processing.js TNM084 Procedurella Metoder för bilder Carl Claesson, carcl268@student.liu.se Hemsida: http://carlclaesson.se/tnm084 Sammanfattning Denna rapport beskriver

Läs mer

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 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.

Läs mer

Shaders. Renderingssystem. Renderingssystem. Renderingssystem. Hårdvara för 3D-rendering. Hårdvara för 3D-rendering

Shaders. Renderingssystem. Renderingssystem. Renderingssystem. Hårdvara för 3D-rendering. Hårdvara för 3D-rendering Shaders Renderingssystem Applikation Geometri Rastrering Martin Fitger d00-mfi@d.kth.se VT 2008, DH2323 / DH2640 / NA8740 Renderingssystem Renderingssystem Applikation Per-vertex operationer Geometri Rastrering

Läs mer

Grafik raytracing. Mattias Axblom.

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

Läs mer

Robin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se. Datorgrafik i spel

Robin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se. Datorgrafik i spel Robin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se Datorgrafik i spel 1 Sammanfattning Dator grafik kan delas in i fyra olika områden: information, design, simuleringar och

Läs mer

Designing a Shading System. David Larsson

Designing a Shading System. David Larsson Designing a Shading System David Larsson Överblick Genomgång av rendering och shading Designval Implementationsdetaljer Rendering Omvandla en konceptuell 3d-värld till en bild Geometri Kamera Något saknas?

Läs mer

Strömsholmen. Mårten Svensson, marsv602@student.liu.se Peter Zhu, petzu912@student.liu.se Andreas Wetteborn, andwe959@student.liu.

Strömsholmen. Mårten Svensson, marsv602@student.liu.se Peter Zhu, petzu912@student.liu.se Andreas Wetteborn, andwe959@student.liu. Strömsholmen Mårten Svensson, marsv602@student.liu.se Peter Zhu, petzu912@student.liu.se Andreas Wetteborn, andwe959@student.liu.se Sammanfattning Som en del i upprustningen av områdena kring Motala ström

Läs mer

Spelutveckling - Scenegrafer. Scenegrafer Optimeringar Culling

Spelutveckling - Scenegrafer. Scenegrafer Optimeringar Culling Spelutveckling - Scenegrafer Scenegrafer Optimeringar Culling Scenegraf vad och varför? En hierkisk representation av en 3d-värld Directed acyclic Graph (DAG) Består av noder med med barn/föräldrar Gör

Läs mer

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 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,

Läs mer

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) 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

Läs mer

Introduktion till Terragen 3 TNM084 Lab4 2013

Introduktion till Terragen 3 TNM084 Lab4 2013 Introduktion till Terragen 3 TNM084 Lab4 2013 Contents 1 Om Terragen 1 2 Laborationens syfte och mål 1 3 Vår första planet 2 3.1 Kamerakontroller............................... 2 3.2 Rendering...................................

Läs mer

TAIU07 Matematiska beräkningar med Matlab

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

Läs mer

Datorgrafik Ray tracing. Mattias Ekström, Västerås,

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

Läs mer

Kv. Ogräset. Martin Stenmarck, janst942@student.liu.se

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

Läs mer

Gel esimulering 22 mars 2008

Gel esimulering 22 mars 2008 Gelésimulering 22 mars 2008 2 Sammanfattning Vi har i kursen Modelleringsprojekt TNM085 valt att simulera ett geléobjekt i form av en kub. Denna består av masspunkter som är sammankopplade med tre olika

Läs mer

Teknik för avancerade datorspel!

Teknik för avancerade datorspel! 1(84) Information Coding / Computer Graphics, ISY, LiTH TSBK 03 Teknik för avancerade datorspel Ingemar Ragnemalm, ISY Fysik Datorgrafik Spelmekanismer AI Animation 1(84) Föreläsning 5 GPU computing GPU

Läs mer

Shaders. Gustav Taxén

Shaders. Gustav Taxén Shaders Gustav Taxén gustavt@csc.kth.se 2D1640 Grafik och Interaktionsprogrammering VT 2007 Shading l 2 P l 1 n v Givet en punkt P på en yta, en normal n, riktningsvektorer l i mot ljuskällor och en kamerariktning

Läs mer

TUTORIAL: SAMLING & KONSOLL

TUTORIAL: SAMLING & KONSOLL TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även

Läs mer

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade

Läs mer

RoomDesigner Manual... 1

RoomDesigner Manual... 1 RoomDesigner Manual Innehållsförteckning RoomDesigner Manual RoomDesigner Manual... 1 Översikt... 3 2D- lägets verktyg... 4 3D- lägets verktyg... 5 2D- LÄGET... 6 Införande av fönster, dörrar samt inredning

Läs mer

TANA17 Matematiska beräkningar med Matlab

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

Läs mer

Fotorealism, animering, SW resurser

Fotorealism, animering, SW resurser Fotorealism, animering, SW resurser 1 Visa hur produkten kommer att se ut när den är klar. För att kunna beskriva funktionen Snygg presentation är bra marknadsföring I SolidWorks finns moduler för att

Läs mer

Programmering. Scratch - grundövningar

Programmering. Scratch - grundövningar Programmering Scratch - grundövningar Lär känna programmet: Menyer för att växla mellan att arbeta med script, utseende/bakgrund och ljud. Scenen där allting utspelar sig. Här klickar du på bakgrunden

Läs mer

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson Lab 4: Anti Tower Defence Oskar Mothander Alan Mendez Larsson dit06omr dit06mln Lärare: Handledare: Johan Eliasson Johan Granberg Tor Sterner-Johansson Thomas Johansson Daniel Henriksson Innehåll 1. Problemspecifikation...

Läs mer

Precis som var fallet med förra artikeln, Geogebra för de yngre i Nämnaren

Precis som var fallet med förra artikeln, Geogebra för de yngre i Nämnaren Publicerad med tillstånd av Nämnaren Thomas Lingefjärd Geogebra i gymnasieskolan En tilltalande egenskap med Geogebra är att programmet kan användas tvärs över stora delar av utbildningssystemets matematikkurser.

Läs mer

Kort introduktion till POV-Ray, del 5

Kort introduktion till POV-Ray, del 5 Kort introduktion till POV-Ray, del 5 Kjell Y Svensson, 2004,2007-03-14 Denna del kommer att beskriva hur man modellerar glas, vatten och metall. Vi kommer som vanligt använda oss av lite fördefinierat,

Läs mer

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt

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

Läs mer

Rendera med mental ray

Rendera med mental ray Rendera med mental ray Rendera med mental ray Hittills har vi enbart använt den enklaste formen av rendering i 3dsmax., den inbyggda och något föråldrade scanline-renderaren. Nu ska vi byta till mental

Läs mer

Realtidsalgoritmer för ljusets spridning och absorption mot partiklar i luften P E T E R L Ö N N Q U I S T

Realtidsalgoritmer för ljusets spridning och absorption mot partiklar i luften P E T E R L Ö N N Q U I S T Realtidsalgoritmer för ljusets spridning och absorption mot partiklar i luften P E T E R L Ö N N Q U I S T Examensarbete Stockholm, Sverige 2006 Realtidsalgoritmer för ljusets spridning och absorption

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

C-UPPSATS. Revitalizing classic art using real-time game technology

C-UPPSATS. Revitalizing classic art using real-time game technology C-UPPSATS 2010:125 Revitalizing classic art using real-time game technology - environment modeling and texturing Mathias Berg Luleå tekniska universitet C-uppsats Datorgrafik Institutionen för LTU Skellefteå

Läs mer

Teknik för avancerade datorspel!

Teknik för avancerade datorspel! 1(83) Information Coding / Computer Graphics, ISY, LiTH TSBK 03 Teknik för avancerade datorspel Ingemar Ragnemalm, ISY Fysik Datorgrafik Spelmekanismer AI Animation 1(83) Föreläsning 5 GPU computing GPU

Läs mer

Giraffen & ballongen

Giraffen & ballongen Giraffen & ballongen presentation av koncept Idén för kortfilmen utvecklades från ordspråket katt åt ballong, blev blåst som sedan vidareutvecklades i skisser och slutligen resulterade i en giraff som

Läs mer

Slutrapport Get it going contracts

Slutrapport Get it going contracts Slutrapport Get it going contracts Författare: Anthony Dry Datum: 2011-06-02 Program: Utvecklare av digitala tjänster Kurs: Individuellt mjukvaruutvecklingsprojekt 7.5p Linnéuniversitetet (Kalmar) Abstrakt

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

varandra. Vi börjar med att behandla en linjes ekvation med hjälp av figur 7 och dess bildtext.

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

Läs mer

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A. 1. En svängningsrörelse beskrivs av

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A. 1. En svängningsrörelse beskrivs av SF166 Flervariabelanalys Lösningsförslag till tentamen 13-3-1 DEL A 1. En svängningsrörelse beskrivs av ( πx ) u(x, t) = A cos λ πft där amplituden A, våglängden λ och frekvensen f är givna konstanter.

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18. Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.1 Delkapitlet introducerar en del terminologi och beteckningar som används.

Läs mer

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

BACHELOR THESIS. Efficient Optimizations Inside the Digital Advertise Production Pipeline. Michal Marcinkowski Mehmet Özdemir

BACHELOR THESIS. Efficient Optimizations Inside the Digital Advertise Production Pipeline. Michal Marcinkowski Mehmet Özdemir BACHELOR THESIS 2008:234 Efficient Optimizations Inside the Digital Advertise Production Pipeline Michal Marcinkowski Mehmet Özdemir Luleå University of Technology Bachelor thesis Computer graphics Department

Läs mer

Laboration - Shaders

Laboration - Shaders DH2640/2D2323/DOA, VT 2009 2009-03-06 Laboration - Shaders Martin Fitger, d00-mfi@d.kth.se Version 1.4 Syfte Att erbjuda studenterna möjlighet att få lära sig om olika shaderkoncept och renderingsalgoritmer

Läs mer

I rastergrafikens barndom...gjorde man grafik genom att skriva i ett videominne. Operationer på buffert och pixlar. Idag... Varför grafikkort?

I rastergrafikens barndom...gjorde man grafik genom att skriva i ett videominne. Operationer på buffert och pixlar. Idag... Varför grafikkort? Operationer på buffert och pixlar I rastergrafikens barndom......gjorde man grafik genom att skriva i ett videominne. Lapped textures Emil Praun et al., SIGGRAPH 2000. Gustav Taxén CID gustavt@nada.kth.se

Läs mer

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

Avalanche Studios. OpenGL. Vår teknik. Våra spel. Lite inspiration... Stora, öppna spelvärldar. Sandbox-gameplay. Hög audiovisuell standard OpenGL Avalanche Studios Sveriges ledande oberoende spelutvecklare Fokus på egenutvecklade IPn Finns på Söder i Stockholm ~6 anställda Just Cause för PS2, PC, XBox, och XBox 36 släpptes 26 Gustav Taxén

Läs mer

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

Läs mer

Skinning. Ännu fler koordinatsystem att hålla reda på. SUPPLEMENT 2 till "So How Can We Make Them Scream?" 1. Olika metoder för kroppsanimation

Skinning. Ännu fler koordinatsystem att hålla reda på. SUPPLEMENT 2 till So How Can We Make Them Scream? 1. Olika metoder för kroppsanimation Skinning Ännu fler koordinatsystem att hålla reda på SUPPLEMENT 2 till "So How Can We Make Them Scream?" Såhär under kursens gång har jag hittat en lucka till i materialet, nämligen att skinning inte är

Läs mer

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

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning Karlstads GeoGebrainstitut Institutionen för matematik och datavetenskap Karlstads universitet Mats Brunström Maria Fahlgren GeoGebra ett digitalt verktyg för framtidens matematikundervisning Invigning

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Texturmappningsalgoritmer

Texturmappningsalgoritmer Institutionen för kommunikation och information Examensarbete i datalogi, 20 poäng C-nivå Vårterminen 2006 Texturmappningsalgoritmer Jämförelse mellan Normal-mapping, Parallaxmapping och Relief-mapping

Läs mer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Innehållsförteckning

Innehållsförteckning Innehållsförteckning Innehållsförteckning... 3 Om bokförfattaren och Rita med SketchUp... 8 Rita och redigera... 9 Förena två linjer:... 9 Tänja en linje:... 9 Ange ny totallängd på en linje:... 10 Förlänga

Läs mer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen

Läs mer

PROCEDURELL GENERERING AV VOLYMETRISK TERRÄNG PÅ OLIKA BERÄKNINGSENHETER

PROCEDURELL GENERERING AV VOLYMETRISK TERRÄNG PÅ OLIKA BERÄKNINGSENHETER Malskapada v Henrik PROCEDURELL GENERERING AV VOLYMETRISK TERRÄNG PÅ OLIKA BERÄKNINGSENHETER PROCEDURAL GENERATION OF VOLUMETRIC TERRAIN ON DIFFERENT PROCESSING UNITS Examensarbete inom huvudområdet Datavetenskap

Läs mer

Kort introduktion till POV-Ray, del 3

Kort introduktion till POV-Ray, del 3 Kort introduktion till POV-Ray, del 3 Kjell Y Svensson, 2004-02-03,2007-03-13 I denna del beskrivs hur man ger objekten lite mera liv genom att beskriva hur deras yta ser ut, med reflektion, ruggighet,

Läs mer

Tynker gratisapp på AppStore

Tynker gratisapp på AppStore Tynker gratisapp på AppStore Innehåll Använda appen 2 Koordinatsystemet 6 Rita rektanglar i koordinatsystemet 7 Rita ellipser i koordinatsystemet 9 Rita trianglar i koordinatsystemet 11 Skapa mönster med

Läs mer

Linjär Algebra, Föreläsning 2

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.

Läs mer

bilder för användning

bilder för användning Grundläggande guide i efterbehandling av bilder för användning på webben Innehåll Innehåll...2 Inledning...3 Beskärning...4 Att beskära en kvadratisk bild...5 Att beskära med bibehållna proportioner...5

Läs mer

Byggnationen av Cheopspyramiden - ett visualiseringsprojekt. Mathias Bergqvist, Rikard Gehlin, Henrik Gunnarsson

Byggnationen av Cheopspyramiden - ett visualiseringsprojekt. Mathias Bergqvist, Rikard Gehlin, Henrik Gunnarsson Byggnationen av Cheopspyramiden - ett visualiseringsprojekt Mathias Bergqvist, Rikard Gehlin, Henrik Gunnarsson 25 April 2010 0.1 Förord Gruppen vill tacka Adam Grudzinski för att ha fått tillåtelse att

Läs mer

För studenter i Flervariabelanalys Flervariabelanalys MA012B ATM-Matematik Mikael Forsberg

För studenter i Flervariabelanalys Flervariabelanalys MA012B ATM-Matematik Mikael Forsberg ATM-Matematik Mikael Forsberg 74-4 För studenter i Flervariabelanalys Flervariabelanalys MAB 8 Skrivtid: 9:-4:. Hjälpmedel är formelbladen från insidan av Pärmen i Adams Calculus, dessa formler bifogas

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer I Innehåll

Läs mer

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik I den här uppgiften studerar vi hur man kan använda sig av linjära avbildningar för att modifiera bilder i två dimensioner Mycket är repetition av vissa grundbegrepp

Läs mer

Projekt i Bildanalys: Automatisk detektion av lungemboli ur scintbilder

Projekt i Bildanalys: Automatisk detektion av lungemboli ur scintbilder : Automatisk detektion av lungemboli ur scintbilder Susann Stjernqvist, F00 och Handledare: Anders Ericsson HT2003 1 Innehåll 1 Syfte 3 2 Teori 3 2.1 SCINTbilder............................. 3 2.2 Snakes.................................

Läs mer

Simulering och rendering av gräs och vind i realtid

Simulering och rendering av gräs och vind i realtid Simulering och rendering av gräs och vind i realtid Linköpings universitet, ITN, TNM085, VT2010 Carl Claesson, 850508-1672, carcl268@student.liu.se Lucas Correia, 870325-7496, lucco863@student.liu.se David

Läs mer

Visualisering med Rhino/Vray/Photoshop av modell som skapats i Revit. AADA15 Revit Workshop 2017 LTH Ludvig Hofsten

Visualisering med Rhino/Vray/Photoshop av modell som skapats i Revit. AADA15 Revit Workshop 2017 LTH Ludvig Hofsten Visualisering med Rhino/Vray/Photoshop av modell som skapats i Revit AADA15 Revit Workshop 2017 LTH Ludvig Hofsten Så här ser min byggnad som exporterats från Revit ut när jag öppnar den i Rhino. Den

Läs mer

Just nu pågår flera satsningar för att förbättra svenska elevers måluppfyllelse

Just nu pågår flera satsningar för att förbättra svenska elevers måluppfyllelse Andersson, Losand & Bergman Ärlebäck Att uppleva räta linjer och grafer erfarenheter från ett forskningsprojekt Författarna beskriver en undervisningsform där diskussioner och undersökande arbetssätt utgör

Läs mer

Word-guide Introduktion

Word-guide Introduktion Word-guide Introduktion På det kognitionsvetenskapliga programmet kommer du läsa kurser inom flera olika vetenskapsområden och för varje vetenskapsområde finns ett speciellt sätt att utforma rapporter.

Läs mer

2. Avgör om x och z är implicit definierade som funktion av y via följande ekvationssystem. x 3 + xy + y 2 + z 2 = 0 x + x 3 y + xy 3 + xz 3 = 0

2. Avgör om x och z är implicit definierade som funktion av y via följande ekvationssystem. x 3 + xy + y 2 + z 2 = 0 x + x 3 y + xy 3 + xz 3 = 0 ATM-Matematik Mikael Forsberg 734-41 3 31 För distans och campus Flervariabelanalys ma1b 14 1 Skrivtid: 9:-14:. Inga hjälpmedel, förutom den bifogade formelsamlingen. Lösningarna skall vara fullständiga

Läs mer

f(x, y) = ln(x 2 + y 2 + 1). 3. Hitta maximala arean för en rektangel inskriven i en ellips på formen x 2 a 2 + y2

f(x, y) = ln(x 2 + y 2 + 1). 3. Hitta maximala arean för en rektangel inskriven i en ellips på formen x 2 a 2 + y2 TM-Matematik Mikael Forsberg Matematik med datalogi, mfl. Flervariabelanalys mk12b Övningstenta vt213 nr1 Skrivtid: 5 timmar. Hjälpmedel är formelbladen från insidan av Pärmen i Adams Calculus, dessa formler

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon

Läs mer

Final i Wallenbergs Fysikpris

Final i Wallenbergs Fysikpris Final i Wallenbergs Fysikpris 26-27 mars 2010. Teoriprov Lösningsförslag 1. a) Vattens värmekapacitivitet: Isens värmekapacitivitet: Smältvärmet: Kylmaskinen drivs med spänningen och strömmen. Kylmaskinens

Läs mer

TNM011 Grafisk teknik Laboration 3 - Färg

TNM011 Grafisk teknik Laboration 3 - Färg TNM011 Grafisk teknik Laboration 3 - Färg Martin Solli marso@itn.liu.se ITN, Linköpings Universitet HT 2006 Introduktion Laborationen handlar om sambandet mellan reflektansspektran, belysningar och den

Läs mer

A comparison study between OpenGL 4.3, OpenGL ES 3.0 and WebGL 1.0 With focus on rendering pipeline and texture handling

A comparison study between OpenGL 4.3, OpenGL ES 3.0 and WebGL 1.0 With focus on rendering pipeline and texture handling Sammanfattning OpenGL är ett standardiserat API som används för att hantera 3D-grafik på desktop-datorer. Även då OpenGL är oberoende av specialanpassad hårdvara så passar det inte till alla sorter av

Läs mer

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10 Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,

Läs mer

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 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

Läs mer

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

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara Föreläsning 1 Jag hettar Thomas Kragh och detta är kursen: Flervariabelanalys 1MA016/1MA183. E-post: thomas.kragh@math.uu.se Kursplan finns i studentportalens hemsida för denna kurs. Där är två spår: Spår

Läs mer

Procedurella metoder för bilder

Procedurella metoder för bilder DNR LIU-2018-02499 1(9) Procedurella metoder för bilder Programkurs 6 hp Procedural Methods for Images TNM084 Gäller från: 2019 VT Fastställd av Programnämnden för data- och medieteknik, DM Fastställandedatum

Läs mer

Information Coding / Computer Graphics, ISY, LiTH. Compute shaders!! Framtiden för GPU computing eller sen efterapning av Direct Compute?

Information Coding / Computer Graphics, ISY, LiTH. Compute shaders!! Framtiden för GPU computing eller sen efterapning av Direct Compute? Compute shaders Framtiden för GPU computing eller sen efterapning av Direct Compute? Compute shaders Tidigare rent Microsoft-koncept, Direct Compute Numera även i OpenGL, ny shadertyp från OpenGL 4.3 Varför

Läs mer

Jag tror att alla lärare introducerar bråk

Jag tror att alla lärare introducerar bråk RONNY AHLSTRÖM Variabler och mönster Det är viktigt att eleverna får förståelse för grundläggande matematiska begrepp. Ett sätt att närma sig variabelbegreppet är via mönster som beskrivs med formler.

Läs mer

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare Karlstads universitet 19-0 april Exempel på elevaktiviteter framtagna i skolutvecklingsprojektet IKT och lärande i matematik 1

Läs mer