• Nie Znaleziono Wyników

Interpolacja i teksturowanie

N/A
N/A
Protected

Academic year: 2021

Share "Interpolacja i teksturowanie"

Copied!
45
0
0

Pełen tekst

(1)

Modelowanie i wizualizowanie 3W-grafiki

Interpolacja i teksturowanie

Aleksander Denisiuk

denisjuk@matman.uwm.edu.pl

Uniwersytet Warmi ´nsko-Mazurski w Olsztynie Wydział Matematyki i Informatyki

ul. Słoneczna 54

(2)

Interpolacja i teksturowanie

Najnowsza wersja tego dokumentu dost ˛epna jest pod

adresem http://wmii.uwm.edu.pl/~denisjuk/uwm

(3)

Techniki teksturowania

Tekstura zawiera informacje o kolorach, które maj ˛ a zast ˛ api´c obliczone kolory powierzchni.

Tekstura zawiera informacje o kolorach, blasku,

przezroczysto´sci, które maj ˛ a zmieni´c charakterystyki powierzchni po obliczniach o´swietlenia i cieniowania.

Tekstura zawiera parametry, maj ˛ ace wpływ na

obliczenie o´swietlenia (współczynnik odbicia,

przemieszczenie wektoru normalnego, etc).

(4)

Tekstura

Zdj ˛ecie, obrazek skanowany, utworzony edytorem graficznym.

Obrazek zaprogramowany (skompilowany, generowany na bie˙z ˛ aco).

Obrazek generowany podaczas mapowania (odbicie).

Teksturowanie

[0, 1] × [0, 1] → model

(5)

Interpolacja tekstury

1. Okre´sla si ˛e lokalne współrz˛edne tekstury w wierzchołkach poligonu

2. Interpoluje si ˛e wewn ˛ atrz: interpolacja barycentryczna, biliniowa

h0;0i

h 3

4

;0i h

3

4

; 3

4 i

h0;1i

(6)

Interpolacja hyperboliczna

(x i : w i ) ↔ y i = x i /w i z = X

α i y i

X β i (x i : w i ), β i = α i /w i P α j /w j

Withouthyperboli interpolation Withhyperboli interpolation

FigureV.2: The gureontherightuseshyperboli interpolationtorenderthe

orre tperspe tiveforeshortening. The gureontheleftdoesnot.

(7)

Wybór lokalnych współrz ˛ednych dla tekstury

Płaszczyzna.

Sze´scian.

Powierzchnia parametryzowana P (u, v).

Współrz˛edne na teksturze zale˙z ˛ a od u i v. (Mo˙ze by´c

równie˙z od p(u, v), wektoru normalnego do powierzchi,

etc.)

(8)

Walec

s = θ

360 , t = y + h/2 h

Figure V.3: A texture map and its appli ation to a ylinder.

(9)

Walec

x y

z w

x y

z w

Figure V.4: The quadrilateral x, y, z, w sele ts a region of the texture map.

The rosshat hed region of the texture map is not the intended region of the

texture map. The shaded area is the intended region.

(10)

Sfera. Mapowanie sferyczne

P (θ, ϕ) = (r sin θ cos ϕ, r sin ϕ, r cos θ cos ϕ) s = 360 θ , t = 180 ϕ + 1 2

s = 360 θ , t = sin ϕ 2 + 1 2

(11)

Mapowanie sferyczne

Figure V.5: Two appli ations of a texture map to a sphere. The sphere on

the left has a he kerboard texture applied with texture oordinates given by

the spheri al map of equation (V.2). The sphere on the right uses texture

oordinates given by the ylindri al proje tion of equation (V.3). The spheres

are drawn with a tilt and a small rotation.

(12)

Torus

P (θ, ϕ) = (R + r cos ϕ) sin θ, r sin ϕ, (R + r cos ϕ) cos θ) s = θ

360 , t = ϕ 360

Figure V.6: A he kerboard texture map applied to a torus.

(13)

Aliasing

Rozdzielczo´s´c tekstury jest mniejsza od rozdzielczo´sci ekranu

Rozdzielczo´s´c tekstury jest wi ˛eksza od rozdzielczo´sci ekranu

Miganie, interferencja, plamy

Obiekty ruszaj ˛ ace si ˛e

(14)

Antyaliasing

Interpolacja Mipmapping

Zastosowanie skalowanych tekstur Interpolacja najbli˙zszych tekstur Zwi ˛ekszenie pr ˛edko´sci

Zwi ˛ekszenie pami ˛eci o 33%

Jest implemientowany sprz˛etowo

(15)

Mipmapping

(16)

Supersampling (nadpróbkowanie)

Figure V.7: In the rst gure, the nine supersample points are pla ed at the

enters of the nine subpixels. In the se ond gure, the supersample points are

jittered, but are onstrained to stay inside their subpixel.

Zwykły

Stochastyczny

Jittering (fluktacje)

(17)

Supersampling

(a)Nosupersampling.

(18)

Mapowanie wypukło ´sci

FigureV.8: A bumpmappedtorus. Notethela kof bumpsonthesilhouette.

There arefour white lightsshining on the s ene, plus a low level of ambient

illumination.Thispi turewasgeneratedwiththeraytra ingsoftwaredes ribed

inappendixB. See olorplateC.6.

Zmiana wektora normalnego Przed obliczniem o´swietlenia

Cieniowanie Phonga (nie Gourauda)

(19)

Mapowanie ´srodowiska

Dany jest mały zwierciadlany obiekt (kula, sze´scian).

Oblicza si ˛e (robi si ˛e zdj ˛ecie) mapa tekstury jako obraz

otoczenia widoczny od ´srodka obiektu

(20)

Projekcja sferyczna

Figure V.10: An environment map mapped into a sphere proje tion. This is

the kind of environment map supported by OpenGL. See olor plate C.7.

The s ene is the same as is shown in gure V.11. Note that the front wall

has the most delity, and the ba k wall the least. For this reason, spheri al

environmentmaps arebestusedwhen theview dire tionis losetothe dire tion

used to reate the environment map.

(21)

Projekcja sze ´scianowa

Figure V.11: An environment map mapped into a box proje tion onsists of

(22)

Interpolacja liniowa

x(α) = (1 − α)x 1 + αx 2

x

1

x

2

= 1 =0

= 1

3

=1

=1 1

2

Figure IV.1: Interpolated and extrapolated points for various values of . For

< 0, x( ) is to the left of x

1

. For > 1, x( ) is to the right of x

2 . For

0< <1, x( ) is between x

1

and x

2 .

u − x 1 = α(x 2 − x 1 ) α = (u − x 1 ) · (x 2 − x 1 )

(x 2 − x 1 ) 2

f (x(α) = (1 − α)f (x 1 ) + αf (x 2 )

(23)

Srednie wa˙zone ´

Definicja 2. Niech x 1 , . . . , x n ∈ R 3 , α 1 , . . . , α n ∈ R .

α 1 x 1 + · · · + α n x n (1) nazywa si ˛e kombinacj ˛ a liniow ˛ a. Je˙zeli P α i = 1 , to (1) nazywa si ˛e

kombinacj ˛ a afiniczn ˛ a. Je˙zeli ponadto wszystkie α i ∈ [0, 1] , to (1)

nazywa si ˛e kombinacj ˛ a wypukł ˛ a (´sredni ˛ a wa˙zon ˛ a).

(24)

Srednie wa˙zone ´

Twierdzenie 3. Przekształcenie afiniczne A zachowuje kombinacje afiniczne.

α 1 x 1 + · · · + α n x n 7→ α 1 A(x 1 ) + · · · + α n A(x n )

Dowód. A(x) = B(x) + A(0) . A wi ˛ec

A(α 1 x 1 + · · · + α n x n ) = α 1 B(x 1 ) + · · · + α n B(x n ) + A(0) =

= α 1 B(x 1 ) + · · · + α n B(x n ) + (α 1 + α n )A(0) =

= α 1 B(x 1 ) + α 1 A(0) + · · · + α n B(x n ) + α n A(0) =

= α 1 A(x 1 ) + · · · + α n A(x n )

(25)

Współrz ˛edne barycentryczne

Twierdzenie 4. Niech dane b ˛ed ˛ a trzy niekolinearne punkty

x, y, z ∈ R 3 , formuj ˛ ace trójk ˛ at T nale˙z ˛ acy do płaszczyzny P . Wtedy

1. ∀u ∈ T ∃α, β, γ ∈ [0, 1] , takie ˙ze u = αx + βy + γz , α + β + γ = 1 (kombinacja wypukła),

2. ∀u ∈ P ∃α, β, γ ∈ R , takie ˙ze u = αx + βy + γz , α + β + γ = 1 (kombinacja afiniczna).

y

z w

u

(26)

Współrz ˛edne barycentryczne

Twierdzenie 5. Współczynniki α, β, γ z twierdzenia 4 okre´slone s ˛ a jednoznacznie.

Definicja 6. Współczynniki α, β, γ z twierdzenia 4 nazywaj ˛ a si ˛e barycentrycznymi współrz ˛ednymi punktu u .

Przykład 7. x = (0, 0) , y = (2, 3) , z = (3, 1) , α = 0 , β = 1 , γ = 0 ,

α = 2 3 , β = 1 3 , γ = 0 ,

α = 4 3 , β = 2 3 , γ = −1 .

(27)

Interpolacja po trzech punktach

u = αx + βy + γz, α + β + γ = 1

f (u) = αf (x) + βf (y) + γf (z)

(28)

Współrz ˛edne barycentryczne a pole

x

y

z u

A

B C

Figure IV.3: The bary entri oordinates , and for the point u are

proportional to the areas A, B and C.

Twierdzenie 8. Współrz ˛edne barycentryczne oblicza si ˛e przez pola trójk ˛ atów według wzoru:

α = A

A + B + C , β = B

A + B + C , γ = C

A + B + C .

(29)

Dowód twierdzenia 8

x

y

z u

w

D

1

D

2

x

y

z w

u A

B E

2 E

1

(a) (b)

Figure IV.4: The areas used in the proof of Theorem IV.4.

(30)

Obliczenie barycentrycznych współrz ˛ednych w R 2

x

y

z u

A

B C

Figure IV.3: The bary entri oordinates , and for the point u are

proportional to the areas A, B and C.

β = (z − x) × (u − x)

(z − x) × (y − x) , γ = (u − x) × (y − x)

(z − x) × (y − x) ,

α = 1 − β − γ.

(31)

Obliczenie barycentrycznych współrz ˛ednych w R 3

x

y

z u

e

1

e

2 n

f

Figure IV.5: Cal ulating bary entri oordinates in R 3

.

m = e 1 − (e 1 · e 2 )e 2 /e 2 2 , n = m/kmk D = 1

(n · e )ke k = (m · e 1 )ke 2 k

(32)

Obliczenie barycentrycznych współrz ˛ednych w R 3

β = B

D = m · f

m · e 1 = (e 2 2 e 1 − (e 1 · e 2 )e 2 ) · f e 2 1 e 2 2 − (e 1 · e 2 ) 2 u β = e 2 2 e 1 − (e 1 · e 2 )e 2

e 2 1 e 2 2 − (e 1 · e 2 ) 2 u γ = e 2 1 e 2 − (e 1 · e 2 )e 1

e 2 1 e 2 2 − (e 1 · e 2 ) 2

β = u β · f, γ = u γ · f, α = 1 − β − γ

(33)

Obliczenie barycentrycznych współrz ˛ednych

x

u

1

= y

z u

2

u

3

u

4

Figure IV.6: The points from exer ise IV.5.

Przykład 9. x = (0, 0) , y = (2, 3) , z = (3, 1) .

(34)

Interpolacja biliniowa (dwuliniowa)

u = (1 − β) (1 − α)x + αy  + β (1 − α)w + αz =

= (1 − α) (1 − β)x + βw + α (1 − β)y + βz =

= (1 − α)(1 − β)x + α(1 − β)y + αβz + (1 − α)βw

f = (1−α)(1−β)f (x)+α(1−β)f (y)+αβf (z)+(1−α)βf (w)

(35)

Interpolacja biliniowa

x =h0;0i y = h4;0i

z =h5;3i

w =h0;2i

Figure IV.8: Figure for exer ise IV.7.

Przykład 10. x = (0, 0) , y = (4, 0) , z = (5, 3) , w = (0, 2)

α = 1, β = 0 α = 1 , β = 1

(36)

Interpolacja biliniowa

Twierdzenie 11. Niech x , y , z i w tworz ˛ a płaski, wypukły czworok ˛ at.

Wtedy odwzorowanie interpolacji biliniowej

[0, 1] 2 → xyzw, (α, β) 7→ u(α, β)

jest wzajemnie-jednoznacznym

Wniosek 12. Niech punkty x , y , z i w b ˛ed ˛ a niekomplanarne. Wtedy odwzorowanie

(α, β) 7→ u(α, β)

jest wzajemnie-jednoznacznym.

(37)

Interpolacja biliniowa

w

y

x

z b

a n

FigureIV.10: Theline segments xz and yw have midpoints a and b. The

ve torn isthe unitve torinthe dire tionfrom ato b.

x

P

y

P z

P

w

P

Figure IV.11: The proje tions of the two diagonals onto the plane P are

non- ollinearandinterse tattheirmidpoints,at the ommonproje tionof a

and b. Thefourproje tedverti esforma onvexquadrilateral.

w

(38)

Odwrócenie na płaszczy´znie

A = (w − u) × (z − y)

B = (z − y) × (u − x) − (w − x) × (u − y) C = (u − x) × (u − y)

if B > 0 then

β = −B− 2A B 2 −4AC else

β = 2C

−B+ √

B 2 −4AC 2A end if

s 1,β = (1 − β)x + βw s 2,β = (1 − β)y + βz α = (u−s (s 1,β )·(s 2,β −s 1,β )

2,β −s 1,β ) 2

(39)

Odwrócenie na płaszczy´znie

x

y

z

w

u

s

1 ( )

s

2 ( )

s

1 (

+

)

s

2 (

+

) (a)

z w

x

y u

s

2 ( ) s

1 ( )

s

2 (

+

) s

1 (

+

)

(b)

(40)

Interpolacja trójliniowa

Dane s ˛ a osiem punktów x i,j,k ∈ R 3 , i, j, k = 0, 1.

u(α, β, γ) = X

i,j,k

w i (α)w j (β)w k (γ)x i,j,k ,

gdzie

w n (δ) = 1 − δ, n = 0

δ n = 1

f (u(α, β, γ)) = X

i,j,k

w i (α)w j (β)w k (γ)f (x i,j,k )

(41)

Zbiory wypukłe

Definicja 13. Zbiór A ⊂ R n nazywa si ˛e wypukłym, je˙zeli dowolny odcinek, którego ko ´nce nale˙z ˛ a do tego zbioru, w cało´sci si ˛e w nim zawiera.

odcinek

prosta linia, promie ´n

płaszczyzna, półpłaszczyzna

podprzestrze ´n liniowa, afiniczna

koło, kula

(42)

Otoczka wypukła

Definicja 14. Otoczka wypukła (powłoka wypukła, uwypuklenie) zbioru

A ⊂ R n jest to najmniejszy (w sensie inkluzji) zbiór wypukły

zawieraj ˛ acy A . Otoczk ˛e wypukł ˛ a A oznacza si ˛e zwykle jako: conv A . Powłok ˛ a wypukł ˛ a zbioru wypukłego jest ten sam zbiór Powłoka wypukła zbioru punktów płaszczyzny

{P 1 , P 2 , . . . , P n }, gdzie n > 2 jest wielok ˛ atem

(wielobokiem) wypukłym o wierzchołkach nale˙z ˛ acych do zbioru {P 1 , P 2 , . . . , P n }.

Powłok ˛ a wypukł ˛ a zbioru trzech punktów

niewspółliniowych jest trójk ˛ at o wierzchołkach w tych punktach.

Otoczk ˛ a wypukł ˛ a zbioru {A, B} jest odcinek AB.

(43)

Otoczka wypukła

Twierdzenie 15. Otoczk ˛e wypukł ˛ a zgadza si ˛e ze zbiorem wszystkich kombinacji wypukłych elementów zbioru A :

conv A = (

x

x =

n

X

i=1

β i a i , a i ∈ A, β i ∈ [0, 1],

n

X

i=1

β i = 1,

)

(44)

Wypukłe kombinacje współrz ˛ednych jednorodnych

x 0 = (0 : 0 : 0 : 1), x 1 = (1 : 0 : 0 : 1), x 1 = (2 : 0 : 0 : 2).

1

2 x 0 + 1

2 x 1 = ( 1

2 : 0 : 0 : 1) 1

2 x 0 + 1

2 x 1 = (1 : 0 : 0 : 3 2 ) w i > 0

α 1 (w 1 x 1 : w 1 ) + · · · + α k (w k x k : w k ) =

=  α 1 w 1 x 1 + · · · + α k w k x k

P α i w i : 1



(45)

Wypukłe kombinacje współrz ˛ednych jednorodnych

Twierdzenie 16. Niech dany b ˛edzie zbiór A ⊂ R n . Wtedy kombinacje wypukłe jednorodnych współrz ˛ednych punktów A ( w i > 0 ) b ˛ed ˛ a

tworzy´c jednorodne współrz ˛edne conv A .

Cytaty

Powiązane dokumenty

Wyznaczyć ilorazy różnicowe, sporzą- dzić rysunek na którym należy porównać wykresy funkcji interpolowanej i interpolującej.. W sprawozdaniu proszę zamieścić tabelki

Wywołanie procedury splint w C (wywoływana jest ona dla każdego xa dla którego chcemy znać wartość ya - pomiędzy węzłami interpolacji):1.

W celu wyznaczenia wartości drugich pochodnych trzeba skonstruować na podstawie od- ległości pomiędzy węzłami oraz wartości funkcji odpowiedni układ równań - tak jak po- kazano

Wywołanie procedury splint w Fortranie (wywoływana jest ona dla każdego xa dla którego chcemy znać wartość ya - pomiędzy węzłami interpolacji):1. call

A system containing two auto-ionising levels diluted in two orthogonal continua and mutually coupled by a DC electric field is discussed. The long-time photoelectron

Funkcję dzielimy na kawałki w ten sposób, że do kawałka należą dokładnie 2 punkty leżące na końcach przedziału.. Rozwiązując układ równań wyznaczy-

• Wykonać interpolację funkcją progową, liniową i spline’ami kubicznymi dla dwóch wybranych funkcji nieliniowych jednej zmiennej, w tym jedna z nich jest funkcją

At one time, the author of these theses, probably for the first time in independent Ukraine in a report published in 1995 at an international scientific