Computação Gráfica Interativa - Gattass 3/25/2017 Curvas e Superfícies Bezier, Splines, NURBS e Subdivididas Curvas
Requisito 1: Independência de eixos y x' y'
Requisito 2: Valores Múltiplos x y
Requisito 3: Controle Local y x
Requisito 4: Pouca Oscilação polinômio de grau elevado
Requisito 4: Continuidade Variável
Requisito 5: Versatilidade
Requisito 6: Amostragem Uniforme Dsn Ds3 Ds2 Ds4 Ds1 Dsi Dsj Requisito 7: Formulação matemática tratável Finalizando:
Solução Curva representada por partes através de polinômios de grau baixo (geralmente 3) t=1 continuidade no ponto comum dos trechos t=0 Parametrização t=0 t=1 t=0 t=1 t=0 t=1 u0 u1 u2 un
Geometria Diferencial s ou u P(u) ou P(s)
Requisitos da parametrização P(u) P0 (1-u) u (1-f(u)) f(u) ua ub 1 ua ub
Continuidade Geométrica e Paramétrica Contínua: C1 e G1 Descontínua Contínua: C0 e G0 C0 e G1 Geométrica C1 e G0 Paramétrica
Curvas de Bézier z y x P. de Casteljau, 1959 (Citroën) P. de Bézier, 1962 (Renault) - UNISURF Forest 1970: Polinômios de Bernstein x P(t) y z t=0 t=1 V0 V1 V2 V3 Vn-1 Vn onde: pol. Bernstein coef. binomial
Bézier Cúbicas z V1 V3 P(t) V0 V2 y x
Polinômios Cúbicos de Bernstein Computação Gráfica Interativa - Gattass 3/25/2017 Polinômios Cúbicos de Bernstein 1 t B0,3 (1-t)3 3 1 t B1,3 3(1-t)2t 1 t B2,3 3(1-t) t2 -3 1 t B3,3 t3 1 t B0,3 + B1,3 + B2,3 + B3,3 Curvas
Propriedades da Bézier Cúbica x P(t) y z V0 V1 V2 V3 R(1)
Controle da Bézier Cúbica
Fecho Convexo
Demonstração Indução n=1 ok n=2 ok é interior n=3 ...
Equação do Foley
Redução de n=3 para n=2 Bezier n=2
Redução de n=2 para n=1 Bezier n=1
Cálculo de um Ponto (1-t) t Mostre que:
Subdivisão de Bézier Cúbicas . . .
Construção de uma Bezier P(1/2)
Curve fitting
Nova notação
Derivadas na nova notação z y x
Construção de uma curva que passa por 2 pontos
Construção de uma curva que passa por 3 pontos
Método contrutivo: dados n pontos acrescentar mais um
Interpolação: dados p0…pn ache l’s e r’s
Bezier interpolation Criteria: Given: np points Find: 2(np-1) points
Bezier interpolation Criteria: resulting linear system: solve for l and r
Bezier surface (from cross section curves) conventions and notations N S E W y x z i=0,…,np-1 j=0,…,nc-1 x z pij is the point i of curve j
Bezier surface (from cross section curves) W x z i=0,…,np-1 j=0,…,nc-1 i=0,…,np-1 i=0,…,np-2 i=1,…,np-1
Bezier surface rendering 7x4 7x7 4(4x4) 4x4
B-Splines + • p = grau do polinômio Ni,p(u) controla a continuidade ( Cp-1 ) • vértices + nós U={u0, u1, ..., um} ui = nós (knots) ui,ui+1 = trechos (spans) m=n+p+1 u0 u2 ui ui+1 um ... u Ni,0(u) u1 u0 u1 u2 … um
Propriedades de Ni,p(u) Não negativa: Ni,p(u)0 para qualquer u, i, e p. Partição da unidade: Ni,p(u)=1 para todo uu0,um. Suporte local: Ni,p(u)=0 se uui, ui+p+1. Mais ainda, in qualquer intervalo dos nós no máximo p+1 das Ni,p(u) são não zero. Diferenciabilidade: todas as derivadas de Ni,p(u) existem no interior de um intervalo de nós (onde é polinômial) . Nos nós Ni,p(u) é p-k diferenciável, onde k é a multiplicidade do nó. Extremo: exceto para o caso p=0, Ni,p(u) tem apenas um ponto de máximo.
Spline Uniforme uj+1- uj =d
Splines Uniformes p=0 e p=1 Ni,0(u) ... ui-d ui ui+d ... n p=1 Ni,2(u) ui-d ui ui+d ui+2d
Splines Uniformes p=2 Ni-1,1(u) Ni,1(u) Ni+1,1(u) ui-d ui ui+d ui+2d
Polinômios da B-Spline Uniforme
Segmentos da B-spline cúbica p(t) (3t3-6t2+4)/6 (-3t3+3t2+3t+1)/6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 (1-t)3/6 t3/6 t 0,0 0,2 0,4 0,6 0,8 1,0
Funções da base u t t t For i = 0, ..., n For t = 0, ..., 1 N-1,3(u) Nn-1,3(u) Nn,3(u) Nn+1,3(u) 0,1 0,2 0,3 0,4 0,5 0,6 0,7 u u0 u1 u2 i=0 u3 ... um-4 um-3 um-2 um-1 um t i=1 i=n t t For i = 0, ..., n For t = 0, ..., 1
B-Spline Periódica - Foley - Para cada par Vi, Vi+1 , i=0,...,n Para cada t=0,...,1 Vn+1= V0 Vn+2 =V1 V2 V3 V4 V-1= Vn Periódica: i=0, ... , n V-1 = Vn Vn+1 = V0 Vn+2 = V1
B-Spline Não Periódica - Foley - • vértices + nós • i=3 + + • • i=n-1 • + i=1 i=2 • + + i=0 i=0 P(0) = (V-1+ 4V0+ V1)/6 P’’(0) = V-1 -2V0+ V1 = 0 V-1 = 2V0 - V1 i=0; P(0) = V0 • + • • i=n-1 P(1) = (Vn-1+ 4Vn+ Vn+1)/6 P’’(1) = Vn-1-2Vn+ Vn+1 Vn+1 = 2Vn - Vn-1 i=n-1; P(1) = Vn
Base Periódica V2 V3 V9= V1 V4 V8= V0 V-3=V5 V-1= V7 V-2= V6 i=4 i=3
Base Não Periódica
Bézier e B-Spline
B-Spline Periódica - Interpolação - Vn+1= V0 Vn+1 =V1 V2 V3 V4 V-1= Vn P0(0) Considere os nós como os pontos dados P1(0) Pn(0) Para i=0,..., n Pi(0) = (Vi-1+ 4Vi+ Vi+1)/6; P2(0) P3(0) P4(0) • vértices + nós
B-Spline Não Periódica - Foley - • vértices + nós • i=3 + + • • Considere os nós como os pontos dados i=n-1 • + i=1 i=2 • + + i=0 • P0 = V0 ; Pn = Vn ; Para i=1,..., n-1 Pi(0) = (Vi-1+ 4Vi+ Vi+1)/6; + • •
Funções Racionais Da trigonometria: 0.2 0.4 0.6 0.8 1.0
Cônicas y x Qualquer cônica pode ser representada parametricamente cônica qualquer escrita num sistema de eixos cuja origem é um ponto da cônica x Qualquer cônica pode ser representada parametricamente como uma fração de polinômios quadráticos
NURBS Non Uniform Rational B-Splines yh xh w w=1 x y
Cônicas como NURBS w1=s/(1-s) Faux et al. 0.2 -0.2 1 3 s Elipse (w1<1) Parábola (w1=1) Hipérbola (w1>1) Faux et al. w0w2 /w1 - determina a cônica
Círculo através de NURBS -1 -0.8 -0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1 n=8 p=2 m=12 (x0 , y0) (x1 , y1) (x2 , y2) (x3 , y3) (x4 , y4) (x5 , y5) (x6 , y6) (x7, y7) (x8 , y8)