Shaders. Gustav Taxén
|
|
- Hans Håkansson
- för 6 år sedan
- Visningar:
Transkript
1 Shaders Gustav Taxén 2D1640 Grafik och Interaktionsprogrammering VT 2007
2 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 v, ta reda på vilken färg P ska ha.
3 Fixed-function function-pipelines CPU Application Graphics hardware Per-vertex operations Primitive assembly Rasterization Per-fragment operations Framebuffer
4 Programerbara pipelines CPU Application Graphics hardware Programmable vertex processor Primitive assembly Rasterization Programmable fragment processor Framebuffer
5 Vertexprocessorer Vertex-program Vertex-position, Normal, Texture coords, RGBA, Egen data Vertexprocessor Matriser, Positioner för ljuskällor, Materialparametrar, Blandningsfaktorer, Egen data Vertex-position, Normal, Texture coords, RGBA
6 Vertexprocessorer n v t T = transmission_vector(n,v); (s,t) = to_background_tex_coord(t); color = texture_lookup(s,t);
7 Fragmentprocessorer Fragmentprogram Vertex-position, Texture coords, RGBA Fragmentprocessor RGBA Depth Matriser, Positioner för ljuskällor, Materialparametrar, Blandningsfaktorer, Egen data
8 Fragmentprocessorer Ctex = texture_lookup("wall",s,t); Ntex = tex_lookup("normal_map",s,t); color = Ctex * dot(ntex, L);
9 Syntax-exempel D3D Vertex Shader Assembler dp3 r7.w, VECTOR_VERTEXTOLIGHT, VECTOR_VERTEXTOLIGHT rsq VECTOR_VERTEXTOLIGHT.w, r7.w dst r7, r7.wwww, VECTOR_VERTEXTOLIGHT.wwww mul r6, r5, ATTENUATION.w OpenGL Vertex Program Assembler MOV R1, R2.yzwx; MUL R1.xyz, R2, R3; ADD R1, R2, -R3; RCP R1, R2.w;
10 nvidia Cg struct app2vert : application2vertex { float3 Position; //in object space float3 Normal; float2 TexCoord; }; struct vert2frag : vertex2fragment { float4 HPosition; // in projection space float4 TexCoord0; }; vert2frag main(app2vert IN, uniform float4x4 ModelViewProj, uniform float4x4 TexTransform) { vert2frag OUT; float4 HPosition; HPosition.xyz = IN.Position; HPosition.w = 1.0; OUT.HPosition = mul (HPosition, ModelViewProj); OUT.TexCoord0 = mul (HPosition, TexTransform); return OUT; }
11 Andra alternativ Microsoft DirectX9 / DirectX10: High-Level Shading Language (HLSL) OpenGL 2.0: OpenGL Shading Language HLSL är r i princip ekvivalent med Cg GLSL skiljer sig inte alltför r mycket
12 Vi är mitt i en revolution... Vertexprogram och fragmentprogram kan skrivas i ett enda språk k och kompileras till OpenGL och Direct3D Högnivåshaders med loopar m.m. kan användas ndas direkt i realtidsapplikationer Designers och formgivare kan exportera sina Maya/3DSMax /3DSMax-material direkt till hårdvaran
13 Realtidsgrafik idag
14 Cg och OpenGL RGB, Texturkoord Interpolerade RGB, Texturkoord Geometri ("Varying") Rastrering Vertexprogram Fragmentprogram RGB "Uniform"- parametrar "Uniform"- parametrar
15 Cg och OpenGL Vertexprogram ersätter OpenGLs transformation- och ljussättningssteg Fragmentprogram ersätter (delvis) OpenGLs "operationer på fragment" Så vi måste sköta transformationer, färgblandning och texturkombinationer själva lva!
16 Cg profiles Olika grafikkort har olika funktionalitet Man kan kompilera Cg-program för olika typer av grafikkort, s.k.. profiler ("profiles profiles") Fråga grafikkortet vilken profil som stöds
17 Vertexprogram Indata per hörn ("varying varying"): Position (måste( alltid finnas) Normal Texturkoordinater Färg Användardefinierade ndardefinierade parametrar (skalär,, 2-, 2, 3-, 3, 4-4 vektor) (Och lite annat också) Fasta parametrar: samma värde under hela exekveringen ("uniform uniform")
18 Vertexprogram Varying Primitiver: glbegin() - glend() Position (x, y, z, w) Normal (x, y, z) Texturkoord (s, t) Färg (r, g, b, a) Uniform Modelviewmatris Projektionsmatris... Vertexprogram Utdata
19 Fragmentprogram Indata till fragmentprogrammet måste vara samma som utdata från vertexprogrammet (+ ev.. uniform-parametrar parametrar) Fragmentprogram måste ha en färg (RGBA) som utdata
20 Multitexturing RGBA från ljussättning (eller glcolor) RGBA från textur 0 Texture Unit 0 RGBA från textur 1 Texture Unit 1...
21 Texturkoordinater som indata Multitexturing har ingen effekt i en programmerbar pipeline Texturkoordinater är 4D-vektorer! Så man utnyttjar texturkoordinaterna för att skicka varying-data! Till vertex-program och mellan vertex- och fragment-program
22 Att köra Cg-program (OpenGL) Skapa en kontext där programmen lagras Välj profile Kompilera (eller hämta från binärfil rfil) Aktivera en profil och ett program Knyt parametrar Rita geometrin
23 Exempel Vi skriver ett par enkla cg-program "live".
24 Phong + Phong shading Ljuskälla h n l Hörn Kamera c = l col (k d (n l) + k s (n h) shininess )
25 Phong + Phong shading: Vertexprogram Varying: Position Normal Materialparametrar (Kd, Ks) Uniform: Modelview-matrisen och projection-matrisen Modelview-matrisen Inv. transp. av modelview-matrisen matrisen
26 void main(float4 Pobject : POSITION, float3 Nobject : NORMAL, float3 diffuse : TEXCOORD0, float3 specular : TEXCOORD1, uniform float4x4 ModelViewProj, uniform float4x4 ModelView, uniform float4x4 ModelViewIT, Indata { } out float4 HPosition : POSITION, out float3 Peye : TEXCOORD0, out float3 Neye : TEXCOORD1, out float3 Kd : COLOR0, out float3 Ks : COLOR1) Utdata HPosition = mul(modelviewproj, Pobject); Peye = mul(modelview, Pobject).xyz; Neye = mul(modelviewit, float4(nobject, 0)).xyz; Kd = diffuse; Ks = specular;
27 Indata float4 Pobject : POSITION Datatyp (Här: 32-bit 4D-vektor) Parameternamn Hur Cg ska tolka parametern ("binding semantics") POSITION Position NORMAL Normal TEXCOORD0 Texturkoord för enhet 0 TEXCOORD1 Texturkoord för enhet 1... COLOR eller COLOR0 RGB(A)-färg m.fl.
28 Utdata out float4 HPosition : POSITION Anger utdata Datatyp Parameternamn Binding semantics POSITION eller HPOS Position (homogena koordinater) TEXCOORD0 Texturkoord för enhet 0 TEXCOORD1 Texturkoord för enhet 1... COLOR0 RGB(A)-färg m.fl.
29 Programkod { } HPosition = mul(modelviewproj, Pobject); Peye = mul(modelview, Pobject).xyz; Neye = mul(modelviewit, float4(nobject, 0)).xyz; Kd = diffuse; Ks = specular; Skicka vidare Kd och Ks till fragmentprogrammet Modelview Projection Objektkoord för hörnet Hörnets ögonkoord (Modelview -1 ) T Nobject = hörnets normal cgglsetstatematrixparameter() används i OpenGL-koden för att koppla matriserna till Cg-parametrar
30 Phong + Phong shading: Fragmentprogram Varying: Vertexposition i ögonkoordinater Normal i ögonkoordinater Kd och Ks Uniform: Ljuskällans position i ögonkoordinater Ljuskällans färg (RGB) Shininess
31 half diffuse(half4 l) { return l.y; } half specular(half4 l) { return l.z; } half4 main(float3 Peye : TEXCOORD0, half3 Neye : TEXCOORD1, half2 uv : TEXCOORD2, half3 Kd : COLOR0, half3 Ks : COLOR1, uniform float3 Plight, uniform half3 lightcolor, uniform half3 shininess) : COLOR { half3 N = normalize(neye); half3 L = normalize(plight - Peye); half3 V = normalize(-peye); half3 H = normalize(l + V); half NdotL = dot(n, L), NdotH = dot(n, H); half4 lighting = lit(ndotl, NdotH, shininess); half3 C = lightcolor * (diffuse(lighting) * Kd + specular(lighting) * Ks); return half4(c, 1); }
32 Indata och utdata half4 main(...) 16-bitars 4D-vektor (tolkas automatiskt som RGBA för fragmentprogram)
33 Programkod half3 N = normalize(neye); half3 L = normalize(plight - Peye); half3 V = normalize(-peye); half3 H = normalize(l + V); Normera normalen Beräkna vektorn H (och normera den)
34 Programkod (forts) half diffuse(half4 l) { return l.y; } half specular(half4 l) { return l.z; } Hjälpfunktioner (se nedan) half NdotL = dot(n, L), NdotH = dot(n, H); (N L) och (N H) half4 lighting = lit(ndotl, NdotH, shininess); half3 C = lightcolor * (diffuse(lighting) * Kd + specular(lighting) * Ks); return half4(c, 1); x-värdet: 1 y-värdet: (N L) om > 0, annars 0 z-värdet: (N H) shininess om > 0, annars 0 w-värdet: 0 RGBA (A är normalt 1)
35 Resultat
36 Texturer Skapa texturobjekt i OpenGL (som( vanligt) Uniform-parametrar i fragmentprogrammet Koppla aktivt OpenGL-texturobjekt till Cg- parameter med kommandot cgglsettextureparameter() Aktivera texturering med cgglenabletextureparameter()
37 Texturer (forts) half4 main(float3 Peye... half2 uv } : TEXCOORD0, : TEXCOORD2,... uniform sampler2d diffusemap,... uniform half3 shininess) : COLOR) {... half3 C = lightcolor * (diffuse(lighting) * Kd * (half3)tex2d(diffusemap, uv).xyz + specular(lighting) * Ks);... tex2d(diffusemap, uv) ger RGBA för texturen på position uv. Detta tolkas om som en 16-bits 3D-vektor (RGB): x, y och z tas med.
38 Demo
39 Mer info
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
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
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
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.
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
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
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
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
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:
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
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
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
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?
Geometry 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
LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer
LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska
CG C för Grafik. Fredrik Bärg Institutionen för Informationsbehandling Åbo Akademi, FIN Åbo, Finland E-post:
CG C för Grafik Fredrik Bärg Institutionen för Informationsbehandling Åbo Akademi, FIN-20520 Åbo, Finland E-post: fbarg@abo.fi Abstrakt Nvidia Corporation har nyligen släppt ett nytt språk för att förflytta
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
Geometry shaders! och Tesselation shaders!
6(87) Geometry shaders och Tesselation shaders Ytterligare shadersteg i geometristeget i OpenGLpipelinen Kan modifiera, lägga till och ta bort geometri Kan mata ut andra sorters geometri än vad som matas
OpenGL. 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
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
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
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
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
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
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
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
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
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
3D-texturmaterial med hjälp av Cg 3D materials with Cg
3D-texturmaterial med hjälp av Cg 3D materials with Cg Niklas Ottosson Madeleine Gusdal EXAMENSARBETE 2003 Institutionen för data- och elektroteknik Department of computer and electronic engineering Examinator
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
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
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
Texturmappningsalgoritmer
Institutionen för kommunikation och information Examensarbete i datalogi, 20 poäng C-nivå Vårterminen 2006 Texturmappningsalgoritmer Jämförelse mellan Normal-mapping, Parallaxmapping och Relief-mapping
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
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
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å
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
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
Abstrakta shadergrafer för hårdvarushaders med multipla shaderspråk Richard Svensson
Institutionen för kommunikation och information Examensarbete i datavetenskap 30hp C-nivå Vårterminen 2008 Abstrakta shadergrafer för hårdvarushaders med multipla shaderspråk Richard Svensson Abstrakta
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
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
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
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
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
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å
Vector Displacement Mapping
Thesis no: BCS-2014-02 Vector Displacement Mapping En Prestandajämförelse med Displacement Mapping i Realtid Emrik Lundström Faculty of Computing Blekinge Institute of Technology SE-371 79 Karlskrona,
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
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
Datorarkitekturer med operativsystem ERIK LARSSON
Datorarkitekturer med operativsystem ERIK LARSSON Semantic gap Alltmer avancerade programmeringsspråk tas fram för att göra programvaruutveckling mer kraftfull Dessa programmeringsspråk (Ada, C++, Java)
Introduktion 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
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
Institutionen för systemteknik
Institutionen för systemteknik Department of Electrical Engineering Examensarbete Signal- och bildbehandling på moderna grafikprocessorer Examensarbete utfört i Bildkodning vid Tekniska högskolan i Linköping
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
Föreläsning 2 Programmeringsteknik och C DD1316
Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer
Assemblerprogrammering för ARM del 3
Assemblerprogrammering för ARM del 3 Ur innehållet Fält och sammansatta typer (poster) Pekarvariabler och pekarkonstanter Pekararitmetik, operationer på fält Läsanvisningar: Arbetsbok kap 2 Quick-guide,
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
Introduktion till MATLAB, med utgångspunkt från Ada
Introduktion till, med utgångspunkt från Desktop-miljö som innefattar editor, kommandofönster, graffönster och mycket mer. Interpreteras Snabbt att testa kommandon Terminal + emacs + gnatmake Kompileras
Transformationer, 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
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.
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
Realtids-strålföljning med geometriska primitiver på programmerbara grafikprocessorer (HS-IDA-EA )
Realtids-strålföljning med geometriska primitiver på programmerbara grafikprocessorer (HS-IDA-EA-03-114) Peter Mattsson (a00petma@student.his.se) Institutionen för datavetenskap Högskolan i Skövde, Box
Fö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
C-Uppsats i Datavetenskap. Skinning på GPUn. Med dubbel kvaternioner. Författare: Björn Overå Handledare: Martin Blomberg Termin: VT12 Kurskod: 2DV40E
C-Uppsats i Datavetenskap Skinning på GPUn Med dubbel kvaternioner Författare: Björn Overå Handledare: Martin Blomberg Termin: VT12 Kurskod: 2DV40E 22 Abstract The goal with the project was to investigate
Matematisk Modellering
Matematisk Modellering Föreläsning 1 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/37 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk
Kompilering 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
MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»
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
Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
Objektorienterad 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
IS1200 Datorteknik. Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1
IS1200 Datorteknik Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1 1 4.1 Little och big endian 2 Nios II? Nios II är Little-endian (men eftersom det är en soft-processor
Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
2D1342 Programkonstruktion för F1, ht 2006
2D1342 Programkonstruktion för F1, ht 2006 Lappskrivning 1 Tisdag 7/11 2006 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
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ågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre
Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel
Algebra och Geometri SF1624
Algebra och Geometri SF1624 Agenda 28/8/2017: 1 Information om kursen 2 vektorer Sandra Di Rocco dirocco@kth.se professor, institution för Matematik https://people.kth.se/~dirocco/ Webbsida: Canvas logga
Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?
Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2015 2014 jonas.kvarnstrom@liu.se
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
I 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
5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och
LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I
LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I Vt 2002 Mål: Lära sig: Filhantering Stränghantering Vektorer Funktioner Programstruktur Tid: Läroboken: 6 timmars handledd laborationstid. Beräknad klar
Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström
DST 1 Nicholas Wickström IDE, Högskolan i Halmstad 2009 1 Outline 1 Vad är Hårdvara? (Datorsystemmodell; processor m. periferi, IO, Minne) Typiskt för hårdvarunära programmering (datablad, register, datastrukturer,...)
Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.
Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg
2D1339 Programkonstruktion för F1, ht 2004
2D1339 Programkonstruktion för F1, ht 2004 Kontrollskrivning 1 Onsdag 24/11 2004 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
Transparens i en deferred pipeline Stefan Hanna
Institutionen för kommunikation och information Transparens i en deferred pipeline Stefan Hanna Examensarbete i datalogi med inriktning mot dataspelsutveckling 30 hp C-nivå, vårterminen 2010 Transparens
Mönsterigenkänning och följning Digitala projekt VT 2004 Carl Loodberg, grupp 10
Mönsterigenkänning och följning Digitala projekt VT 2004 Carl Loodberg, d00cl@efd.lth.se, grupp 10 Abstract The goal of this project is to construct a system capable of localizing a designated pattern
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
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)
Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647
Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel
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
Shader Shader. Shader 4.1
d d 3 9 Shader Shader ( Shader ) ) ) ) ) 4.1 S 4.1 4.2 p p 4.2 Cartesian Coordinate System René Descartes 4.2 f t g V o X 41 4.2 4.3 x y 4.3 x y 30 x y 2.3.4 OpenGL DirectX 4.4 f 1, 2 1 3 4.5 1 C./ - 8
Projekt i TNM084, Procedurella bilder
Projekt i TNM084, Procedurella bilder Inledning Kursen TNM084, Procedurella Bilder innehåller ett examinerande projekt. Målet med projektet är att utöka förståelsen för hur man kan producera syntetiska
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel
732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public
Introduktion till MATLAB
29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna
Programmera 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
Parallellism i NVIDIAs Fermi GPU
Parallellism i NVIDIAs Fermi GPU Thien Lai Phu IDA2 Abstract This report investigates what kind of computer architecture, based on Flynn s taxonomy, is used on NVIDIAs Fermi-based GPU to achieve parallellism
Displaysystem. Hans Brandtberg Saab Avitronics SAAB AVITRONICS 03-10-06
Displaysystem Hans Brandtberg Saab Avitronics Applikation Drivrutiner (OpenGL) Displaysystem Människa-maskin egenskaper -Kunna förstå och arbeta med information -Kunne se och uppfatta det som visas
Assemblerprogrammering, ARM-Cortex M4 del 3
Assemblerprogrammering, ARM-Cortex M4 del 3 Ur innehållet: Fler pekartyper Användning av stacken Lagringsklasser, synlighet - lokala variabler Funktioner - returvärden och parametrar Läsanvisningar: Arbetsbok
Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar
1 Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan arkitektur), hårdvara osynlig Assembly- och maskinprogram:
2D1339 Programkonstruktion för F1, ht 2003
2D1339 Programkonstruktion för F1, ht 2003 Kontrollskrivning 1 Onsdag 19/11 2003 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga