Information Coding / Computer Graphics, ISY, LiTH. Bump mapping!

Relevanta dokument
Geometry shaders! och Tesselation shaders!

Teknik för avancerade datorspel!

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

Teknik för avancerade datorspel!

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

SF1624 Algebra och geometri Bedömningskriterier till tentamen Fredagen den 22 oktober, 2010

Eftersom ON-koordinatsystem förutsätts så ges vektorernas volymprodukt av:

Procedurell grottgenerator och eld i GLSL. Marcus Widegren

===================================================

Tentamen i Matematik 3: M0031M.

1 Vektorer i koordinatsystem

LINJÄRA AVBILDNINGAR

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

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

Koordinatsystem och Navigation

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

Tentamen i Matematik 2: M0030M.

and u = och x + y z 2w = 3 (a) Finn alla lösningar till ekvationssystemet

Tentamen 1 i Matematik 1, HF okt 2018, Skrivtid: 14:00-18:00 Examinator: Armin Halilovic

. Bestäm Rez och Imz. i. 1. a) Låt z = 1+i ( b) Bestäm inversen av matrisen A = (3p) x + 3y + 4z = 5, 3x + 2y + 7z = 3, 2x y + z = 4.

SF1624 Algebra och geometri

Approximation av funktioner

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

MMA129 Linear Algebra academic year 2015/16

Proof. Se uppgifterna. Definition 1.6. Två vektorer u och v är vinkelräta (ortogonala) om < u, v >= 0.

Detta cosinusvärde för vinklar i [0, π] motsvarar α = π 4.

Geometry shaders! och Tesselation shaders!

Vektorgeometri för gymnasister

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

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

x+2y 3z = 7 x+ay+11z = 17 2x y+z = 2

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

Laboration - Shaders

SF1624 Algebra och geometri

Ortogonal dekomposition. Minstakvadratmetoden.

Konvergens för iterativa metoder

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

Studiehandledning till linjär algebra Avsnitt 4

Mekanik FK2002m. Vektorer

Kompositberä kning i Solidworks

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

LINJÄR ALGEBRA II LEKTION 6

Rhino3D. Schackbräde. Krav. Några detaljer som kan vara bra att känna till:

Linjär Algebra, Föreläsning 9

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

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

October 9, Innehållsregister

Övningstenta 8. ax+2y+z = 2a 2x (a+2)y = 4 2(a+1)x 13y 2z = 16. Problem 3. Lös matrisekvationen AX BX = C. då A = 0 1

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

Datum: 24 okt Betygsgränser: För. finns på. Skriv endast på en. omslaget) Denna. Uppgift. Uppgift Beräkna. Uppgift Låt z. Var god. vänd.

TENTAMEN. Matematik 1 Kurskod HF1903 Skrivtid 13:15-17:15 Onsdagen 25 september 2013 Tentamen består av 3 sidor

Vektorgeometri för gymnasister

AB2.1: Grundläggande begrepp av vektoranalys

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

Patrick Hjelm Andersson

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

9 Geometriska begrepp

Vektorgeometri för gymnasister

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet april. Utforskande aktivitet med GeoGebra

Transformationer i 3D. Gustav Taxén

3. Lös det överbestämda systemet nedan på bästa sätt i minsta kvadratmening. x + y = 1 x + 2y = 3 x + 3y = 4 x + 4y = 6

Föreläsning 13 Linjär Algebra och Geometri I

z = 4 + 3t P R = (5 + 2t, 4 + 2t, 4 + 3t) (1, 1, 3) = (4 + 2t, 3 + 2t, 1 + 3t)

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

P Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R

SKRIVNING I VEKTORGEOMETRI

1. Vi skriver upp ekvationssystemet i matrisform och gausseliminerar tills vi når trappstegsform,

SIMULINK. En kort introduktion till. Polplacerad regulator sid 8 Appendix Symboler/block sid 10. Institutionen för Tillämpad Fysik och elektronik

1. Gradient och riktningsderivata till funktioner av två variabler (2.7) 2. Gradient och riktningsderivata till funktioner av tre variabler (2.

Modul 1: Komplexa tal och Polynomekvationer

TBSK 03 Teknik för Advancerade Datorspel

KOKBOKEN 1. Håkan Strömberg KTH STH

8 < x 1 + x 2 x 3 = 1, x 1 +2x 2 + x 4 = 0, x 1 +2x 3 + x 4 = 2. x 1 2x 12 1A är inverterbar, och bestäm i så fall dess invers.

Procedurell stad. Projekt i kursen TNM022 Procedurella metoder för bilder. Tobias Heldring, tobhe

Dagens meny: Niclas Persson, Control and Communication. Gömda villkor i DAE:er. Hur hittar man gömda villkor? Pantelides algoritm

Pre-Test 1: M0030M - Linear Algebra.

SF1624 Algebra och geometri Lösningsförslag till tentamen Tisdagen den 15 december, 2009 DEL A

SF1624 Algebra och geometri Lösningsförslag till tentamen Lördagen den 5 juni, 2010 DEL A

Vektorgeometri för gymnasister

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

Rastrering och displayalgoritmer. Gustav Taxén

e 3 e 2 e 1 Kapitel 3 Vektorer i planet och i rummet precis ett sätt skrivas v = x 1 e 1 + x 2 e 2

Vektorgeometri för gymnasister

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

Linjär algebra på några minuter

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

Moment 4.3.1, Viktiga exempel 4.44, 4.46, 4.48 Handräkning 4.53, 4.59, 4.60, 4.61, 4.62, 4.63, 4.64, 4.65 Datorräkning 1-15 i detta dokument

Tentamen i Matematik 1 HF1901 (6H2901) 22 aug 2011 Tid: :15 Lärare:Armin Halilovic

Exempelsamling :: Gram-Schmidt

x 1 x 2 x 3 x 4 mera allmänt, om A är en (m n)-matris, då ger matrismultiplikationen en avbildning T A : R n R m.

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

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Vektorgeometri för gymnasister

6. a) Visa att följande vektorer är egenvektorer till matrisen A = , och ange motsvarande

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor

Spelutveckling - Scenegrafer. Scenegrafer Optimeringar Culling

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

Mekanik FK2002m. Kinematik i flera dimensioner

Lösningsförslag till skrivningen i Vektorgeometri (MAA702) måndagen den 30 maj 2005

Vektorgeometri för gymnasister

Transkript:

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 42(81)

Bump mapping Simulates surface structure by manipulating the normal vector 43(81)43(81)

Bump mapping - model Surface with normal vectors Bump map: scalar function of the texture coordinates Modulate the surface by the bump function, along normal Calculate new normals Resulting normal vectors 44(81)44(81)

Bump mapping - practice Input: ^ A point p, normal vector n Texture coordinates s(p), t(p) ^ ^ Directions of texture coordinates s, t The bump function b(s,t) Calculate the partial derivative of the bump function, b s and b t ^ ^ ^ ^ ^ ^ n = n + b t * (s x n) + b s * (t x n) ^ ^ ^ or, if s, t, n are orthogonal ^ n ^ n ^ ^ ^ ^ n = n + b t * t + b s * s ^ t ^ b s s ^ b t t ^ s 45(81)45(81)

^ Mer praktik ^ Var får vi s och t från? Vi har texturkoordinater men inget koordinatsystem Kryssa fram från normalvektorn? Men mot vad? Beräkna från ds/dx och dt/dy i bilden? Då saknas z-variation 46(81)46(81)

Fuskmetod Kryssa fram från normalvektorn mot vad tusan som helst ^ ^ ^ ^ ^ s = x x n / x x n ^ ^ ^ t = n x s Funkar för vissa fall. (Brus i synnerhet.) Bättre kan vi 47(81)47(81)

Enkel geometri ^ ^ Var får vi s och t från? Vi har texturkoordinater men inget koordinatsystem Enkelt för rektangel - bekvämt labbfall. ^ t s^ 48(81)48(81)

Lengyel's metod Härled genom steg i s och t i xyz-rymden. Rak och snygg metod genom matrisalgebra. Uttryck två sträckor som funktion av s och t, finn inversen ^ ^ 49(81)49(81)

Lengyel's metod Givet en triangel med texturkoordinater, finn basvektorer för texturkoordinater Tag sidan ab, dela upp i komponenter längs s och t. Uttryck som matris, finn s och t med invers 50(81)50(81)

Lengyel's metod i programkod - ganska enkelt float ds1 = sb - sa; float ds2 = sc - sa; float dt1 = tb - ta; float dt2 = tc - ta; vec3 s, t; float r = 1/(ds1 * dt2 - dt1 * ds2); s = (ab * dt2 - ac * dt1) * r; t = (ac * ds1 - ab * ds2) * r; OBS Vektoroperationer 51(81)51(81)

Approximativ metod Låt varje sida av polygoner bidra till s och t beroende på deas s- och t-variation Varje sidas bidrag till s = sidans riktning (normerad gånger variationen i s. Summera 52(81)52(81)

Approximativ metod 53(81)53(81)

Båda metoderna ger bra resultat för komplicerade modeller 54(81)54(81)

Koordinatsystem Vy- och världskoordinater Texturkoordinater Tangentkoordinater Ljuskälla fås ofta i vykoordinater Bumpmappen ges i texturkoordinater Normalvektor i modellkoordinater eller vykoordinater Vi måste kunna konvertera mellan koordinatsystemen Ljussättning skall göras med vektorer i samma koordinatsystem. 55(81)55(81)

Koordinatsystem Modell till vy: normalmatrisen ps = normalmatrix * s pt = normalmatrix * t nv = normalmatrix * n Vy till textur: Mvt = ps pt nv = psx psy psz ptx pty ptz nvx nvy nvz 56(81)56(81)

Koordinatsystem ps är tangentvektorn (kallas ofta t i andra texter) pt bitangent (inte binormal) Texturrymd = bas med vektorer längs texturvariationer Tangentrymd = ortonormal bas i texturrymd Tangentrymd ofta bra approximation till texturrymd 57(81)57(81)

Lite mer definitioner bumpmap = bild med höjdvärden normal map = bild med förberäknade normalvektorer (Förvirring mellan dessa två förekommer) 58(81)58(81)

Beräkning av modifierad normalvektor (vykoordinater) bs = db/ds bt = db/dt n = n + bs Ps + bt Pt ( in ) eller n = n - bs Ps - bt Pt ( ut ) Förutsätter tangentrymd. Texturrymd blir: n = n + bs Ptxn + bt Psxn ( in ) 59(81)59(81)

Beräkning av modifierad normalvektor (texturkoordinater) bs = db/ds bt = db/dt n = bs bt 1 + normering Jättelätt MEN, ljus och vyriktning måste då transformeras till texturkoordinater lt = Mvt * l 60(81)60(81)

Normalmappning Förberäkna bs och bt, spara i bild -bs = b[s, t] - b[s+1, t] -bt = b[s, t] - b[s, t+1] 1 Normera 61(81)61(81)

Lagring i textur Scale and bias här också: R = (ds+1)/2 G = (dt+1)/2 Hämtning ur textur: ds = 2R - 1 dt = 2G - 1 nt = (x, y, z) (Varför?) 62(81)62(81)

Exempel på normal map ( normalkarta?) 63(81)63(81)

Bump map som användes i exemplet Bump map Normal map 64(81)64(81)

Bumpmappen kan läggas i blå- eller alpha-komponenten Hybrid bump/normal-map Bump map Normal map Hybrid 65(81)65(81)

Information Coding / Computer Graphics, ISY, LiTH 66(81)66(81)

Information Coding / Computer Graphics, ISY, LiTH Exempel från boken Jonas Lindmarks projekt 67(81)67(81)

Bättre än bump mapping Bump mapping är platt, ser fel ut när man betraktar i lite vinkel. Bättre metoder: Parallax Mapping Relief Mapping/Parallax Occlusion Mapping Per-pixel displacement mapping 68(81)68(81)

Parallax Mapping Enklaste metoden, gör ett grovt språng i texturrymden. Polygon surface P P Bump map height Q Q 69(81)69(81)

Parallax Mapping I många fall en god förbättring. 70(81)70(81)

Parallax Mapping Antar långsam variation i bump mappen. P P P P P P Q Q Q Q Q Q 71(81)71(81)

Parallax Mapping Konstiga resultat i branta vinklar eller högfrekvent bump map. 72(81)72(81)

Parallax Mapping Tn = T 0 ± b(s, t) Vxy/Vz Felet växer vid små Vz Variant: Offset limiting: Tn = T 0 ± b(s, t) Vxy Tar helt enkelt bort Vz 73(81)73(81)

Relief Mapping Söker i flera steg Polygon surface P P Bump map height Q 74(81)74(81)

Relief Mapping Missar ibland om stegen är för stora Polygon surface P P Bump map height Q Q 75(81)75(81)

Information Coding / Computer Graphics, ISY, LiTH Variant: Parallax Occlusion Mapping Liknande algoritm, uppvisar enligt Lindmark betydande fel. 76(81)76(81)

Per-pixel Displacement Mapping Mycket exakt metod som ger fina resultat Polygon surface P P Bump map height Q 77(81)77(81)

Per-pixel Displacement Mapping Använder Euklidisk avståndstransform Algoritm för att effektivt beräkna avståndsvärden i samplad rymd Uppfanns av PE Danielsson 1980 78(81)78(81)

Per-pixel Displacement Mapping 79(81)79(81)

Vad behöver ett spel då? Platt texturmappning: Räcker inte alls. Bump mapping: Räcker långt Parallax mapping: Kostar inte mycket när man har bump mapping Per-pixel displacement mapping: Visst blir det fint, men behövs det verkligen? Får jag en snabb och stabil PPDM gratis tar jag det nog, men annars är bump mapping och parallax mapping frestande, kostnadseffektiva. 80(81)80(81)

Sammanfattning bumpmappning Generera texturkoordinatsystem från texturkoordinater Beräkna bump mapping i vy- eller texturkoordinater Normalmappning: förberäknad bumpmappning Utvidgningar och förbättringar av bumpmappning 81(81)81(81)