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

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

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

En introduktion till OpenGL. Gustav Taxén

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

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

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

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

OpenGL AGI HT05. Gustav Taxén

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

Grafiska pipelinen. Edvin Fischer

Rastrering och displayalgoritmer. Gustav Taxén

Transformationer i 3D. Gustav Taxén

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

Shaders. Gustav Taxén

Tentamen TNM061, 3D-grafik och animering för MT2. Tisdag 3/ kl 8-12 TP51, TP52, TP54, TP56, TP41, TP43. Inga hjälpmedel

RTG-formatet Gustav Taxén,

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

2D-grafik. Gustav Taxén

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

Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel

Grafiska pipelinens funktion

Kurvor och ytor. Gustav Taxén

Procedurell renderingsmotor i Javascript och HTML5

Information Coding / Computer Graphics, ISY, LiTH

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

Procedurell grottgenerator och eld i GLSL. Marcus Widegren

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

1 som går genom punkten (1, 3) och är parallell med vektorn.

Spelutveckling - Scenegrafer. Scenegrafer Optimeringar Culling

OpenGL, Maya och specialeffekter

Procedurell Terräng med LOD i OpenGL 4

OpenGL, Maya och specialeffekter

Laboration - Shaders

OpenGL, Maya och specialeffekter

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.

Skinning and Animation

Bézierkurvor och parametriska objektrepresentationer

Realism och hypermediering

Realism och hypermediering

Översikt. Bildsyntesens huvudmålsättning. Ljusmodeller. Simulerat ljusspektra till datorskärm? Ljusspektra. En introduktion till bildsyntes

Grafik raytracing. Mattias Axblom.

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Bemästra verktyget TriBall

Projekt i TNM084, Procedurella bilder

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

Hemtenta i Grafik och Interaktionsprogrammering Martin Berglund Uppgift 1 Föreläsning 1 Föreläsning 2 föreläsning 3 föreläsning 4

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

TNM022 Proceduella Bilder Rendering av proceduell päls i realtid

Koordinatsystem och Navigation

Designing a Shading System. David Larsson

Innehåll. Kamerabaserad interaktion Del 3 3D och AR. Världen genom datorn. Vad är AR? AR vs. VR. Potential

Modellering. Gustav Taxén

Transformationer, Angel

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

Modul 1: Komplexa tal och Polynomekvationer

Robotarm och algebra

Linjär Algebra M/TD Läsvecka 2

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

UPPSALA UNIVERSITET Matematiska institutionen Styf. Exempeltenta med lösningar Programmen EI, IT, K, X Linjär algebra juni 2004

Bemästra verktyget TriBall

Översikt. Bildsyntesens huvudmålsättning. Ljusmodeller. Simulerat ljusspektra till datorskärm? Ljusspektra. En introduktion till bildsyntes

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

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

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

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

Procedurell 3D-eld på grafikkortet

Innehållsförteckning

En jämförande studie mellan Mental Ray och V-Ray

Allmänt maya. Mayaföreläsning. Exempel, lab. Verktygslådan maya. Klara kyrka. Gränssnittet. DGI/Media 2005

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Provtentamen i Matematik 2, 5B1116, för B,E,I,IT,M,Media och T, ht 2001

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.

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

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

Fotorealistisk 3D Datorgrafik

PLANERING MATEMATIK - ÅK 7. Bok: X (fjärde upplagan) Kapitel : 5 Geometri Kapitel : 6 Bråk och procent. Elevens namn: Datum för prov HÄLLEBERGSSKOLAN

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

SKRIVNING I VEKTORGEOMETRI

Modeller. Modeller, animering och fraktaler. Lokala koordinatsystem. Abstraktion. Hierarkiska koordinatsystem. Består-av -hierarki

x f (x) dx 1/8. Kan likhet gälla i sistnämnda relation. (Torgny Lindvall.) f är en kontinuerlig funktion på 1 x sådan att lim a

Geometry shaders! och Tesselation shaders!

TANA17 Matematiska beräkningar med Matlab

F5: Högnivåprogrammering

Bildsyntesens mål. Realism. Realism. Realism och hypermediering. Bildsyntes. att. från fotografier.

F5: Högnivåprogrammering

Lektion 7, del 1, kapitel 15 Filter och Transformationer

Geometry shaders! och Tesselation shaders!

Bildsyntesens mål. från fotografier. llor reflekteras av ytor. t.ex. simulerad kamerafilm). datorskärm. rm).

Affina avbildningar och vektorgrafik

Omtentamen TNM077, 3D datorgrafik och animering (samt även TNM008, 3D datorgrafik och VR)

Rotation Rotation 187

Grafik. Tidig datorgrafik. Plottern (1950-talet) Datorgrafik idag. Bildelement. En introduktion till bildsyntes. Gustav Taxén

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

Datastrukturer och Algoritmer D0041D

Extramaterial till Matematik Y

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

TAIU07 Matematiska beräkningar med Matlab

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

1 Find the area of the triangle with vertices A = (0,0,1), B = (1,1,0) and C = (2,2,2). (6p)

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

Transkript:

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 Research Lead gustav.taxen@avalanchestudios.se www.avalanchestudios.se Utvecklar Just Cause 2 samt tre andra projekt Våra spel Vår teknik Stora, öppna spelvärldar Sandbox-gameplay Hög audiovisuell standard Multiplatform PlayStation 3 XBox 36 PC Egenutvecklad spelmotor R&D genomsyrar hela företaget Task force-team Nära forskningsfronten Samarbeten med universitet och högskolor Sök exjobb och jobb hos oss! jobs@avalanchestudios.se Lite inspiration...

3D-grafiksystem Översikt över OpenGL Geometri Projektion Transformation Parametrar OpenGL + Fragment Modell Översikt över OpenGL Översikt över OpenGL Fönster- system Parametrar (ändras när det behövs vs) Meddelande: Behov av omritning Fragment Applikation OpenGL Geometri (skickas vid varje omritning) Renderingspipeline Fragment Trans- formation Geometri- specifikation Projek- tion Rast- rering Operationer på fragment - parametrar Modelview- matris Projektions- matris Inställningar förf tester Översikt över OpenGL Transformationer Geometri Operationer på hörn Fragment shader Transformation Vertex shader Rastrering Operationer på fragment Objektkoord. Ögonkoord. Projektion Bilddata Operationer på bildelement Framebuffer, Hjälpbuffertar Transformation - minne Viewport- transformation Objektkoord. Fönsterkoord. 2

Enpunktsperspektiv Kameran i OpenGL x eye Brook Taylor, New Principles of Linear Perspective, 79. y obj [.5 ] Obj Eye p eye = M p obj z obj x obj Om M är enhetsmatrisen... Om C är en translationsmatris... [.5 ] [.5-3] x eye x eye y obj [.5 ] p eye = I p obj = p obj y obj [.5 ] T = 3 z obj x obj z obj x obj p eye = T p obj Sammansatta transformationer x eye y obj [.5 ] z obj x obj T = [ -.5-3] = T2 p eye = T 2 (T p obj ) = (T 2 T ) p obj 3 I T [.5 ] T 2 T 3

p eye = T [ ] (R 45 p obj ) p eye = M p obj p eye M styr var punkten p obj hamnar i världen p obj R 45 T [ ] Hamnar den framför kameran (i klippvolymen) syns den p eye I OpenGL kallas M modelview matrix R 45 T [ ] Transformation är ekvivalent med byte av koordinatsystem! Kameraplacering Transformationer i OpenGL Matrisstack Matrisstack Objektkoord. Ögonkoord. Klippkoord. 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 Flytta kameran är som att flytta världen fast med en invers transformationsmatris! x w y w z w Fönsterkoord. Perspektiv- division Viewport- transformation x n y n z n Normerade enhetskoord. Operationer på fragment Djuptest Ett antal tester Avgör om fragmentet ska skickas till bildbufferten Genomförs alltid i samma ordning Ordningen är definierad i OpenGL-specifikationen Djupbuffert Bildbuffert Fönster Borttagning av skymda ytor, dynamiska skuggor, specialeffekter, m.m. Fragment 4

Djuptest (Z-buffring) Animation och dubbelbuffring.2.9.95..97.8.23 >.97 <.8 <.23.2.9.95..97.8.23 DEMO Hierarkiska modeller Pivotpunkt Består-av-hierarki Lokala koordinatsystem Skelett... Subnodens origo positioneras m.a.p. förälderns koordinatsystem. Arm Överarm Underarm 5

Från hierarki till kod Från hierarki till kod Överarm Skelett Arm Underarm void drawskeleton(void) { drawarm(); void drawarm(void) { drawupperarm(); drawlowerarm(); void drawupperarm(void) { void drawlowerarm(void) { void drawskeleton(void) { positionera armens origo; drawarm(); void drawarm(void) { positionera överarmens origo; drawupperarm(); positionera underarmens origo; drawlowerarm(); Från hierarki till kod Från hierarki till kod glmatrixmode(gl_modelview); glloadidentity(); Ändra rotation här! void drawskeleton(void) { glpushmatrix (); positionera armens origo; drawarm (); glpopmatrix (); gltranslatef(modellens position); rita torso; gltranslatef(pivotpunkt för överarmen); glrotatef(grader, rotationsaxel); rita överarmen; gltranslatef(pivotpunkt för underarmen); glrotatef(grader, rotationsaxel); rita underarmen; Animation Demo - forward kinematics Uppdateringsmekanism Parametrar Rendering/ utritning Transformationer baserade på parametrarna OpenGL param = f (t) param = f (t)... Kända 6

Ljussättning Phongs reflektionsmodell Goraud shading Ambient (Allmänljus) N + Diffuse (Matt reflektion) N + Specular (Highlights) R N Färg beräknas i varje hörn och interpoleras sedan linjärt över polygonen. Normaler måste anges före varje hörn! Back face culling Back face culling 9 o > 9 o Kamera Fram- eller baksida? Rastrering "Översätter" från hörn till pixelpunkter Ett fragment består av Definieras av hörnens h ordning sett från n kameran. Konventionen är r att motsols är r riktat mot kameran. Position: (x, y, z) i normerade enhetskoordinater Färg: (R, G, B, A) koordinater: (s, t, q, r) 7

er koordinater koordinat t s MIP-mapping MIP-mapping Teknik för att undvika aliasing-problem. Förstoring och förminskning Filtreringsalternativ Pixelpunkter på skärmen Pixelpunkter på skärmen Texelstorlek = pixelstorlek (inträffar i princip aldrig) Förstoring Pixelpunkter på skärmen Förminskning Pixelpunkter på skärmen 8

Clamp / repeat Bilddata: Texels (s, t) = (.25, -2.75) t Repeat Clamp m s origo n (width, height) = (2 n, 2 m ) där m, n är heltal Bilddata: Format och datatyper DEMO Format R G B R G B... R G B A R G B A... R R R R...... Datatyp GL_UNSIGNED_BYTE GL_FLOAT... gustav.taxen@avalanchestudios.se jobs@avalanchestudios.se www.avalanchestudios.se 9