Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3...

22
1 Marcelo Walter - UFPE 1 Curvas e Superfícies Paramétricas Exemplo de superfícies NURBS Marcelo Walter - UFPE 2 Curvas e Superfícies Para aplicações de CG normalmente é mais conveniente adotar a forma paramétrica Independente do sistema de coordenadas Representação Flexível (grande classes de objetos podem ser representados)

Transcript of Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3...

Page 1: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

11

Marcelo Walter - UFPE1

Curvas e SuperfíciesParamétricas

Exemplo de superfícies NURBS

Marcelo Walter - UFPE2

Curvas e Superfícies

Para aplicações de CG normalmente émais conveniente adotar a formaparamétrica

Independente do sistema de coordenadas Representação Flexível (grande classes de

objetos podem ser representados)

Page 2: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

22

Marcelo Walter - UFPE3

Curvas Paramétricas

Curva genérica em 3D

!

Q(t) = [x(t) y(t) z(t)]

x(t), y(t) e z(t) são denominadas Funções-Base (Base Functions)

Marcelo Walter - UFPE4

Funções-Base

Normalmente polinômios de grau 3 Porque grau 3?

( ) battf += ( ) cbtattf ++= 2 ( ) dctbtattf +++= 23

Linear Quadratic Cubic

Page 3: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

33

Marcelo Walter - UFPE5

CurvasParamétricasCúbicas 2D

( )

( ) yyyy

xxxx

dtctbtaty

dtctbtatx

+++=

+++=

23

23

Um exemplo

Os valores de ax,bx, etc devem ser definidos para cada curva

Marcelo Walter - UFPE6

Em 3D

( )

( )

( )!"

!#

$

+++=

+++=

+++=

zzzz

yyyy

xxxx

dtctbtatz

dtctbtaty

dtctbtatx

23

23

23

Em 3D 12 valores são necessários

Page 4: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

44

Marcelo Walter - UFPE7

Para o usuário, como especificarestas curvas? Sabemos que cada conjunto de 12 valores

representa uma curva diferente– Diretamente através dos 12 valores

(ax,bx,cx,...,cz,dz). Não há intuição sobre osvalores e a curva correspondente

– Indiretamente, procurando facilitar a tarefapara o usuário

Diferença entre pontos que APROXIMAMuma curva e pontos que INTERPOLAM

Marcelo Walter - UFPE8

Dado um número n de pontos para traçar uma curva:– interpolar os pontos (curva passa necessariamente

por todos os pontos)– aproximar os pontos (pontos definem cobertura

convexa (convex hull) da curva)

Interpolate Approximate

Aproximação x Interpolação

Page 5: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

55

Marcelo Walter - UFPE9

Representando curvas poraproximação

Hermite Bézier B-splines NURBS and β-splines

Cada polinômio cúbico tem 4 coeficientes, logo 4condições são necessárias para especificas estepolinômio

Variação em como os pontos são especificados

Marcelo Walter - UFPE10

Especificação matricial da curva

Matriz de Geometria (G) e Matriz Base (M)

!

Q t( ) = x t( ) y t( ) z t( )[ ] = t3

t2

t 1[ ]

m11

m12

m13

m14

m21

m22

m23

m24

m31

m32

m33

m34

m41

m42

m43

m44

"

#

$ $ $ $

%

&

' ' ' '

G1

G2

G3

G4

"

#

$ $ $ $

%

&

' ' ' '

TMGtQ =)(

Page 6: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

66

Marcelo Walter - UFPE11

Curvas Hermite

A curva de Hermite é determinada porrestrições no primeiro e último pontos

O usuário especifica o primeiro (P1) e oúltimo pontos (P4) bem como os vetorestangentes a P1 e P4, chamados R1 e R4

Marcelo Walter - UFPE12

Exemplos de Curvas Hermite

P1

P4

R1

R4

Apenas a direção de R1 varia

Apenas a magnitude de R1 varia

Page 7: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

77

Marcelo Walter - UFPE13

Como converter os dados do usuáriona curva Hermite? Precisamos encontrar MH e GH

!

QH(t) = TM

HG

H

Marcelo Walter - UFPE14

Vetor Geometria Hermite

GH é

GHx é a componente x de GH:

!!!!

"

#

$$$$

%

&

=

4

1

4

1

R

R

P

P

GH

!!!!

"

#

$$$$

%

&

=

x

x

x

x

Hx

R

R

P

P

G

4

1

4

1

Page 8: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

88

Marcelo Walter - UFPE15

Curvas Hermite

A matriz base da Hermite MH é calculada levandoem consideração GH

Conforme visto anteriormente:

!

x(t) = T " MH"G

Hx

!

y(t) = T " MH "GHy

!

z(t) = T " MH"G

Hz

Demonstraremos apenas para uma coordenada (x).Para as outras segue o mesmo desenvolvimento.

Marcelo Walter - UFPE16

Curvas Hermite

As restrições em x(0) e x(1) sãoencontradas por substituição direta:

!

x(0) = 0 0 0 1[ ] " MH"G

Hx= P

1x

x(1) = 1 1 1 1[ ] " MH"G

Hx= P

4 x

Esta é a matriz T com os valores substituídos

Page 9: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

99

Marcelo Walter - UFPE17

Curvas Hermite As restrições dos vetores tangentes em

x(0) e x(1) são encontrados por derivadas:

Logo:

e!

x'(t) = 3t22t 1 0[ ] " MH

"GHx

!

x'(0) = R1x

= 0 0 1 0[ ] " MH"G

Hx

!

x'(1) = R4 x

= 3 2 1 0[ ] " MH"G

Hx

Marcelo Walter - UFPE18

Curvas Hermite As 4 restrições podem ser escritas na

forma matricial:

HxHHx

x

x

x

x

GMG

R

R

P

P

!!

""""

#

$

%%%%

&

'

==

""""

#

$

%%%%

&

'

0123

0100

1111

1000

4

1

4

1

!!!!

"

#

$$$$

%

&

'''

'

=

!!!!

"

#

$$$$

%

&

=

'

0001

0100

1233

1122

0123

0100

1111

10001

HM

Porque MH é a inversa desta matriz?

Page 10: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1010

Marcelo Walter - UFPE19

Nós podemos ler a equação da seguinte forma:

“Q(t) é a soma ponderada dos elementos de G”

!

2t3" 3t

2 +1( )P1 +

"2t3 + 3t 2( )P4 +

(t3" 2t

2 + t)R1+

(t3" t

2)R

4

HH GMTtQ !!=)(

=!=!= HHHH GBGMTtQ .)(

Funções de Mistura Hermite

Marcelo Walter - UFPE20

f(P1)f(P4)

f(R1)

f(R4)t

f(t)

1

1

Funções de Mistura Hermite

Page 11: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1111

Marcelo Walter - UFPE21

Curvas Bézier

Obteremos as curvas Bezier a partir de Hermite As curvas de Bézier são definidas por pontos P1

e P4 e também por dois pontos intermediários: P2e P3

Existe uma relação entre Hermite e Bézier: osvetores tangentes iniciais e finais sãodeterminados pelos vetores P1P2 e P3P4 e sãorelacionados com R1 e R4 na Hermite da seguinteforma:

)(3)1('

)(3)0('

344

121

PPpR

PPpR

!==

!==

Marcelo Walter - UFPE22

Curvas Bézier A razão para usar a constante 3 do slide anterior:

– Considere a curva designada pelos pontos: (0,0), (0,1),(0,2), (0,3).

– A definição desta curva é:– Logo:– Se a velocidade for constante:

)()( 141 PPtPtp !+=

14)(' PPtp !=

)(3)0(' 12141 PPPPpR !=!== )(3)1(' 34144 PPPPpR !=!==

P1 P2 P3 P4

Page 12: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1212

Marcelo Walter - UFPE23

Exemplos de Curvas Bezier

Marcelo Walter - UFPE24

O vetor GB por definição:

A matriz MHB define a relação geométrica entreHermite e Bézier:

!!!!

"

#

$$$$

%

&

=

4

3

2

1

P

P

P

P

GB

BHBHGM

P

P

P

P

R

R

P

P

G !=

""""

#

$

%%%%

&

'

""""

#

$

%%%%

&

'

(

(=

""""

#

$

%%%%

&

'

=

4

3

2

1

4

1

4

1

3300

0033

1000

0001

Curvas Bézier

De onde saíram os valores desta matriz?

Page 13: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1313

Marcelo Walter - UFPE25

Matriz de Base Bézier Para encontrar MB, considere:

Logo:!

QH(t) = T " M

H"G

H

= T " MH" M

HB"G

B( )

= T " (MH" M

HB) "G

B

= T " MB"G

B

!!!!

"

#

$$$$

%

&

'

'

''

=(=

0001

0033

0363

1331

HBHBMMM

Pelo slide anterior

Multiplicação de duas matrizes conhecidas

Marcelo Walter - UFPE26

Curva Bézier

Logo:

São conhecidos como BernsteinPolynomials

!

QB(t) = T " M

B"G

B=

4

3

3

2

2

2

1

3

)1(3

)1(3

)1(

Pt

Ptt

Ptt

Pt

+!

+!

+!

Page 14: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1414

Marcelo Walter - UFPE27

Bernstein Polynomials

P1

P2 P3

P4

Marcelo Walter - UFPE28

CasteljauObter a curva Bezier iterativamente

P1P4

P2P3

Os pontos da curva são os últimos pontos gerados no processode subdivisão

Este ponto pertence à curva

Page 15: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1515

Marcelo Walter - UFPE29

Propriedade de Convex Hull

A curva de Bézier está completamentedentro do maior polígono convexo, formadopelos pontos de controle

Convex Hull

Você consegue imaginar uma situaçãoonde esta propriedade seria útil?

Marcelo Walter - UFPE30

Montando uma curva maiscomplexa Geralmente as aplicações necessitam

curvas mais complexas do que apenas doispontos de inflexão

Solução é unir segmentos de curvas

Page 16: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1616

Marcelo Walter - UFPE31

Continuidade Para assegurar a continuidade entre segmentos

de curva, definem-se restrições de continuidade 2 tipos de continuidade (n = grau de

continuidade):– Continuidade paramétrica, denotada por Cn

– Continuidade geométrica, denotada por Gn

Marcelo Walter - UFPE32

Exemplos de Continuidade

Continuidade Geométrica G0

Dois segmentos se encontramem um ponto

Continuidade Paramétrica C1

Direção e magnitude dastangentes dos segmentos

são iguais no ponto de junção

Continuidade Geométrica G1

Direção das tangentes dos segmentos são

iguais no ponto de junção

Page 17: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1717

Marcelo Walter - UFPE33

Manipulando curvas Bezier

O que acontece ao editarmos qualquerponto de uma curva Bezier?

A curva toda se modifica, não há controlelocal

Esta é uma desvantagem das curvasBezier que levou a buscar outraspossibilidades de representação

Marcelo Walter - UFPE34

B-Splines Porque são melhores? Porque fornecem suportelocal e mais controle (ao contrário da Bézier que pormínima mudança nos pontos de controle, gera umanova curva)

Genericamente:– Para m+1 pontos de

controle• M>=3 P0,P1,..,Pn

– Teremos curvas comm-2 segmentos

• Q3,Q4,..,Qm

Page 18: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1818

Marcelo Walter - UFPE35

De onde saiu o nomeSplines :-)

Construindo barcos

Estes blocos de madeira são chamados “ducks”

Marcelo Walter - UFPE36

B-Splines

Como definir as funções de mistura para asB-Splines???

– Considerando as propriedadesdesejadas:convex hull, continuidade nasjunções…

– Com um pouco de matemática chega-se a:

Page 19: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

1919

Marcelo Walter - UFPE37

B-Splines Uniformes

!

QBS(t) =

(1" t)3

6Pi"3 +

3t3" 6t

2+ 4

6Pi"2 +

"3t3

+ 3t2

+ 3t +1

6Pi"1 +

t3

6Pi

0 <= t <=1

Observem as diferenças na especificação dos pontos

Marcelo Walter - UFPE38

B-Splines Uniformes Significa que a variável paramétrica está

espaçada em intervalos uniformes (t=0.1, 0.2,0.3, etc)

Cada um dos m-2 segmentos é definido por 4dos m+1 pontos de controle

Segmento Qi = Pi-3,Pi-2,Pi-1,Pi

GS=[Pi-3 Pi-2 Pi-1 Pi] 3<=i<=m

Page 20: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

2020

Marcelo Walter - UFPE39

B-Splines Não-Uniformes

O intervalo entre valores da variávelparamétrica não é necessariamenteuniforme…

Logo as funções de blending não são asmesmas para cada segmento…. Maiorflexibilidade

Marcelo Walter - UFPE40

NURBS

Non-uniform rational B-splines B-spline não-uniforme racional Rational significa que os segmentos de

curva são expressos por razões entrepolinômios cúbicos

Ainda Maior flexibilidade Ex: x(t) = y(t)/w(t)

NURBS - 90 patches

Page 21: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

2121

Marcelo Walter - UFPE41

Superfícies Paramétricas

Idéia de multiplicação de 2 curvas A informação geométrica que define uma

curva passa a ser ela própria uma funçãode uma variável paramétrica

Marcelo Walter - UFPE42

f u v f u v f u v f u vx y z( , ) ( ( , ), ( , ), ( , ))=

Superfícies paramétricas

A forma geral de uma superfície 3D na suarepresentação paramétrica é:

Page 22: Curvas e Superfícies Paramétricas - UFPEmarcelow/Marcelow/programacao_pg_files/curvas-sup... · 3 Marcelo Walter - UFPE 5 Curvas Paramétricas Cúbicas 2D () yyyy xxxx ytatbtctd

2222

Marcelo Walter - UFPE43

Curvas em OpenGL Definição dos pontos de controle

Desenho propriamente dito

Habilitando o uso

Marcelo Walter - UFPE44

Superfícies em OpenGL

A biblioteca GLU implementatambém NURBS!

Definição dos pontos de controle

Desenho propriamente dito