TSBK 10 Teknik för avancerade datorspel Fö 10: Nätverk, Peter Johansson, ISY

Relevanta dokument
TBSK03 Teknik för avancerade Datorspel 49(68)

T BSK03 Teknik för avancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

TBSK03 Teknik för avancerade Datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

Skinning and Animation

Transformationer i 3D. Gustav Taxén

Innehåll. Referenssystem. Matriser. Rotationsmatrisen. Euler angle. Animering av ett objekts rotation

15 september, Föreläsning 5. Tillämpad linjär algebra

TBSK 03 Teknik för avancerade datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

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

Självkoll: Ser du att de två uttrycken är ekvivalenta?

Robotarm och algebra

Analys o Linjär algebra. Lektion 7.. p.1/65

14 september, Föreläsning 5. Tillämpad linjär algebra

e = (e 1, e 2, e 3 ), kan en godtycklig linjär

2s + 3t + 5u = 1 5s + 3t + 2u = 1 3s 3u = 1

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

Kvaternioner algebraiska och geometriska aspekter

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.

Övningar. MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Avd. Matematik. Linjär algebra 2. Senast korrigerad:

Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta

Explorativ övning 7 KOMPLEXA TAL

Övningar. c) Om någon vektor i R n kan skrivas som linjär kombination av v 1,..., v m på precis ett sätt så. m = n.

Enhetsvektorer. Basvektorer i två dimensioner: 1 1 Basvektorer i tre dimensioner: Enhetsvektor i riktningen v: v v

3D: transformationer:

Begrepp:: Kort om Kryssprodukt

Linjära avbildningar. Låt R n vara mängden av alla vektorer med n komponenter, d.v.s. x 1 x 2. x = R n = x n

TBSK 03 Teknik för Advancerade Datorspel

Geometriska vektorer

1 Ortogonalitet. 1.1 Skalär produkt. Man kan tala om vinkel mellan vektorer.

TAIU07 Matematiska beräkningar med Matlab

SF1624 Algebra och geometri Tentamen med lösningsförslag onsdag, 11 januari 2017

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

(d) Mängden av alla x som uppfyller x = s u + t v + (1, 0, 0), där s, t R. (e) Mängden av alla x som uppfyller x = s u där s är ickenegativ, s 0.

TAIU07 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab

Vektorgeometri för gymnasister

Gripenberg. Mat Grundkurs i matematik 1 Tentamen och mellanförhörsomtagning,

Mer om geometriska transformationer

Fredrik Lindsten Kontor 2A:521, Hus B, Reglerteknik Institutionen för systemteknik (ISY)

Doktorandkurs i flera komplexa variabler, vt 2010

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

FK Kvantfysikens principer, Fysikum, Stockholms universitet Tentamensskrivning, onsdag 21 december 2016, kl 17:00-22:00

1 Linjära ekvationssystem. 2 Vektorer

Innehåll. 1 Linjärt ekvationssystem (ES) 5. 2 Grundläggande algebra 13

Ordinarie tentamen i Mekanik 2 (FFM521)

SF1624 Algebra och geometri

Komplexa tal. Sid 1: Visa att ekvationerna på sid 1 saknar reella lösningar genom att plotta funktionerna.

Linjär algebra på några minuter

SF1624 Algebra och geometri

KTH, Matematik. Övningar till Kapitel , 6.6 och Matrisframställningen A γ av en rotation R γ : R 2 R 2 med vinkeln γ är

1.15 Uppgifter UPPGIFTER 21. Uppgift 1.1 a) Visa att transformationen x i = a ikx k med. (a ik ) =

1. (a) Bestäm alla värden på c som gör att matrisen A(c) saknar invers: c 1

Linjär algebra I, vt 12 Vecko PM läsvecka 4

Matematisk statistik för D, I, Π och Fysiker

Norm och QR-faktorisering

Markovprocesser SF1904

Mer om analytisk geometri

LINJÄR ALGEBRA II LEKTION 6

Markovprocesser SF1904

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht Block 5, översikt

Övningshäfte 2: Komplexa tal

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

Dagens ämnen. Linjära ekvationssystem: Successiv elimination Vektorer Definitionen Grundläggande räkneoperationer Bas och koordinater Ortsvektorer

Övningshäfte 2: Komplexa tal (och negativa tal)

Hurwitz 1, 2, 4, 8-sats

Approximation av funktioner

Explorativ övning Vektorer

SF1624 Algebra och geometri Lösningsförslag med bedömningskriterier till kontrollskrivning 2 Fredagen den 28 januari, 2011

Nät med flera länkar. Vägval. Enklaste formen av kommunikation:

Prestanda och skalbarhet

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna

Linjär Algebra, Föreläsning 9

Vektorgeometri. En vektor v kan representeras genom pilar från en fotpunkt A till en spets B.

TANA17 Matematiska beräkningar med Matlab

Vektorer, matriser, nätverk - några elementa

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll Lay, kapitel , Linjära ekvationer i linjär algebra

Chalmers tekniska högskola EDA390 Datakommunikation och Distribuerade system

Naturlagar i cyberrymden VT 2006 Lektion 6. Martin Servin Institutionen för fysik Umeå universitet. Modellering

Modul 1: Komplexa tal och Polynomekvationer

Läsanvisningar och övningsuppgifter i MAA150, period vt Erik Darpö

September 13, Vektorer En riktad sträcka P Q, där P Q, är en pil med foten i P och med spetsen i Q. Denna har. (i) en riktning, och

Tentamen i Matematisk analys MVE045, Lösningsförslag

Viktiga begrepp, satser och typiska problem i kursen MVE460, 2015.

Markovprocesser SF1904

Complex numbers. William Sandqvist

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

17. Övningar ÖVNINGAR Låt F och G vara avbildningar på rummet, som i basen e = {e 1,e 2,e 3 } ges av. x 1 x 2 2x 2 + 3x 3 2x 1 x 3

1 Grundläggande kalkyler med vektorer och matriser

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

Inför tentamen i Linjär algebra TNA002.

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Speciell relativitetsteori inlämningsuppgift 1

s 1 och s 2 är icke kvantmekaniska partiklar? e. (1p) Vad blir sannolikheterna i uppgifterna b, c och d om vinkeln = /2?

TAMS79: Föreläsning 10 Markovkedjor

Numerisk Analys, MMG410. Lecture 13. 1/58

Isometrier och ortogonala matriser

Tidsservrar vid svenska knutpunkter för Internet. Innehåll. Projektet Tidhållning på Internet i Sverige

. b. x + 2 y 3 z = 1 3 x y + 2 z = a x 5 y + 8 z = 1 lösning?

Transkript:

TSBK 10 Teknik för avancerade datorspel Fö 10: Nätverk, Peter Johansson, ISY Fysik Datorgrafik Spelmekanismer AI Nätverk Spelaspekter i vetenskaplig litteratur M. Mauve, J. Vogel, V. Hilt, W. Effelsberg Local-Lag and Timewarp: Providing Consistency for Replicated Continuous Applications, IEEE Transactions on Multimedia, vol 6, no 1, February 2004 1

Replicated Applications z Replicated Application en lokal kopia av tillståndet upprätthålls samtidigt av flera instanser z Tillståndet förändras av (användarinitierade) operationer z En operation utfärdas av en instans z Effekterna av operationen på tillståndet behöver kommuniceras till alla instanser så deras respektive tillstånd kan uppdateras Discrete/Continuous z Discrete tillståndet ändras endast av (användarinitierade) operationer z Continuous tillståndet kan också ändras av att tiden går, ingen kommunikation Instanserna behöver hålla reda på aktuell tid Klockorna är inte perfekt synkroniserade När vi talar om tiden, t, menar vi enligt någon av dessa klockor, den tiden uppnås inte nödvändigtvis samtidigt för alla instanser! 2

Definitioner z s i,t tillståndet som instans i har vid tiden t z o i,t o,t* operation som utfärdas av instans i vid tiden t o och ska utföras vid tiden t* z Mängden av alla operationer kallas O z R i (t, o j,t o,t* ) mottagningsfunktionen, är sann om o j,t o,t* tas emot av instans i innan tiden t och falsk annars Konsistens z Om det för alla t,i,j gäller (för alla t* <= t och o w,t o,t* i O så att R i (t, o w,t o,t* ) och R j (t, o w,t o,t* )) medför (s i,t = s j,t ) så har vi ett konsistent system z Vid varje tid t ska tillståndet vid i och j vara samma, om både i och j har tagit emot alla operationer som ska ha utförts före t 3

Konsistens, kommentarer z Instanser som inte tagit emot all information för att beräkna korrekt tillstånd påverkar inte om systemet är konsistent! (utan detta skulle inget system med fördröjningar kunna vara konsistent) z Om alla instanser har tagit emot alla operationer vid någon tidpunkt t så måste tillståndet i alla instanser vara samma om systemet är konsistent. Synkronisering z Notera att definitionen av konsistens är oberoende av synkronisering av olika instansers klockor. z Kriteriet kräver bara att de uppnår samma tillstånd vid samma avläsning av en fysisk klocka (om alla operationer tagits emot) z Samma tillstånd behöver alltså inte uppnås samtidigt (samtidighet existerar inte?) enligt någon absolut referens-tid 4

Korrekthet z Konsistens säger bara att alla instanser har samma tillstånd givet att de fått alla operationer, det säger inte att det tillståndet är det som uppnås av en instans som får alla operationer i rätt tid och ordning z Definiera en virtuell perfekt instans P, som för varje o i,t o,t* i O har R P (t*, o i,t o,t* )=sann, dvs alla operationer har tagits emot vid den tidpunkt då de ska utföras Korrekthet z Vidare ska P beräkna sitt tillstånd genom att för varje o i,t o,t* i O utföra den vid tiden t* och uppdatera tillståndet enligt alla tidsberoende regler i systemet z Om för alla t,i gäller (för alla t* <= t, och o w,t o,t* i O så att R i (t, o w,t o,t* )) medför (s i,t = s P,t ) så är systemet konsistent och korrekt 5

Korrekthet z Det betyder att om en instans i, vid tiden t, har fått alla operationer som ska ha utförts före t, så måste den ha samma tillstånd som den virtuella perfekta instansen P Tillfällig inkonsistens z Om det för en operation o i,t o,t* och en instans j gäller att R j (t, o i,t o,t* ) är falsk så sägs operationen ha orsakat en tillfällig inkonsistens vid instans j z Hur länge en tillfällig inkonsistens varar beror på skillnaden mellan klockorna, fördröjning i överföring och hur mycket tidigare operationen utfärdades (t o ) än den ska utföras (t*) 6

Tillfällig inkonsistens z Given en operation o i,t o,t* och en instans j, låt T* k beteckna en absolut tid då klockan vid instans k når t*, och d i,j fördröjningen i nätverket vid kommunikation från i till j z Om I j (o i,t o,t* ) = d i,j + T* i - T* j - (t*-t o ) är negativ så har operationen inte orsakat tillfällig inkonsistens z Responstiden för en operation är t*-t o z Ideal responstid är 0, vi ser att det är en avvägning mellan responstid och risk för tillfällig inkonsistens Time-warp z Artikeln fortsätter med att definiera en formell algoritm för time-warp, som hanterar vad man ska göra om man får en operation för sent, det är väsentligen att backa tiden till tiden innan operationen skulle utförts, sen utföra den och alla andra operationer efter den som man fått z De bevisar sen att time-warp ger korrekthet och konsistens 7

Död räkning z I artikeln jämför de även med död räkning (dead reckoning), som är det vi behandlat tidigare med prediktion av tillståndet och sen interpolation till korrekt tillstånd när man väl fått det z Samma typ av avvägning mellan respons och tillfällig inkonsistens finns här Jämförelse z Både död räkning och time-warp ger konsistens z Bara time-warp ger korrekthet z Död räkning har komplexitet O(n) medan timewarp har komplexitet O(n 2 ) z Se artikeln för längre diskussion om föroch nackdelar med respektive metod 8

Interpolation z Vi har nämnt att man kan behöva göra interpolation eller extrapolation i olika situationer (tappade paket, lagkompensering, etc) z Som exempel har jag nämnt positionen för en spelare z Andra saker vi kan behöva interpolera är orientering/rotation Hur representerar vi rotation? z Eulervinklar, Y=R yaw R pitch R roll X Interpolation av vinklarna, problem, ryckighet, gimbal lock z Ortogonal Matris, Y=RX Interpolation? Enkelt att göra succesiva rotationer, men hur hittar vi rotationssteget? z Rotationsaxel och vinkel, Y=f(v,n,X) Hur interpolerar vi mellan olika rotationsaxlar? 9

Kvaternjoner z Generalisering av komplexa tal, en skevkropp (skewfield), divisionsalgebra, funkar som vanliga tal (reella, komplexa) förutom att vi inte har kommutativitet xy=yx z Tre komplexa enheter i, j, k där i 2 =j 2 =k 2 =ijk= z En kvaternjon q=w+xi+yj+zk, där w,x,y,z är reella tal, skrivs även q=(w,n) där n är en tredimensionell vektor Kvaternjoner z ij=k, jk=i, ki=j, ij=-ji, jk=-kj, ki=-ik, funkar som kryssprodukten! z q 1 =(w 1,n 1 ), q 2 =(w 2,n 2 ), q 1 q 2 =(w 1 w 2 -n 1.n 2, w 1 n 2 +w 2 n 1 +n 1 xn 2 ) z Konjugat q*=(w,-n), norm q 2 =qq*=w 2 + n 2 z (q 2 q 1 )*=q 1 *q 2 * z Enhetskvaternjon q har q =1, kan skrivas q=(cos(v/2),sin(v/2)n), där n =1 10

Rotationer med kvaternjon z En enhetskvaternjon q=(cos(v/2),sin(v/2)n) representerar en rotation med vinkeln v kring axeln n om x är en vektor (realdel 0) så roteras den med y=qxq* z Sammansättning av rotationer är multiplikation av motsvarande kvaternjoner! z Kvaternjoner kan interpoleras med slerp (spherical linear interpolation), ger den kortaste vägen på sfären (i 4 dimensioner) av enhetskvaternjoner Slerp z För att interpolera från q 1 till q 2 med en parameter t som går från 0 till 1, gör man q=(q 2 q 1 ) t q 1 =q 1 (q 1 q 2 ) t =q 2 (q 2 q 1 ) 1-t =(q 1 q 2 ) 1-t q 2 z Där vi definierar q t för q=(cos(v/2),sin(v/2)n) som q t =(cos(tv/2),sin(tv/2)n) z För q=(w,tn), där n =1, är exp(q)=e w (cos(t),sin(t)n) 11

Slerp z Från definitionen av exp ser vi att en kvaternjon q kan även skrivas q=rexp((0,n)t) med n =1, då är log(q)=(log(r),nt) z Kunde även definierat q t =exp(t log(q)), blir samma sak som förra definitionen z Slerp interpolerar med konstant hastighet Squad z Vid interpolation mellan flera kvaternjoner med slerp blir det diskontinuitet i hastigheten eftersom den är konstant mellan varje par av kvaternjoner i slerp z Vi kan göra något som liknar bezier eller hermitesplines z Med slerp(t,q 1,q 2 )=(q 2 q 1 ) t q 1 får vi squad(t,a,p,q,b) = slerp(2t(1-t),slerp(t,a,b),slerp(t,p,q)) 12

Squad z För att få kontinuitet när vi interpolerar mellan punkterna a i ska vi välja q i =a i exp(-(log(a i+1 a i )+log(a i a i ))/4) och interpolera med squad(t,a i,q i,q i+1,a i+1 ) 13