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(http://www.fftw.org/) 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bézierkurvor och parametriska objektrepresentationer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TNM059 Grafisk teknik Laboration 4 - Färg

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

Läs mer

Att behärska ljuset, är vägen till en bra bild..

Att behärska ljuset, är vägen till en bra bild.. Att behärska ljuset, är vägen till en bra bild.. 1. Inledning Som du kanske har märkt handlar mycket av fotografin om ljus. Det finns ganska mycket matematik och fysik involverat, inte minst kring hur

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

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

Tentamen TNM077, 3D datorgrafik och animering

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

Läs mer

Procedurell modellering i visualiseringsprocessen. Sandra Stendahl

Procedurell modellering i visualiseringsprocessen. Sandra Stendahl Procedurell modellering i visualiseringsprocessen Sandra Stendahl Sandra Stendahl Sweco Position Göteborg Systemutveckling, 3D, Visualisering 28/09/2015 2 Visualisera? Hur? Varför? Visualiseringsprocessen

Läs mer

HALFTONE SHADER APP HEMSIDA: HTTP://WWW.JOHNTOLUNAY.COM/TNM084/ Skapad av: John Tolunay (johto970@student.liu.se)

HALFTONE SHADER APP HEMSIDA: HTTP://WWW.JOHNTOLUNAY.COM/TNM084/ Skapad av: John Tolunay (johto970@student.liu.se) HALFTONE SHADER APP Applikation för digital rastrering av bilder i realtid med hjälp av Simplex Noise och OpenGL + GLSL HEMSIDA: HTTP://WWW.JOHNTOLUNAY.COM/TNM084/ Skapad av: John Tolunay (johto970@student.liu.se)

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

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner Linköping Universitet, Campus Norrköping Inst/ Kurs Termin/år Titel: Undertitel: Författarens namn och e-postadress Framsidans utseende kan variera mellan olika institutioner Handledares namn Sammanfattning

Läs mer

Repetition + lite av varje. Ulf Assarsson Department of Computer Engineering Chalmers University of Technology

Repetition + lite av varje. Ulf Assarsson Department of Computer Engineering Chalmers University of Technology Repetition + lite av varje Ulf Assarsson Department of Computer Engineering Chalmers University of Technology Tävlingen Tävling: 22:a maj 15:00-17:00 i sal EA Anmäl ert lag om ni vill vara med. Skicka

Läs mer

Koordinatsystem och Navigation

Koordinatsystem och Navigation 2D vs 3D VS Skillnaden mellan 2D och 3D må verka ganska självklar men ibland kan det uppkomma missförstånd kring detta. Vi refererar oftast på 3D som datorgenererad grafik (CG=Computer Graphics) vilket

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

Studio 6: Dubbelintegral.

Studio 6: Dubbelintegral. Studio 6: Dubbelintegral. Analys och Linjär Algebra, del C, K1/Kf1/Bt1, vt09 20 februari 2009 1 Repetition av enkelintegral I ALA B skrev du en MATLAB-funktion minintegral som beräknar integralen av en

Läs mer

Borttagning av skymda ytor Painter s Algorithm och Z-buffering. MICHAEL HJORTHOLT och ANDREAS PAULSSON

Borttagning av skymda ytor Painter s Algorithm och Z-buffering. MICHAEL HJORTHOLT och ANDREAS PAULSSON Borttagning av skymda ytor Painter s Algorithm och Z-buffering MICHAEL HJORTHOLT och ANDREAS PAULSSON Examensarbete Stockholm, Sverige 2010 Borttagning av skymda ytor Painter s Algorithm och Z-buffering

Läs mer

Statistiska samband: regression och korrelation

Statistiska samband: regression och korrelation Statistiska samband: regression och korrelation Vi ska nu gå igenom något som kallas regressionsanalys och som innebär att man identifierar sambandet mellan en beroende variabel (x) och en oberoende variabel

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

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Övningsuppgift Bankkonton Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering

Läs mer

Den tekniska utvecklingen av hårdvara och mjukvara för realtidsgrafik

Den tekniska utvecklingen av hårdvara och mjukvara för realtidsgrafik Den tekniska utvecklingen av hårdvara och mjukvara för realtidsgrafik Anders Andersson aaa99005@student.mdh.se CD5420 - Vetenskap inom dataområdet, 2002-10-15 1 Sammanfattning Rapporten har en fokusering

Läs mer

VRay för Max Camilla Ravenna / André Ravenna Alto Punto 2012 Alto Punto Askims Stationsväg 21 436 40 Askim

VRay för Max Camilla Ravenna / André Ravenna Alto Punto 2012 Alto Punto Askims Stationsväg 21 436 40 Askim VRay för Max Camilla Ravenna / André Ravenna Alto Punto 2012 Alto Punto Askims Stationsväg 21 436 40 Askim ISBN 978-91-637-2533-3 Innehåll 1: Kom igång 5 2: Nödvändiga inställningar 6 2.1: V-Ray fliken

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

Ljusets polarisation

Ljusets polarisation Ljusets polarisation Viktor Jonsson och Alexander Forsman 1 Sammanfattning Denna labb går ut på att lära sig om, och använda, ljusets polarisation. Efter utförd labb ska studenten kunna sätta upp en enkel

Läs mer

Datastrukturer och Algoritmer D0041D

Datastrukturer och Algoritmer D0041D Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms

Läs mer

Tutorial - Resist med stearin och vattenfärg av maxell för Skrotboken

Tutorial - Resist med stearin och vattenfärg av maxell för Skrotboken <http://skrotboken.blogspot.com> Tutorial - Resist med stearin och vattenfärg av maxell för Skrotboken Stearin har ibland använts inom konsten för att skapa effekter tillsammans med färg. På senare år

Läs mer

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Laboration 4: Digitala bilder

Laboration 4: Digitala bilder Objektorienterad programmering, Z : Digitala bilder Syfte I denna laboration skall vi återigen behandla transformering av data, denna gång avseende digitala bilder. Syftet med laborationen är att få förståelse

Läs mer

The Awakening Short Film

The Awakening Short Film The Awakening Short Film Specialization project within Computer Graphics Linus Holm Anton Hjort 1 The Awakening Short Film Linus Holm Anton Hjort Luleå tekniska universitet Sammanfattning Denna rapport

Läs mer

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

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april. Liten introduktionsguide för nybörjare GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare 19-20 april Liten introduktionsguide för nybörjare GeoGebra 0 Introduktionsövningar till GeoGebra När man startar GeoGebra är det

Läs mer

Konvexa höljet Laboration 6 GruDat, DD1344

Konvexa höljet Laboration 6 GruDat, DD1344 Konvexa höljet Laboration 6 GruDat, DD1344 Örjan Ekeberg 10 december 2008 Målsättning Denna laboration ska ge dig övning i att implementera en algoritm utgående från en beskrivning av algoritmen. Du ska

Läs mer

RTG-formatet Gustav Taxén,

RTG-formatet Gustav Taxén, RTG-formatet 2004-08-11 Gustav Taxén, gustavt@nada.kth.se Det här texten beskriver kortfattat RTG-filformatet och ett C-bibliotek som kan läsa det. RTG-formatet är ett filformat för geometribeskrivningar

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

Reflektion efter tillverkande av skalenlig modell

Reflektion efter tillverkande av skalenlig modell Reflektion efter tillverkande av skalenlig modell De förkunskaper som krävs vid tillverkandet av en skalenlig modell är först och främst vad som definierar begreppet skala. Hela objektet ska förändras

Läs mer

Kort introduktion till POV-Ray, del 6

Kort introduktion till POV-Ray, del 6 Kort introduktion till POV-Ray, del 6 Kjell Y Svensson, 2004,2007-03- 14 Detta avsnitt kommer att bli en liten lathund till hur man gör saker snabbare med mindre skrivande. Koppla dock inte ur hjärnan

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

Vardagssituationer och algebraiska formler

Vardagssituationer och algebraiska formler Modul: Algebra Del 7: Kommunikation i algebraklassrummet Vardagssituationer och algebraiska formler Cecilia Kilhamn, Göteborgs Universitet och Jörgen Fors, Linnéuniversitetet En viktig del av algebran

Läs mer

Utveckling av terräng och partikeleffekter med

Utveckling av terräng och partikeleffekter med Utveckling av terräng och partikeleffekter med Lightweight Java Game Library (LWJGL) Development of a terrain and particle effects with Lightweight Java Game Library (LWJGL) Daniel Härnberg Gustav Wiiala

Läs mer

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 9 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Fält Grunderna Fält med komponenter av struct-typ Fält med referenser Standardklassen

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

LANDING ZONE II (v1.0, uppgift 2 av 4) för 3D Animering B 1112

LANDING ZONE II (v1.0, uppgift 2 av 4) för 3D Animering B 1112 LANDING ZONE II (v1.0, uppgift 2 av 4) för 3D Animering B 1112 'Landing Zone' (school assignment) is 2011 Arvid Forsberg /// Images are of their respective owners. Innehållsförteckning Sid 2 Sid 3 Sid

Läs mer

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

Kurs: Datorstödd konstruktion fortsättningskurs, V15-3, TM051B. Provmoment: Tentamen 2,5 högskolepoäng. Personnummer:.. (Ifylles av student) Högskolan i Borås Kurs: Datorstödd konstruktion fortsättningskurs, V15-3, TM051B. Provmoment: Tentamen 2,5 högskolepoäng. Ladokkod: TM051B Tentamen ges för: KMASK13h, Maskiningenjör Namn:. Personnummer:..

Läs mer

Tentamen i Optik för F2 (FFY091)

Tentamen i Optik för F2 (FFY091) CHALMERS TEKNISKA HÖGSKOLA 2009-03-10 Teknisk Fysik 08.30-12.30 Sal: H Tentamen i Optik för F2 (FFY091) Lärare: Bengt-Erik Mellander, tel. 772 3340 Hjälpmedel: Typgodkänd räknare, Physics Handbook, Mathematics

Läs mer

Tron Style OpenGL ES 2.0 Shaders för ios Möjligheten att implementera ett Bloomfilter på ett ios-device

Tron Style OpenGL ES 2.0 Shaders för ios Möjligheten att implementera ett Bloomfilter på ett ios-device C3LOOPS Tron Style OpenGL ES 2.0 Shaders för ios Möjligheten att implementera ett Bloomfilter på ett ios-device Christoffer Tamm Kandidatexamensarbete inom Datavetenskap Mälardalens högskola, Västerås

Läs mer

Två gränsfall en fallstudie

Två gränsfall en fallstudie 19 november 2014 FYTA11 Datoruppgift 6 Två gränsfall en fallstudie Handledare: Christian Bierlich Email: christian.bierlich@thep.lu.se Redovisning av övningsuppgifter före angiven deadline. 1 Introduktion

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =

Läs mer

1.0 Starten Nytt... (bild 1) 1.3 Namn Upplösning 1.6 Läge 1.7 Innehåll OK

1.0 Starten Nytt... (bild 1) 1.3 Namn Upplösning 1.6 Läge 1.7 Innehåll OK EN NYBÖRJARKURS I KARTRITNING I ADOBE PHOTOSHOP DEL 1: GROTTSYSTEM Välkommen till första delen i ämnet kartritning. Jag har ofta förfärats över hur dåliga kartorna är som följer med i äventyr som man laddar

Läs mer

Vinjetter TDDC91 Datastrukturer och algoritmer

Vinjetter TDDC91 Datastrukturer och algoritmer Vinjetter TDDC91 Datastrukturer och algoritmer 17 augusti 2015 2 Scenario 1 Man har inom Posten Logistik AB skrivit programvara för sortering av kundinformation och vill standardisera användningen av sorteringsalgoritmer.

Läs mer

Information Coding / Computer Graphics, ISY, LiTH. Bump mapping!

Information Coding / Computer Graphics, ISY, LiTH. Bump mapping! 42(81) Information Coding / Computer Graphics, ISY, LiTH Bump mapping Principerna ingick i grundkursen. Mer detalj, implementation Koordinatsystem Normal mapping Utvidgning till mer avancerade metoder

Läs mer