OpenGL-översikt. OpenGL. Viktigt att komma ihåg: OpenGL-kommandon. OpenGL är en tillståndsmaskin. Transformationer. Geometrispecifikation
|
|
- Fredrik Öberg
- för 6 år sedan
- Visningar:
Transkript
1 OpenGL OpenGL-översikt Geometri Operationer på hörn Projective shadows Advanced Rendering Techniques Using OpenGL, SIGGRAPH Courses 997. Gustav Taxén CID Bilddata Operationer på bildelement Rastrering Texturminne Operationer på fragment Framebuffert (bildbuffert + hjälpbuffertar) Viktigt att komma ihåg: OpenGL-kommandon Ex: ändra aktuell färg glcolor3f(.0,.0,.0); OpenGL är en tillståndsmaskin. Antal argument b byte s short i int f float d double ub unsigned byte us unsigned short ui unsigned int v vector (c array) R G B Argumentens datatyp Alla kombinationer är inte relevanta för alla kommandon! Geometrispecifikation Transformationer glbegin(gl_triangles); glvertex3f(.0, 0.0, 0.0); glvertex3f(0.0,.0, 0.0); glvertex3f(0.0, 0.0,.0); glend(); Alla hörn anges i homogena koordinater. Om w saknas sätts den till. Om z saknas sätts den till 0. Det är tillåtet (och önskvärt) att ange fler primitiver i rad. Data för hörn MÅSTE anges INNAN hörnets position. Transformation Transformation Projektion Viewporttransformation
2 Transformationer i OpenGL Objektkoord. x o y o z o w o x w y w z w Fönsterkoord. Matrisstack v e = M v o n = (M - ) T n Ögonkoord. x e y e z e w e (x w, y w, z w ) = (sx n + o, sy n + o, sz n + o) Matrisstack x n y n z n v c = P v e Normerade enhetskoord. Klippkoord. x c y c z c w c (Klippning) Exempel (0,0,) z glmatrixmode(gl_modelview); glloadidentity(); gltranslatef(0.0, 0.0, -3.0); y (0,,0) (0,0,-2) (,0,0) x (0,,-3) (,0,-3) Exempel Transformation 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(); Viktigt att komma ihåg: glpushmatrix pushar aktuellt koordinatsystem på stacken. glpopmatrix ersätter aktuellt koordinatsystem med det som finns överst på stacken. Animation och hierarkier Animation Modelviewmatris Projektionsmatris Perspektivdivision (x n, y n, z n ) = (x c / w c, y c / w c, z c / w c ) Viewporttransformation Uppdateringsmekanism Parametrar Rendering/ utritning OpenGL 2
3 Hierarkiska modeller Består-av-hierarki pivotpunkt Skelett Arm Överarm Underarm Lokala koordinatsystem Från hierarki till kod, steg 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, steg 2 void drawskeleton(void) { glpushmatrix(); positionera armens origo; drawarm(); glpopmatrix(); void drawarm(void) { glpushmatrix(); positionera överarmens origo; drawupperarm(); glpopmatrix(); glpushmatrix(); positionera underarmens origo; drawlowerarm(); glpopmatrix(); Transformation av delträd Ändra rotation här! void drawskeleton(void) { glpushmatrix (); positionera armens origo; drawarm (); glpopmatrix (); 3
4 Demo Animationstekniker param 0 = f 0 (t) param = f (t) Kända Animationstekniker Animationstekniker Keyframing Inverse Kinematics (param 0, param, ) = F(x, y, z) Definieras implicit Kända Ljussättning: Phongs reflektionsmodell Ambient Matt Phongmodellen i OpenGL Color = Ambient + + [ MatDiffuse LightDiffuse i (N L i ) + i + MatSpecular LightSpecular i (E H) Shininess ] Ekvationen evalueras tre ggr: R, G, B. Speglande E H R N L i H= (E + L i ) / E + L i är en approximation av reflektionsvektorn R. 4
5 Phongmodellen i OpenGL Ljussättning av hörn Ljuskälla Ambient RGBA Diffuse RGBA Ambient RGBA Hörnets material Diffuse RGBA Specular RGBA, shininess + Hörn RGBA Specular RGBA Hörnets normal Ögats position (= världsorigo) Färg beräknas i varje hörn och interpoleras sedan över polygonen (Goraud shading). Bra att komma ihåg om ljussättning Då ljussättning är aktivt har aktuell färg ingen effekt. OpenGL stöder minst 8 aktiva ljuskällor. En ljuskälla avger en viss mängd av varje ljustyp. Då ljuskällans position specificras multipliceras den med aktuell modelviewmatris. Demo Back face culling Back face culling 90 o > 90 o Kamera glenable(gl_cull_face); 5
6 Normalen? Rastrering Fram/baksida beräknas genom tecknet i a = 0.5 x i y i - x i y i, 0 i (n - ), i (i + ) mod n, (x i, y i ) fönsterkoordinater för hörn nr i, n = antal hörn i polygonen Operationer på hörn: RGBA, z w, texturkoord. Fragment Denna beräkning visar om hörnen ligger i medsols eller motsols ordning. Konventionen är att motsols är riktat mot kameran. Operationer på bildelement Texturminne Bilddataspecifikation Operationer på bildelement Två typer av bilddata: Bitmap - bit per pixel. Bild - max 32 bitar per pixel. Finns ingen filformatstolk, data hämtas från C-array. ( Byt plats på bytes i bilddata, delbilder Skalning & offset av bilddata, m.m. Processorminne Pixellagringslägen Pixeltransferoperationer Texturminne Bitmaps går direkt till rastreringen. Bilder går direkt till rastreringen eller lagras som texturdata (internt eller på grafikkortet). Rastrering (inkl. zoomning) Var ritas bilddata? Rita bild Aktuell rasterposition: glrasterpos2f(x, y); glrasterpos3f(x, y, z); glrasterpos4f(x, y, z, w); Då rasterpositionen anges transformeras den på samma sätt som övriga hörn. Jfr. position för ljuskällor! height gldrawpixels(width, height, format, type, const void *pixels); format R G B R G B R G B A R G B A R R R R (x w, y w, y w ) för aktuell rasterposition utgör origo för bilden/bitmapen. origo width type GL_UNSIGNED_BYTE GL_FLOAT 6
7 Texturer Texturer t s Demo MIP-maps Teknik för att undvika aliasing-problem vid texturförminskning. MIP-maps Filtrera ett antal texturer i förväg och lagra dem effektivt. Texturobjekt Filtreringsalternativ. Clamp/wrap-around för texturkoord. Texturobjekt Vid texturering väljs automatiskt den textur som passar bäst m.a.p. avstånd från kameran (om MIP-mapping är aktiverat). Texturkoordinat Texturappliceringsparametrar Texturkoordinater Rastrering 7
8 Texturobjekt Innehåller: Texturdata (texels). Information filter och texturkoordinatapplicering: gltexparameter Information om huruvida kopia av texturdata har laddats ned till grafikhårdvaran. Endast ett texturobjekt är aktivt! Förstoring och förminskning Textur FÖRSTORING Pixelpunkter på skärmen FÖRMINSKNING Pixelpunkter Textur på skärmen Alternativ: GL_NEAREST, GL_LINEAR, m.m. (Labbtips: GL_NEAREST_MIPMAP_LINEAR är default, men vi använder inte MIP-maps) Clamp/wrap around Texturdataspecifikation (s, t) = (.25, -2.75) t m GL_REPEAT GL_CLAMP origo n ram s (width, height) = (2 n + 2b, 2 m + 2b) där m, n är heltal 0, b = om texturen har ram, 0 annars. Texturdataspecifikation glteximage2d(gl_texture_2d, level, internalformat, width, height, border, format, type, const GLvoid *texels); level = MIP-mapnivå (= 0 på den här kursen) internalformat = internt lagringsformat (normalt = type) format, type som i gldrawpixels Observera att lagringslägen och transferoperationer även gäller texturer! Texturapplicering 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 = Kombinera texturdata med ljussättning/färg. OBS! LAGRAS INTE I TEXTUROBJEKT! 8
9 Texturkoordinater Texturkoordinater gltexcoord2f(s, t); gltexcoord3f(s, t, r); gltexcoord4f(s, t, r, q); Anges före glvertex (precis som för normaler). s' t' r' q' = T s t r q t glmatrixmode(gl_texture); Texturkartan indexeras sedan med (s'/q', t'/q'). r'/q' ignoreras normalt, men används vid 3D-texturering. s PPM-biblioteket #include <GL/glut.h> #include <ppm.h> GLuint tex; int main(int argc, char *argv) { float *texels; int w, h; w = ppmwidth( img.ppm ); h = ppmheight( img.ppm ); texels = ppmread( img.ppm, NULL); PPM-biblioteket glutcreatewindow( Win ); glgentextures(&tex, ); glteximage2d(, w, h,, texels); Programmet xv kan läsa/skriva PPM-bilder (gör module add graphics). På Windows: PaintShop Pro. Bufferttester Djupbuffert och djuptest Djuptest Färgbuffert Fragment = (R, G, B, A, djup, texturkoordinat) Färgbuffert Djupbuffert Fönster Fragment 9
10 Mer information om OpenGL Woo, Neider, Davis: The OpenGL Programming Guide, Addison Wesley Developer Press. Segal, Akeley: The OpenGL Graphics System: A Specification. Version.3. X-Windows och Win32 Kilgard, OpenGL Programming for the X Window System, Addison Wesley Developer Press. Fosner, OpenGL Programming for Windows 95 and Windows NT, Addison Wesley Developer Press. Problem? Gå till 0
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 merOpenGL-ö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 merAvalanche 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 merOpenGL. grafikbibliotek? Nackdelar med OpenGL. Fördelar med OpenGL. En introduktion till OpenGL. OpenGL. rdvara. Grafikhårdvara.
En introduktion till Gustav Taxén gustavt@nada.kth.se 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
Läs merVarfö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 merEn 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 merOpenGL 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 merShaders. 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 merShaders. 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 merSpelutveckling 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 merRTG-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 merI 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 merOpenGL, 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 merOpenGL, 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 merTransformationer 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 merRastrering 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 merOpenGL, 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 merGrafiska 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 merTransformationer. 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 merTentamen 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 merIn- 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 merTexturering - 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 merTentamen 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 merI 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 mer2D-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 merKurvor 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 merLaboration - 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 merFö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 merTDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12
TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 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.
Läs merÖ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 merProcedurell 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 merInformation 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 merDGI/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 merIntroduktion 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 merEnkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Läs merF5: 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 merTransformationer, Angel
GrIP vt9: Föreläsning - D-grafik Yngve Sundblad 9-- D-grafik Yngve Sundblad @kth.se 8-79747 Rum 46, Lindstedtsv.5, plan 6 (vid Torget) DH64 Grafik och Interaktionsprogrammering VT 9 Transformationer, Angel
Läs merDen 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 merF5: 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 merTeknik 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 merRealtidsalgoritmer 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 merProcedurell 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 merTeknik 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 merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Läs mer2 FRÅN VÄRLD TILL SKÄRM
Översikt FRÅN VÄRL TILL SKÄRM Magnus Bondesson 2--2, 2--8, 22--22, 22-3-7 et här pappret handlar om hur koordinaterna för ett objekt i en tredimensionell värld översätts till koordinater i ett tvådimensionellt
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merAtt prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.
Datateknik A, Syfte: Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Att läsa: Lektion 2 Uppgifter:
Läs merInformation 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 merInstitutionen 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 merRealism och hypermediering
D. P. Greenberg, A framework for realistic image synthesis, Communications of the ACM, 42(8), 1999, 44-53. Bildsyntes Lars Kjelldahl En del bilder lånad av Gustav Taxén Bildsyntesens mål Skapa bilder som
Läs merSkinning 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 merTDDC74 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 merTENTAMEN 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 merRealism och hypermediering
Bildsyntesens mål D. P. Greenberg, A framework for realistic image synthesis, Communications of the ACM, 42(8), 1999, 44-53. Bildsyntes, vt2009 Lars Kjelldahl En del bilder lånad av Gustav Taxén Skapa
Läs merProgrammering av grafisk display
Programmering av grafisk display Arbetsboken avsnitt 5 - Drivrutrin för grafisk display, uppg. 5.10-5.16. Datablad LCD Grafisk under resurser på kurshemsidan, s.14-23. Lab 3 - Drivrutiner - Enkel grafik
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock
Läs merDesigning 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 merGrafik 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 merInformation 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 merProgrammering av grafisk display
Programmering av grafisk display Arbetsboken avsnitt 5 - Drivrutrin för grafisk display, s. 86-96. Datablad LCD Grafisk under resurser på kurshemsidan, s.14-23. Lab 3 - Drivrutiner - Enkel grafik Lab 5
Läs merProgrammeringsteknik 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 merIntroduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public
Läs merRealtidsskuggalgoritmer 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 merUndersökande arbetssätt i matematik 1 och 2
Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg Del 6: Undersökande arbetssätt med matematisk programvara Undersökande arbetssätt i matematik 1 och 2 I texten Undersökande arbetssätt
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler
Läs merGrafik 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 merDatatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Läs merProcedurell 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 merPekare och arrayer. Indexering och avreferering
Pekare och arrayer En array är ett sammanhängande minnesområde rymmande ett antal element av en viss typ. Arraynamnet kan ses som adressen till arrayens början, dvs. dess första element. En pekare är en
Läs merÖversikt. Bildsyntesens huvudmålsättning. Ljusmodeller. Simulerat ljusspektra till datorskärm? Ljusspektra. En introduktion till bildsyntes
Översikt En introduktion till bildsyntes Gustav Taxén Centrum för användarorienterad IT-design gustavt@nada.kth.se Reflektionsmodell Bildsyntes Kameramodell, Tone mapping, Rastrering Bildelement / RGB-värden,
Läs merSNABBGUIDE för Windows Media Encoder (media kodaren) - Sänd live med din webbkamera
SNABBGUIDE för Windows Media Encoder (media kodaren) - Sänd live med din webbkamera Instruktionerna till denna kameraguide är en enkel kom igång guide. Grundkrav: En webbkamera som är kopplad till datorn
Läs merDemonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3
LCD Display och Grafik Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3 Målsättning: Efter lektionen ska alla självständigt kunna slutföra
Läs merProgrammera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Läs merModellering. Gustav Taxén
Modellering Gustav Taxén gustavt@csc.kth.se 2D1640 Grafik och Interaktionsprogrammering VT 2007 Kurvor / ytor Ett vanligt sätt att modellera är att använda kurvor/ytor. Ett sorts explicit sätt att skapa
Läs merRedovisas per e-post till senast fredag 16 februari kl Följande ska finnas med i redovisningen:
Laboration 2 Maya Syfte Erbjuder studenterna en möjlighet att lära sig grunderna i polygonmodellering, grunderna i animation (forward kinematics), samt erfarenhet av att använda ett modernt 3Dmodelleringsverktyg.
Läs merDagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler
21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse
Läs merGrafiska 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 merProgram Rubrik Beskrivning Åtgärd Datum Version
Novapoint GeoSuite Toolbox Se I tabellerna redovisas revisionshistorien för GeoSuite Toolbox. Revisionerna har publicerats i installationspaket enligt nedan. Installationspaket 1.0.27 Avinstallation av
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Läs merÖversikt. Bildsyntesens huvudmålsättning. Ljusmodeller. Simulerat ljusspektra till datorskärm? Ljusspektra. En introduktion till bildsyntes
Översikt En introduktion till bildsyntes Gustav Taxén Centrum för användarorienterad IT-design gustavt@nada.kth.se Reflektionsmodell Bildsyntes Kameramodell, Tone mapping, Rastrering Bildelement / RGB-värden,
Läs merUPG5 och UPG8 Miniprojekt 1: 2D datorgrafik
UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik I den här uppgiften studerar vi hur man kan använda sig av linjära avbildningar för att modifiera bilder i två dimensioner Mycket är repetition av vissa grundbegrepp
Läs merParameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
Läs merFöreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Läs merBé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 merDagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Läs merModeller. Modeller, animering och fraktaler. Lokala koordinatsystem. Abstraktion. Hierarkiska koordinatsystem. Består-av -hierarki
Modeller, animering och fraktaler Modeller Final Fantasy The Spirits Within Square/Columbia Pictures, 2001. Gustav Taxén CID gustavt@nada.kth.se Modell = samling av grafikprimitiver Abstraktion Ofta finns
Läs merTips och tricks 1 Cadcorp SIS 5.2 2003-03-03
Tips och tricks 1 Cadcorp SIS 5.2 2003-03-03 Skapa en raster pensel från en Windows bakgrund (1) 1. Kontrollera att Paper är uppsatt som koordinatsystem/projektion 2. Öppna en Bitmap fil i ett tom fönsterfil
Läs merSimulering 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 merProgrammering i C++ EDA623 Typer. EDA623 (Föreläsning 4) HT / 33
Programmering i C++ EDA623 Typer EDA623 (Föreläsning 4) HT 2013 1 / 33 Typer Innehåll Heltalstyper Flyttalstyper Pekare Minnesallokering Funktionspekare Typdeklarationer med typedef Typomvandlingar (casting)
Läs merHä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 merSpelutveckling - 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 merTNM022 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 merOptisk bänk En Virtuell Applet Laboration
Optisk bänk En Virtuell Applet Laboration Bildkonstruktion med linser. Generell Applet Information: 1. Öppna en internet läsare och öppna Optisk Bänk -sidan (adress). 2. Använd FULL SCREEN. 3. När applet:en
Läs mer3.0. Tips och Trix Sida 1 av 18
3.0 https://beta.scratch.mit.edu/ Tips och Trix 2018-08-31 Sida 1 av 18 Innehåll Starta nytt program 3 Scenens koordinatsystem 3 Centrumpunkt / rotationspunkt 4 Sprajtens inställningar 5 Placering i Z-led
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
Läs merAtt 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 merI Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Läs merGeometry shaders! och Tesselation shaders!
5(91) Information Coding / Computer Graphics, ISY, LiTH Geometry shaders och Tesselation shaders Ytterligare shadersteg i geometristeget i OpenGLpipelinen Kan modifiera, lägga till och ta bort geometri
Läs merSgLib 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 merProgrammering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Läs mer