OpenGL. grafikbibliotek? Nackdelar med OpenGL. Fördelar med OpenGL. En introduktion till OpenGL. OpenGL. rdvara. Grafikhårdvara.

Storlek: px
Starta visningen från sidan:

Download "OpenGL. grafikbibliotek? Nackdelar med OpenGL. Fördelar med OpenGL. En introduktion till OpenGL. OpenGL. rdvara. Grafikhårdvara."

Transkript

1 En introduktion till Gustav Taxén Står för Open Graphics Library. C-bibliotek för 3D-grafik (och( i viss mån 2D). Utvecklat av Silicon Graphics (SGI). Kontrolleras av ett Architectural Review Board med c:a 0 företagsmedlemmar. Licens måste köpas för utveckling av implementation. Gratis att använda nda. Mesa: GNU-implementation som har SGIs godkännande nnande. 2D323/NA8740 Datorgrafik med Interaktion VT 2006 Varför behövs grafikbibliotek? Grafikhårdvara rdvara Skillnader i funktionalitet och möjligheter. Skillnader i styrning. Plattformar Skillnader i operativsystem. Applikationer Målet är att koden skall vara densamma oberoende av hårdvara och plattform. Specifikationen är oberoende av fönster- och operativsystem. Windows, MacOS,, Linux, Solaris, Specifikationen definierar vad funktionerna i ska göra,, men inte hur de implementeras. Systemberoende del sköter datautbyte mellan och operativsystem. Enbart rendering: inget stöd för inenheter, fönsterhantering,, etc. Fördelar med Portabelt. Kraftfullt. (Relativt) enkelt att använda nda. Anpassat för 3D-grafikh grafikhårdvara rdvara men kan även användas ndas för att rita 2D. Effektivt. Utbyggbart via s.k. extensions. Används nds i akademiska världen. Används nds i industrin, bl.a.. i PlayStation 3. Nackdelar med -kod kan ge många funktionsanrop. "Aktivt onintresse" från Microsoft, som föredrar sitt eget Direct 3D. Buggiga drivrutiner för en del grafikkort jämfört med Direct 3D. Specifikationen uppdateras långsamt, vilket ger massor av extensions.

2 -komponenter Renderingsfunktionalitet. GLU ( Utility Library) Hjälpfunktioner för bl.a. transformationer. GLX / GLw Sköter datautbyte mellan operativsystemet och. GLUT Portabelt bibliotek tredjepartsbibliotek som gömmer systemberoende delar + fönsterhantering + inenheter. GLUT Skrivet av Mark Kilgard, då SGI, nu nvidia. Mål: att exakt samma -kod ska kunna kompileras på alla plattformar! Funktioner: Starta. Öppna fönster (eller fullskärm rm). Hantera mus, tangentbord,, joystick, m.m. Timer. Rita boxar, sfärer rer, tekannor, m.m. GLUT Applikation GLUT Interaktionstoolkit Eventhanterare och Operativsystem Hårdvara och grafiktoolkit Händelsebaserad interaktion Operativsystem eller ramsystem tar hand om förändringar f i status hos enheter. För r varje statusförändring genereras en event som innehåller information om förändringen. Programmet prenumererar påp events genom att tillhandahålla lla en callback. Händelsebaserad interaktion Callback-funktionen anropas vid särskilda s tillfällen. llen. Programmet sägs s dåd fånga en event. Mellan rapporteringarna lagras events i en kö. Applikationen kan generera events vid behov genom att anropa särskilda s funktioner (t.ex. forcera omritning av fönster). Inenhet Kö Dispatcher Interrupt-subrutin Callback-lista lista Callback (i applikationen) 2

3 Minimalt GLUT-program #include <GL/glut.h> void display(void) { /* Rita om fönster med */ Dubbelbuffring och djupbuffert (mer senare) int main(int argc, char *argv[]) { glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_DEPTH); glutcreatewindow( My window ); glutdisplayfunc(display); glutmainloop(); return 0; Registrera callback för r omritning Events i GLUT Events kan indelas i tre typer: Fönster Menyer Globala Några GLUT-events för fönster Redisplay (måste fångas f av alla fönster) f Reshape Keypress Mouse button Passsive mouse movement Active mouse movement Entry void display(void) { void reshape(int width, int height) { int main(int argc, char *argv[]) { glutcreatewindow( My Window ); glutdisplayfunc(display); glutreshapefunc(reshape); Menyer i GLUT Hierarkiska pop-up up-menyer. För r varje fönster f gäller g att en meny kan kopplas till varje musknapp. Varje meny äger en lista med menyrubriker och en meny-callback callback. Varje meny har en identitet (ett heltal). Varje menyrubrik som inte är r en undermeny har en identitet (ett heltal). Meny Arrange Icons By Refresh Meny 2 Name Size Type ID ID 3 9 Callback Callback Meny-callback Meny-callback 2 3

4 void menucallback(int itemid) { if (itemid == ) { /* Refresh */ void menucallback2(int itemid) { if (itemid == ) { /* Name */ if (itemid == 3) { /* Size */ if (itemid == 9) { /* Type */ int main(int argc, char *argv[]) { int id; id = glutcreatemenu(menucallback2); glutaddmenuentry( Name, ); glutaddmenuentry( Size, 3); glutaddmenuentry( Type, 9); glutcreatemenu(menucallback); glutaddsubmenu( Arrange Icons By, id); glutaddmenuentry( Refresh, ); glutattachmenu(glut_left_button); Animation Rita om fönstret regelbundet GLUT har en "idle"- event (global) som anropas då inget annat händer Forcera en omritning i en idle-callback: void idle(void) { glutpostredisplay(); int main() { glutidlefunc(idle); Animation och dubbelbuffring Översikt över TV-signal Hörn void display(void) { /* rensa fönstret */ /* rita med */ glutswapbuffers(); Synlig Gömd Volym Kontrast Bildformat Normal Färg Transformationsmatris Projektionsmatris Synlig Gömd Bild och ljud Fragment Översikt över Översikt över GLUT Geometri Operationer på hörn Meddelande: Behov av omritning Fragment Rastrering Operationer på fragment Applikation Bilddata Operationer på bildelement Framebuffer: (bildbuffert x 2) Hjälpbuffertar för vissa tester, mer senare) Textur- minne Geometri- specifikation Modelview- matris Textur- parametrar Avbild- ning Projektions- matris Ljussättning Ljussättnings ttnings- parametrar Trans- formation Operationer på fragment Inställningar förf tester 4

5 Geometrispecifikation Transformationer Y Transformation glbegin(gl_triangles); glvertex3f(.0, 0.0, 0.0); glvertex3f(0.0,.0, 0.0); glvertex3f(0.0, 0.0,.0); glend(); Z (0,0,) (0,,0) (,0,0) X Transformation Projektion Viewport- transformation Transformationer Modelview-matrisen Objektkoord. x o y o z o w o Matrisstack x w y w z w Fönsterkoord. Ögonkoord. x e y e z e w e Perspektiv- division Viewport- transformation Matrisstack x n y n z n Normerade enhetskoord. Klippkoord. x c y c z c w c Modelview- matris Projektions- matris Objektkoordinater anges med glvertex. Modelview-matrisen M omvandlar till ögonkoordinater: : v e = M v o. M positionerar modeller (objekt) i världen. v Normaler transformeras också (mer senare). Ljussättning görs g i ögonkoordinater (mer senare). Projektionsmatrisen Projektionsmatrisen P omvandlar ögonkoordinater till klippkoordinater: v c = P v e. P projicerar hörnen h påp ett bildplan och definierar samtidigt en vy-volym volym.. Alla primitiver klipps mot denna volym. Kameran sitter i (0, 0, 0) och ser i riktningen (0, 0, -). Perspektivdivision och viewporttransformation Perspektivdivision: (x n, y n, z n ) = (x( c / w c, y c / w c, z c / w c ). Perspektivdivisionen ger normerade enhetskoordinater i intervallet [-,[ ]. Viewport-transformation transformation: : skalning och offset i bildbufferten, ger fönsterkoordinater. Skalning och offset är i 2D, så z w = z n. 5

6 void display(void) { glclearcolor(0., 0.2, 0.3,.0); glclear(gl_color_buffer_bit); glmatrixmode(gl_modelview); glloadidentity(); gltranslatef(0.0, 0.0, -3.0); glmatrixmode(gl_modelview); glloadidentity(); gltranslatef(0.0, 0.0, -3.0); (0,,-3) glcolor3f(.0,.0,.0); glbegin(gl_triangles); glvertex3f(.0, 0.0, 0.0); glvertex3f(0.0,.0, 0.0); glvertex3f(0.0, 0.0,.0); glend(); glutswapbuffers(); Y (0,,0) (0,0,) Z (0,0,-2) (,0,0) X (,0,-3) Transformation är ekvivalent med byte av koordinatsystem glloadidentity(); gltranslatef(0,0,-3); glrotatef(50,0,,0); gltranslatef(0,0,3); glbegin(gl_triangles); glvertex3f(,0,0); glvertex3f(0,,0); glvertex3f(0,0,); glend(); glpushmatrix pushar aktuellt koordinatsystem på stacken. glpopmatrix ersätter aktuellt koordinatsystem med det som finns överst på stacken. Demo void reshape(int width, int height) { glmatrixmode(gl_projection); glloadidentity(); gluperspective(45, (GLfloat) width / (GLfloat) height, 0.5, 0.0); glviewport(0, 0, width, height); int main(int argc, char *argv[]) { glutcreatewindow( My Window"); glutdisplayfunc(display); glutreshapefunc(reshape); 6

7 Perspektivprojektion Ortogonalprojektion gluperspective(angle, aspect, near, far); z x y near Bildplan far angle glortho(left, right, bottom, top, near, far); z x y Bildplan right, bottom near far left, top Viewport-transformation transformation glviewport(ox, oy, sx, sy); Objektkoord. glmatrixmode(), glpushmatrix(), glpopmatrix() glloadidentity(), glmultmatrix(), glloadmatrix() gltranslate(), glrotate(), glscale() glfrustum(), gluperspective(), glortho(), gluortho2d() Ögonkoord. Klippkoord. sy x o y o z o w o x e y e z e w e Modelview- matris Projektions- matris x c y c z c w c (ox, oy) sx x w y w z w Perspektiv- division Viewport- transformation x n y n z n Position och storlek för viewport:en anges i fönsterkoordinater. Fönsterkoord. glviewport() Normerade enhetskoord. Hierarkiska modeller Består-av av-hierarki Pivotpunkt Skelett Arm Överarm Underarm 7

8 Lokala koordinatsystem Från hierarki till kod Subnodens origo positioneras m.a.p. förälderns koordinatsystem. Skelett Arm void drawskeleton(void) { drawarm(); void drawarm(void) { drawupperarm(); drawlowerarm(); Överarm Underarm void drawupperarm(void) { void drawlowerarm(void) { Från hierarki till kod Från hierarki till kod void drawskeleton(void) { glpushmatrix(); positionera armens origo; drawarm(); glpopmatrix(); void drawarm(void) { glpushmatrix(); positionera överarmens origo; drawupperarm(); glpopmatrix(); glpushmatrix(); positionera underarmens origo; drawlowerarm(); glpopmatrix(); Ändra rotation här! void drawskeleton(void) { glpushmatrix (); positionera armens origo; drawarm (); glpopmatrix (); Från hierarki till kod glmatrixmode(gl_modelview); glloadidentity(); glpushmatrix(); gltranslatef(modellens position); rita torso; Animation Uppdateringsmekanism glpushmatrix(); gltranslatef(pivotpunkt för överarmen); glrotatef(grader, rotationsaxel); rita överarmen; glpushmatrix(); gltranslatef(pivotpunkt för underarmen); glrotatef(grader, rotationsaxel); rita underarmen; glpopmatrix(); glpopmatrix(); Parametrar Rendering/ utritning Transformationer baserade på parametrarna glpopmatrix(); 8

9 Demo - forward kinematics Ljussättning Phongs ljusmodell N Ambient + N Diffuse param 0 = f 0 (t) param = f (t) Kända + Specular R N Ljuskälla Ambient RGBA Diffuse RGBA Specular RGBA Ambient RGBA Hörnets material Diffuse RGBA Specular RGBA, shininess + Hörn RGBA Demo Hörnets normal i förhållande till ljuskällan llan Reflektions- riktning i förhållande till kameran (origo) Goraud shading Bra att komma ihåg om ljussättning Färg beräknas i varje hörn och interpoleras sedan linjärt över polygonen. Normaler anges före varje hörn med glnormal3f(nx, ny, nz). Då ljussättning är aktivt har aktuell färg ingen effekt. stöder (minst)) 8 aktiva ljuskällor llor. En ljuskälla lla avger en viss mängd av varje ljustyp. Då ljuskällans llans position anges multipliceras den med aktuell modelviewmatris. 9

10 Back face culling Back face culling 90 o > 90 o Kamera glenable(gl_cull_face); Fram- eller baksida? Definieras av hörnens h ordning sett från n kameran. Konventionen är r att motsols är r riktat mot kameran. Rastrering "Översätter" från hörn till pixelpunkter. Ett fragment består av Position: (X, Y, Z) i normerade enhetskoordinater Färg: (R, G, B, A) Texturkoordinater: (s, t, q, r) Texturer Texturer har ingen filformatstolk för bilder. För labben finns libjpeg förberett.. Se informationen i kursbunten! Eller hämta ett gratisbibliotek från webben. Ett bra C++-alternativ är Corona ( corona.sourceforge.net/). Eller skriv en egen tolk! 0

11 Texturkoordinater Demo Texturkoordinat t s gltexcoord2f(s, t); Anges före glvertex (precis som för normaler). MIP-mapping MIP-mapping Teknik för att undvika aliasing-problem. Filtrera ett antal texturer i förväg och lagra dem effektivt. Vid texturering väljs automatiskt den textur som passar bäst m.a.p. avstånd från kameran (om MIP-mapping är aktiverat). Många grafikkort har andra former av antialiasing också. Texturering i Förstoring och förminskning Filtreringsalternativ. Clamp/wrap-around around för texturkoord. Bilddata (texels). Texturapplicerings- parametrar Texturobjekt Ett texturobjekt åt gången är aktivt. Rastrering Texelstorlek = pixelstorlek (inträffar i princip aldrig) Textur Förstoring Pixelpunkter på skärmen Förminskning Textur Pixelpunkter på skärmen Texturkoordinater

12 Filtreringsalternativ Clamp / wrap around Textur Pixelpunkter på skärmen Textur Pixelpunkter på skärmen (s, t) = (.25, -2.75) t gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_NEAREST); gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_LINEAR); GL_REPEAT GL_CLAMP Labbtips: GL_NEAREST_MIPMAP_LINEAR är default, men vi använder nder inte MIP-maps maps Glöm m inte att sätta s parametrar för f r förstoring f också! s gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_REPEAT); Bilddata: Texels Bilddata: Bildplan och datatyper m format R G B R G B R G B A R G B A R R R R origo n (width, height) = (2 n, 2 m ) där m, n är heltal 0 type GL_UNSIGNED_BYTE GL_FLOAT Specifikation av bilddata Texturappliceringsparametrar glteximage2d(gl_texture_2d, level, internalformat, width, height, 0, format, type, GLvoid *texels); MIP-map-nivå (= 0) Sätt till samma som type Vilka bildplan som ingår Datatyp på texels Namn på array med texels gltexenvi(gl_texture_env, GL_TEXTURE_ENV_MODE, mode); där mode är GL_DECAL = Ersätt RGB med texturdata, spara A. GL_REPLACE = Ersätt RGBA med texturdata. GL_MODULATE = Multiplicera texturdata med ljussättning/f ttning/färg. Lagras inte i texturobjekt! 2

13 Operationer på fragment Huvudsakligen ett antal tester som avgör om fragmentet ska skickas till bildbufferten eller inte. Testerna genomförs alltid i samma ordning. Ordningen är definierad i - specifikationen. Används nds för borttagning av skymda ytor, dynamiska skuggor, specialeffekter, m.m. Djuptest Fragment Djupbuffert Bildbuffert Fönster Vanlig bugg på labben: du glömde tala om för GLUT att du ville ha en djupbuffert! Djuptest (Z-buffring) > 0.97 < 0.8 < Testa om anländande ndande fragment har större eller mindre djupvärde än det som redan finns i bufferten. Om värdet är mindre, ersätt med det nya fragmentet. Shaders s pipeline är statisk: operationer på hörn och operationer på fragment genomförs på ett på förhand bestämt sätt. nvidia's GeForce 3 gav möjlighet att ersätta de två stegen med program (i assembler), s.k. programmerbar pipeline. Programmen kallas för vertex programs och fragment programs i (vertex( shaders och pixel shaders i Direct 3D). Shaders Olika korttillverkare har lite olika funktioner i sin assembler. Men nu finns högnivåspråk som kompilerar till sådan assembler! nvidia cg,, Microsoft HLSL,, Shader Language, m.fl. Shaders har inneburit en ny paradigm inom realtidsgrafiken! Shaders T Normal (N) Kamera (V) T = transmission_vector(n,v); (s,t) = to_env_map_tex_coord(t); color = tex_lookup(s,t); 3

14 Shaders Vi tittar närmare på transmissionvektorer och environment mapping på bildsyntesföreläsningen! Mer om shaders på hårdvaruföreläsningen! Mer info Woo, Neider,, Davis: The Programming Guide,, Addison Wesley Developer Press. Upplagan för f. finns som PDF: red_book_.0/ Segal, Akeley: The Graphics System: A Specification. Finns påp Plus en mängd m andra böcker b Se också länkarna påp kurshemsidan! Mer info Gå till 4

En introduktion till OpenGL. Gustav Taxén gustavt@csc.kth.se

En introduktion till OpenGL. Gustav Taxén gustavt@csc.kth.se En introduktion till OpenGL Gustav Taxén gustavt@csc.kth.se 2D164 Grafik och Interaktionsprogrammering VT 27 Labb 4 görs på PC! Följ det nya labbpeket - eller: Följ stegen i labbpeket för labb 5 för att

Läs mer

Varför behövs grafikbibliotek? Introduktion till OpenGL. OpenGL är ett grafikbibliotek. Fördelar med OpenGL. Allmänt om OpenGL. Nackdelar med OpenGL

Varför behövs grafikbibliotek? Introduktion till OpenGL. OpenGL är ett grafikbibliotek. Fördelar med OpenGL. Allmänt om OpenGL. Nackdelar med OpenGL Introduktion till OpenGL Battlezone Atari corp., 1980. Gustav Taxén CID gustavt@nada.kth.se Varför behövs grafikbibliotek? Grafikhårdvara Skillnader i funktionalitet och möjligheter. Skillnader i styrning.

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

OpenGL-översikt. OpenGL. Viktigt att komma ihåg: OpenGL-kommandon. OpenGL är en tillståndsmaskin. Transformationer. Geometrispecifikation

OpenGL-översikt. OpenGL. Viktigt att komma ihåg: OpenGL-kommandon. OpenGL är en tillståndsmaskin. Transformationer. Geometrispecifikation OpenGL OpenGL-översikt Geometri Operationer på hörn Projective shadows Advanced Rendering Techniques Using OpenGL, SIGGRAPH Courses 997. Gustav Taxén CID gustavt@nada.kth.se Bilddata Operationer på bildelement

Läs mer

OpenGL-översikt. OpenGL. Lokala koordinatsystem. Transformationer. Hierarkiska modeller. Animation. Transformation Byte av koordinatsystem

OpenGL-översikt. OpenGL. Lokala koordinatsystem. Transformationer. Hierarkiska modeller. Animation. Transformation Byte av koordinatsystem OpenGL OpenGL-översikt Geometri Operationer på hörn DOOM 3 id Software, 2004 (?). Gustav Taxén CID gustavt@nada.kth.se Bilddata Operationer på bildelement Rastrering Texturminne Operationer på fragment

Läs mer

OpenGL-översikt. Mer OpenGL. Består-av-hierarki. Hierarkiska modeller. Från hierarki till kod, steg 1. Lokala koordinatsystem

OpenGL-översikt. Mer OpenGL. Består-av-hierarki. Hierarkiska modeller. Från hierarki till kod, steg 1. Lokala koordinatsystem Mer OpenGL OpenGL-översikt Geometri Operationer på hörn Projective shadows Advanced Rendering Techniques Using OpenGL, SIGGRAPH Courses 997. Gustav Taxén CID gustavt@nada.kth.se Bilddata Operationer på

Läs mer

In- och utenheter. Händelsebaserad programmering i GLUT. Interrupt-baserad interaktion. Sampling / polling. Händelsebaserad interaktion (forts.

In- och utenheter. Händelsebaserad programmering i GLUT. Interrupt-baserad interaktion. Sampling / polling. Händelsebaserad interaktion (forts. Den första datormusen Douglas Englebart, 1968. programmering i GLUT Gustav Taxén CID gustavt@nada.kth.se In- och utenheter Alla datorsystem har in- och utenheter som behandlar information. Data skickas

Läs mer

OpenGL AGI HT05. Gustav Taxén

OpenGL AGI HT05. Gustav Taxén OpenGL AGI HT05 Gustav Taxén gustavt@nada.kth.se OpenGL-översikt Geometri Operationer på hörn Rastrering Operationer på fragment Bilddata Operationer på bildelement Texturminne Framebuffert (bildbuffert

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

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

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

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

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

Transformationer i 3D. Gustav Taxén

Transformationer i 3D. Gustav Taxén Transformationer i 3D Gustav Taén gustavt@csc.kth.se 2D64 Grafik och Interaktionsprogrammering VT 27 Bakgrund Ett smidigt sätt att arbeta med 3D-grafik är att tänka sig att man har en virtuell kamera som

Läs mer

OpenGL, Maya och specialeffekter

OpenGL, Maya och specialeffekter OpenGL, Maya och specialeffekter Gustav Taxén, gustavt@nada.kth.se Introduktion OpenGL är ett användbart API för att rendera grafik i realtid (om man har det rätta hårdvarustödet). Du har på tidigare kurser

Läs mer

OpenGL, Maya och specialeffekter

OpenGL, Maya och specialeffekter OpenGL, Maya och specialeffekter Gustav Taxén, gustavt@nada.kth.se Introduktion OpenGL är ett användbart API för att rendera grafik i realtid (om man har det rätta hårdvarustödet). Du har på tidigare kurser

Läs mer

Rastrering och displayalgoritmer. Gustav Taxén

Rastrering och displayalgoritmer. Gustav Taxén Rastrering och displayalgoritmer Gustav Taxén gustavt@csc.kth.se 2D1640 Grafik och Interaktionsprogrammering VT 2007 Klippning Man vill undvika att rastrera de primitiver som hamnar utanför fönstret. Man

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

OpenGL, Maya och specialeffekter

OpenGL, Maya och specialeffekter OpenGL, Maya och specialeffekter Gustav Taxén, gustavt@nada.kth.se Introduktion OpenGL är ett användbart API för att rendera grafik i realtid (om man har det rätta hårdvarustödet). Du har på tidigare kurser

Läs mer

Introduktion till OpenGL

Introduktion till OpenGL Introduktion till OpenGL Magnus Bondesson Institutionen för Datavetenskap 98-01-15, 99-01-12, 00-01-12, 01-01-07, 02-01-17, 03-01-14, 04-08-18, 05-08-23, 06-03-17 1 Inledning OpenGL (uttytt Open Graphics

Läs mer

Transformationer. Translation. Skalning. Homogena koordinater. Rotation. 2D-grafik. x y. Inom datorgrafik är transformationer den. Många. bevaras.

Transformationer. Translation. Skalning. Homogena koordinater. Rotation. 2D-grafik. x y. Inom datorgrafik är transformationer den. Många. bevaras. Transformationer D-grafik Gustav Taén gustavt@nada.kth.se Inom datorgrafik är transformationer den kanske viktigaste formen av operation. De vanligaste transformationerna är linjära och kan skrivas som

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

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. Videominne Lapped textures Emil Praun et al., SIGGRAPH 2000. Gustav Taxén CID gustavt@nada.kth.se

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har

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

F5: Högnivåprogrammering

F5: Högnivåprogrammering F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering 1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data

Läs mer

Information Coding / Computer Graphics, ISY, LiTH

Information Coding / Computer Graphics, ISY, LiTH 12(73) Shadow maps/skuggmappning Mycket populär skuggningsmetod Två renderingar av scenen Beräkning för beslut i fragmentshader Mycket beräkningar (filter) för god kvalitet Fördel: Behöver ingen kunskap

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

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

2D-grafik. Gustav Taxén

2D-grafik. Gustav Taxén 2D-grafik Gustav Taxén gustavt@csc.kth.se 2D164 Grafik och Interaktionsprogrammering VT 27 Framebuffer Datorminne som lagrar information för pixlarna som ska visas på skärmen Grafikkortet hämtar värdena

Läs mer

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

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

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

Grafik i DrRacket AV TOMMY KARLSSON

Grafik i DrRacket AV TOMMY KARLSSON Grafik i DrRacket AV TOMMY KARLSSON Upplägg Grundläggande grafik i racket Frame% Kodexempel! Generella problemlösarstrategier Grafisk kodstruktur Button% Pane% & Panel% Canvas% Bitmap% Grafisk effektivisering

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java jonas.kvarnstrom@liu.se 2017 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Till stor del ersatt av Swing: Mer omfattande,

Läs mer

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt Programmeringsteknik II - HT18 Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt 18-09-28 1 Förra gången: Arv och klasshierarkier Vi såg hur

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

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

Lab5 för prgmedcl04 Grafik

Lab5 för prgmedcl04 Grafik Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna

Läs mer

Mälardalens högskola Västerås, Maj 2006 Institutionen för Datavetenskap och Elektronik, IDE Student: Alexander Andersson E-post:

Mälardalens högskola Västerås, Maj 2006 Institutionen för Datavetenskap och Elektronik, IDE Student: Alexander Andersson E-post: Mälardalens högskola Västerås, Maj 2006 Institutionen för Datavetenskap och Elektronik, IDE Student: Alexander Andersson E-post: aan02016@student.mdh.se, aan02016@hotmail.com Telefon: 0707-418478 Handledare:

Läs mer

Realtidsskuggalgoritmer för virtuella 3D-världar på modern grafikhårdvara M A R C U S B E A U S A N G

Realtidsskuggalgoritmer för virtuella 3D-världar på modern grafikhårdvara M A R C U S B E A U S A N G Realtidsskuggalgoritmer för virtuella 3D-världar på modern grafikhårdvara M A R C U S B E A U S A N G Examensarbete Stockholm, Sverige 2006 Realtidsskuggalgoritmer för virtuella 3D-världar på modern grafikhårdvara

Läs mer

DGI/SUDOA Den historiska utvecklingen. Globala - lokala belysningsmodeller. Lokala belysningsmodeller. Rendering equation

DGI/SUDOA Den historiska utvecklingen. Globala - lokala belysningsmodeller. Lokala belysningsmodeller. Rendering equation DGI/SUDOA - 060329 Rendering equation Belysningsmodeller (lokala och globala) Kort om texturer Den historiska utvecklingen 1. Enkla modeller som utvärderades genom att göra enkla bedömningar 2. Mera sofistikerade

Läs mer

Simulering av rök på GPU

Simulering av rök på GPU Institutionen för kommunikation och information Examensarbete i datalogi 30hp C-nivå Vårterminen 2008 Simulering av rök på GPU Användning av GPGPU för att simulera rök Erik Jalsborn Simulering av rök på

Läs mer

OH-BILDER DATORGRAFIK HT 2005

OH-BILDER DATORGRAFIK HT 2005 OH-BILDER DATORGRAFIK HT 2005 Bok ej nödvändig, men kan ge mer kött på benen. Dessa kopior av OH-bilder tillsammans med ett antal småskrifter avses ge nödvändiga fakta. OH-bilder som enbart belyser teorin

Läs mer

Metoder för att öka realismen vid animerade 3Dförlopp. Master of Science Thesis MARTIN REBAS

Metoder för att öka realismen vid animerade 3Dförlopp. Master of Science Thesis MARTIN REBAS Metoder för att öka realismen vid animerade 3Dförlopp Master of Science Thesis MARTIN REBAS Chalmers University of Technology University of Gothenburg Department of Computer Science and Engineering Göteborg,

Läs mer

ADS : STACK ADT: STACK. Stack och Kö -Implementering - Tilllämpningar. Oftast förekommande metoder i Stack. TopOfStack

ADS : STACK ADT: STACK. Stack och Kö -Implementering - Tilllämpningar. Oftast förekommande metoder i Stack. TopOfStack Stack och Kö -Implementering - Tilllämpningar ADS : STACK Det finns ett par vanligt förekommande ADT:er för samlingar av element som egentligen är specialfall av listor. En av dem är Stack Definition:

Läs mer

Utmatningstekniker Vektoriserade (linjeritande) skärmar

Utmatningstekniker Vektoriserade (linjeritande) skärmar previous 2D-grafik. Något om FrameWorks. Java en kort introduktion och något exempel med AWT, något om Swing och Graphics2D, samt OpenGL ett litet exempel Föreläsning 2 Innehåll Något om utmatning hårdvara,

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

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

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har

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

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

Kurvor och ytor. Gustav Taxén

Kurvor och ytor. Gustav Taxén Kurvor och ytor Gustav Taxén gustavt@csc.kth.se 2D1640 Grafik och Interaktionsprogrammering VT 2007 Kurvor och ytor Explicit form Implicit form Parametrisk form Procedurbaserade Polynom Catmull-Clark Kubiska

Läs mer

SgLib Simple Graphics Library

SgLib Simple Graphics Library SgLib Simple Graphics Library SgLib är en förenkling av glut som I sin tur bygger på open GL. Om du inte känner till glut och open GL, räcker det att veta att sglib är en samling filer som gör det lättare

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

Varför behövs det? I Allegro finns t.ex. stöd för:

Varför behövs det? I Allegro finns t.ex. stöd för: Allegro Introduktion Översikt vad är Allegro? Vad är lib och h-fil Kolla kodexempel Strukturen på ett Allegrospel Hur kommer jag igång? Var kan jag läsa mer Addons Alternativ Vad är Allegro? Ett spelprogrammeringsbibliotek

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öreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt. Använd

Läs mer

Bemästra verktyget TriBall

Bemästra verktyget TriBall Bemästra verktyget TriBall I IRONCAD finns ett patenterat verktyg för 3D-positionering av objekt, kallat TriBall. Hyllad av en del som "Det mest användbara verktyget i CAD-historien". TriBall är otroligt

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

Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards

Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards Tel: 031-769 00 60 info@frolundadata.se www.frolundadata.se Introduktion WizKeys är flexibelt och kostnadseffektivt

Läs mer

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö Datastrukturer och algoritmer Föreläsning 4 Test, Stack och Kö 1 Innehåll Test Datatyperna Stack och kö Specifikation och Gränssnitt Konstruktion Tillämpning 2 Testa VIKTIGT! Test går att göra under många

Läs mer

TDDD78, TDDE30, 729A Grafik: Att "rita" egna komponenter

TDDD78, TDDE30, 729A Grafik: Att rita egna komponenter TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Grafik: Att "rita" egna komponenter Intro 1: Rita Allt på skärmen ritas som pixlar Även de vanliga GUI-komponenterna 2 Gradienter, skuggning Matematisk

Läs mer

Övning från förra gången: readword

Övning från förra gången: readword (9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver

Läs mer

För att komma igång. Ta skissen från designlabben eller motsvarande och lägg in den i front/side/top fönstret/fönstrena.

För att komma igång. Ta skissen från designlabben eller motsvarande och lägg in den i front/side/top fönstret/fönstrena. Maya lab AGI2003. Detta labpek bör i sin helhet ha lästs igenom innan labtillfället, även om detaljerna i hur och var man hittar och använder verktyg kan skummas. Syfte. Syftet med den här labben är att

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

Byggnet 3D-viewer LATHUND

Byggnet 3D-viewer LATHUND Byggnet 3D-viewer LATHUND Version Maj 2019 Kort om Byggnet Access Byggnet Access är ett modernt webbaserat system för lagring av olika dokument och ritningsrelaterad information som behöver delas mellan

Läs mer

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina

Läs mer

Innehållsförteckning

Innehållsförteckning Innehållsförteckning Innehållsförteckning... 3 Om bokförfattaren och Rita med SketchUp... 8 Bra att veta... 9 Programspråk och förklaringar:... 9 Finns funktionen i gratisversionen (Make)?... 9 Musen är

Läs mer

Android översikt. TDDD80 Mobila och sociala applikationer

Android översikt. TDDD80 Mobila och sociala applikationer Android översikt TDDD80 Mobila och sociala applikationer Översikt Köra app på mobil / emulator Android Studio introduktion Android kodning Android labb 1 Köra på mobil / emulator Developer mode på mobilen

Läs mer

3.5 Visuell programmering

3.5 Visuell programmering 3.5 Visuell programmering Alla våra program hittills har varit C# Console Applications (sid 41) inkl. programmet MessageBox fast det genererade en grafisk meddelanderuta. Nu vill vi utnyttja grafikens

Läs mer

DAT043 - föreläsning 8

DAT043 - föreläsning 8 DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns

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

Texturering - förstoring 2(2)

Texturering - förstoring 2(2) Texturering - förstoring 2(2) De viktigaste ändringarna beror på Texturering i JOGL (Ex. 18) att matriselement i Java inte säkert lagras i sekvens (vilket OpenGL antar) att Java saknar motsvarighet till

Läs mer

Bemästra verktyget TriBall

Bemästra verktyget TriBall Bemästra verktyget TriBall I IRONCAD finns ett patenterat verktyg för 3D-positionering av objekt, kallat TriBall. Hyllad av en del som "Det mest användbara verktyget i CAD-historien" TriBall är otroligt

Läs mer

Skinning and Animation

Skinning and Animation Skinning and Animation Skelett Keyframe animation BSpline Quaternioner Kinematics Animation Blending Skinning Skinning på GPU:n Skelett Hierarkiskt Kan närmast liknas vid en trädstruktur Ben och leder

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 25 26 Fält Modell Schackbräde Organisation n-dimensionellt

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

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2010-04-07 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

Dynamic Review for Models ProjectWise Navigator

Dynamic Review for Models ProjectWise Navigator Dynamic Review for Models ProjectWise Navigator Magnus Cullberg Application Engineer, Bentley Systems Arbetsflöde för Dynamiskt Samarbete Arbete pågår Ordna & Publisera Granska, Analysera Förbättra Bentley

Läs mer

Abstrakta datastrukturer

Abstrakta datastrukturer Föreläsning 2 Datastrukturer Abstrakta datastrukturer Stack Stack implementerad med array Länkad lista Stack implementerad med länkad lista Inlämningsuppgifter Datastrukturer En datastruktur är en struktur

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering

Läs mer

Datorspelsgrafik. Gustav Taxén gustavt@csc.kth.se

Datorspelsgrafik. Gustav Taxén gustavt@csc.kth.se Datorspelsgrafik Gustav Taxén gustavt@csc.kth.se 2D1640 Grafik och Interaktionsprogrammering VT 2007 Datorspelshistoria: : 50-tal Oscilloskop Analoga och tidiga digitala datorer Enkla brädspel typ tic-

Läs mer

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02) UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.

Läs mer

Här är ett väldigt bra tidpunkt att spara scenen. Jag har valt att bygga ett litet pyramidtorn.

Här är ett väldigt bra tidpunkt att spara scenen. Jag har valt att bygga ett litet pyramidtorn. Man kan i 3dsmax 2011 som standard välja mellan två olika renderare. Dels den inbyggda och något föråldrade scanline-renderaren samt "mental ray" som är lite mer avancerad och har mer möjligheter men också

Läs mer

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll Mike McBride Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Fönsterbeteende 4 1.1 Fokus............................................. 4 1.1.1 Fokuspolicy..................................... 4

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

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015 Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation

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

Universe Engine Rapport

Universe Engine Rapport 1 Universe Engine Rapport Alexander Mennborg 2017-05-08 2 Inledning I denna rapport diskuteras utvecklingsprocessen till projektet Universe Engine. Denna diskussion omfattar hela utveckling från starten

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering

Läs mer

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn? Fö 7: Operativsystem Introduktion. Klassificering. Vad är ett operativsystem? Program som kontrollerar andra andra program. Gränssnitt mellan användare och hårdvaran. Kärnan. Historisk översikt. Typeset

Läs mer

Information Coding / Computer Graphics, ISY, LiTH CUDA. En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk

Information Coding / Computer Graphics, ISY, LiTH CUDA. En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk CUDA En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk Minnesareor och minnesaccess Delat minne Exempel CUDA = Compute Unified Device Architecture Utvecklat av NVidia

Läs mer

Starta ett fönster... Hur håller tkinter reda på musklick? Olika sätt att organisera fönsterinnehåll. Och för att placera våra widgets

Starta ett fönster... Hur håller tkinter reda på musklick? Olika sätt att organisera fönsterinnehåll. Och för att placera våra widgets Grafik Python levereras med ett grafikpaket tkinter De flesta av dagens applikationsprogram hanterar grafik Grafikhantering är komplicerat så använd färdigutvecklade grafikpaket Mycket att hålla reda på

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

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen.

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen. Fiskar Arbetsbeskrivning knappmeny (Mediator 8) I detta exempel kommer du att lära dig Att göra en mastersida med knappar Att använda en mastersida på andra sidor Att använd funktionen Alignment Arbetsgång

Läs mer