Skinning and Animation



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

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

TBSK03 Teknik för avancerade Datorspel 49(68)

Skinning. Ännu fler koordinatsystem att hålla reda på. SUPPLEMENT 2 till "So How Can We Make Them Scream?" 1. Olika metoder för kroppsanimation

C-Uppsats i Datavetenskap. Skinning på GPUn. Med dubbel kvaternioner. Författare: Björn Overå Handledare: Martin Blomberg Termin: VT12 Kurskod: 2DV40E

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

Procedurell grottgenerator och eld i GLSL. Marcus Widegren

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Institutionen för Matematiska Vetenskaper TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1/TM1, TMA

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

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

Grafiska pipelinen. Edvin Fischer

Bézierkurvor och parametriska objektrepresentationer

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

Föreläsning 3.1: Datastrukturer, en översikt

9-1 Koordinatsystem och funktioner. Namn:

SF1624 Algebra och geometri Tentamen Onsdagen 29 oktober, 2014

Animation. Gustav Taxén

Omtentamen i DV & TDV

Uppgift 1 ( Betyg 3 uppgift )

FÖRELÄSNING 1 ANALYS MN1 DISTANS HT06

Kurvlängd och geometri på en sfärisk yta

Instuderingsfrågor Skelettet, med svar

Facit till Några extra uppgifter inför tentan Matematik Baskurs. x 2 x

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Dataprojekt. Nanovetenskapliga tankeverktyg. January 18, 2008

Grafiska pipelinens funktion

OCH FJÄLL I MAYA. Mattias Lindblom

Lösningar till linjära problem med MATLAB

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Träningssplan: vecka 1-6

Bulltoftamodellen. parläsningen ger stora möjligheter till direkta stopp och omedelbara diskussioner, vilket utvecklar läsförståelsen

Matematik Åk 9 Provet omfattar stickprov av det centrala innehållet i Lgr b) c) d)

Föreläsning 6: Introduktion av listor

3.3. Symboliska matematikprogram

Dagens tema. Fasplan(-rum), fasporträtt, stabilitet (forts.) (ZC sid 340-1, ZC10.2) Om högre ordnings system (Tillägg)

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

Introduktion till algoritmer - Lektion 3 Matematikgymnasiet, Läsåret Lektion 3

1.1 Mätning av permittiviteten i vakuum med en skivkondensator

Att använda bildhanteringsprogram, del 2

Efter att ha arbetat med det här kapitlet bör du

Föreläsning 4: Kombinatorisk sökning

Transformationer i 3D. Gustav Taxén

Inlämningsuppgift 4 NUM131

KRONISK LEDBANDSSKADA I FOTLEDEN REHABILITERINGSPROGRAM VID KRONISK LEDBANDSSKADA I FOTLEDEN INLEDANDE FAS DAG 1 14 MÅLSÄTTNING METOD. Figur 1.

Säkerhet Användarhandbok

SmartgymS TRÄNA HEMMA PROGRAM SMARTA ÖVNINGAR FÖR ATT KOMMA I FORM - HEMMA! Effektiv Träning UTAN Dyra Gymkort!

75059 Stort sorteringsset

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

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

Uppgift 2 Betrakta vädret under en följd av dagar som en Markovkedja med de enda möjliga tillstånden. 0 = solig dag och 1 = regnig dag

Designteam 9 s designförslag

Pulse SVENSKA LADDNING SÖMN 12 PARKOPPLING MÅL 13 INSTÄLLNINGAR PÅMINNELSER 13 DISPLAY MEDDELANDEN 14 AKTIVITET SMS 15 PULSMÄTARE TIMER

Basbyte (variabelbyte)

Snabbhetsträning. Upplands Distriktslag -94. Vid frågor, kontakta Jonas på: 1 info@footballspeedacademy.com

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Signalanalys med snabb Fouriertransform

Ickelinjära ekvationer

C-UPPSATS. Rigga en karaktär för agent FX

Föreläsning 13 och 14: Binära träd

Onsdagen den 16 mars 2005, 8:00 13:00

Möbiustransformationer.

SLALOMINGÅNGAR hur svårt kan det vara?

a), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.

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

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

MÅLVAKTSTIPS. Hans Gartzell Certifierad Målvaktstränarinstruktör

Tentamen TNM077, 3D datorgrafik och animering

Kardinal Synd Umeå - Inspelningsinstruktioner -

Golf ur ett motoriskt perspektiv

Förberedelser: Sätt upp konerna i stigande ordningsföljd (första inlärningen) eller i blandad ordningsföljd (för de elever som kommit längre).

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

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

Lär dig göra marklyft

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Fysträningen Skara HF A flickor

Föreläsning 4: Poster

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Trä ningslä rä. Att ta ansvar för sin hälsa. Träning

Övningsuppgift 8. ArchiCAD 16. Eget Bibliotek ! Med kopieringsrätt för Peder Skrivares skola, Varberg

LIDINGÖLOPPET 10 KILOMETER CLAIRE 25, 8 VECKOR, 2 LÖPPASS/VECKA

SSIF. Akrobatikundervisning (copyright Eric Sherbin)

Ovningsbankens Handbollspaket Styrketräning

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Nallelek Lärarvägledning

Distriktsfinal. Del 1: 7 uppgifter Tid: 60 min Maxpoäng: 21 (3p/uppgift)

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

FOURIERANALYS En kort introduktion

Ta steget! Den som är aktiv mer än 1 timme per dag har bättre chans att kontrollera sin vikt.

Säkerhet Användarhandbok

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

DN1230 Tillämpad linjär algebra Tentamen Onsdagen den 29 maj 2013

Repetition av cosinus och sinus

6.3. Direkta sökmetoder

Kurvor och ytor. Gustav Taxén

Tentamen Mekanik F del 2 (FFM520)

REGLERTEKNIK KTH. REGLERTEKNIK AK EL1000/EL1110/EL1120 Kortfattade lösningsförslag till tentamen , kl

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Objektorienterad programmering

Transkript:

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 (bågar och noder) Rotationer och transformationer relativa förälder

Skelett Varje nod innehåller Namn Id Förälders id Translation relativ förälder Rotation relativ förälder Ofta identitet i grundposition Alla barns id Rotnod Känd i globala koordinatsystemet Kan också innehålla information om maximal rotation för varje led samt olika vikter (tröghet att röra sig)

Svårigheter Svårt producera realistiska rörelser, särskilt om det är ett människoskelett Vi är så bekanta med människans rörelser att även ett otränat öga kan urskilja orealistiska rörelser Människokroppen är oerhört komplex med över 200 frihetsgrader och 600 muskler Finns ingen väldefinierad beskrivning för människorörelser Finns ingen specifik rörelse som representerar en människorörelse, ingen människa rör sig likadant som en annan

Animering av Skelett Keyframe animation : Gör av en animerare i en Animerings mjukvara (tex. Maya) eller Motion Capture Inverse kinematics : Var hamnar lederna om man ska sträcka sig efter något. Physics :Låta klasisk fysik påverka karaktären (ramlar död från en byggnad)

Keyframe animation Key Frame Rotation av ett ben vid en viss tidpunkt Track Flera key frames för ett ben vid olika tidpunkter Ben id Key frame 1 Tid Rotation Key frame n En animering består av tracks för alla ben som den influerar Behöver ej nödvändigtvis ej ha tracks för alla ben i ett skelett ( Keyframe + IK)

Animerings mjukvara

Motion Capture Fånga rörelsen av ett riktigt objekt och överföra den på en datorgenererad modell Kan användas för att spela in en persons rörelser Utvalda kroppsdelars transformation spelas in och lagras med tidstämpel i ett givet format Denna data kan sedan överföras på ett skeletts korresponderade delar för att producera datorgenererade rörelser

Motion Capture

BSpline Linjär interpolation mellan Keyframes i en animation kan se hakigt ut. Kurva med kontinuerliga andra derivator löser denna lilla artifakt Där OBS detta andväns i många.

Bas polynomens grafer

p0 p1 p2 p3 P = 4 i = 1 wi * pi

Bas polynomen i en spline

Varianter på Splines Catmull-Rom Splines interpolerar exakt varge keyframe. En variant av Hermite splines:

Quaternioner William Rowan Hamilton (1805-1865) 4D vektor (w, x, y, z) En utökad variant på komplexa tal x+iy -> w+xi+yj+zk där i^2 = j^2 = k^2 = ijk = -1

Quaternioner Givet en rotations axel v och en vinkel rotation a är quaternionen q = (cos(a), sin(a) v )

Quaternioner Ortogonalitet Många små inkrimentiella rotationer av en rotations matris => numreriska fel => matrisen inte blir ortogonal=>konstigt! Interpolation mellan olika rotationer på ett snabbare sätt än att multiplicera med en rotations matris Plats effektivare 4 <-> 9 skalärer Snabbt och enkelt konverterade till en rotations matris

Rotations Interpolation SLERP: spherical linear interpolation Interpolation av kortaste sträkan mellan 2 punkter på en sfär Givet 2 quaternioner q0, q1 och en interpolations parameter t=[0,1] så är den interpolerade quaternionen sin( α (1 t)) sin( α t) q( t) = q0 + q1 sin( α ) sin( α )

Konverteringar Konverteringar quaternion -> matris 1-2qy 2-2qz 2qx qy + 2qz qw 2qx qz - 2qy qw 2 2qx qy - 2qz qw 1-2qx 2-2qz 2qy qz + 2qx qw 2 2qx qz + 2qy qw 2qy qz - 2qx qw 1-2qx 2-2qy 2 Konverteringar rotation -> quaternion q = ( cos( 0.5 α ), sin( 0.5 α ) v, sin( 0.5 α ) v, sin( 0.5 α ) v ) x y z

Användning Använda quaternioner vid positionering av skelettet Konvertera varje bens quaternion till rotationsmatris efter positionering Varje ben ska transformera flera vertexar, vilket matriser gör effektivare än quaternioner Rotmatris: 9 multiplikationer, 6 adderingar Quat: 32 multiplikationer, 24 adderingar

Kinematics Forward kinematics Sätta rotationer mellan lederna för att få fram lövnodens (hand/fot mm.) position Inverse kinematics Motsatsen till Forward kinematics Position/rotation av lövnod känd, vad blir vinklarna mellan alla benen Ett robotik problem De flesta algoritmer för hur problemet ska lösas kommer från robotiken

Inverse kinematics Ett optimeringsproblem

Inverse kinematics Iterativ lösnings gång

CCD för IK lösning CCD: Cyclic-Coordinate Descent Itterativ algoritm som passar bra för realtid Börga med sista leden, rikta den mot målet, samma procedur med nästa osv.

CCD fort. Viktigt att ha bra restriktioner för vilka vinklar en led kan anta. Förhindrar att figuren hamnar i en position som är fysiskt omöjlig. restriktioner måste nästan alltid anges i Eulervinklar (vinklar i enherssfären). Vikter för varje nod CCD:n tenderar att favorisera senare leder i kedjan för att undvika detta införs vikter, som talar om hur delaktiga varje led ska vara i lösningen. (ovanstående information lagras i per ben)

Animation Blending Olika delar på spel karaktären gör olika saker Det är önskvärt att animera karaktärens rörelse samtidigt som man vill att IK ska placera foten bra i tex en uppförsbacke. Att kunna blanda flera animationer springa och gå => jogga Att dö och låta gradvis fysikens lagar ta över karaktären?!

Animation Blending i MechWarrior engine Mechen är sammasatt av 152 animationer Mech karaktären kan spela upp 15 samtidiga animationer Mech karaktären påverkas också av IK samt fysik

Animation Blending Föregående påstående kräver någon slags animation Blending system:

Skinning För att geometrierna ska följa med figuren när den rör sig, måste de på något sätt vertexerna vara knutna till skelettet Varge Vertex punkt knyts till ett ben => meshen kommer att deformeras effter skeletet Neg: i varge led kommer defekter att Ge varje vertex möjlighet att påverkas av två eller flera ben Övergången mellan benen blir mjukare och geometrierna ser mer naturliga ut Den här processen kallas vanligen för skinning eller vertex blending

Skinning

Skinning De nya vertex positionerna bestämms av Där: n v = w M v w = 1 n v w i M i i i i med är antalet matriser. är vertex positionerna. är vikterna. är transformations matrisen för ben i. i i

Skinning De nya vertex positionerna bestämms av Där: n v = w R v w = 1 n v w i R i i i i med är antalet matriser. är vertex positionerna. är vikterna. är Rotation matrisen för ben i. (delmäng av M) i i

GPU arkitektur Vertex shader Pixel shader Lite repetition

Skinning på grafikkortet Travarsera skeletet och ta fram quadrioner till samtliga ben Gör om dessa till rotations matriser och ladda upp den till Vertex shader konstant registrerna Transformera sedan vetexes beroende på vilka ben som de påverkas av, enligt: n v = w M v med w = 1 i i i i i

Skinning på grafikkortet Begränsat antal konstant register => ibland nödvändigt att splitta upp meshen Det går åt 3 st float4 register för att lagra en transformations matris (rot + trans) Vertex attribut (16 float4 attribut per vertex): Vertex position Vertex vikt (upp till 4) Index till konstant matris för transformationen (upp till 4) Normal behandla vertexar som påverkas av samma antal ben samtidigt

Nvidia G80 new Mitt Nya Antal M Trans 301 681 Minnes bandbredd 38.4 GB/s 86.4 GB/s Minnes Bitbredd 256 Bit 384 Bit Shader core Clock 430 1350 Gigaflops 165 510 Integer och Bit-instruktioner No Yes Gratis bilinjear Interpolation 16 Bit 32 Bit Aritmetiknivå Vector Skalär

NVIDIA CUDA CUDA-enabled GPUs support the Parallel Data Cache and Thread Execution Manager for high performance computing Standard C programming language enabled on a GPU Standard numerical libraries for FFT and BLAS Dedicated CUDA driver for computing Optimized upload and download path from the CPU to CUDA-enabled GPU CUDA driver interoperates with graphics drivers Supports Linux and Windows XP operating systems Scales from high performance professional graphics solutions to mobile and embedded GPUs

END