A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Computação Gráfica: Aula2: Curvas e Superfícies

Apresentações semelhantes


Apresentação em tema: "Computação Gráfica: Aula2: Curvas e Superfícies"— Transcrição da apresentação:

1 Computação Gráfica: Aula2: Curvas e Superfícies http://www.fei.edu.br/~psergio psergio@fei.edu.br

2 Curvas e Superfícies As Curvas de Hermite P2 P1 T2 T1

3 Curvas e Superfícies: Curvas de Hermite

4

5

6

7

8 P2 P1 T2T1

9 Curvas e Superfícies: Curvas de Hermite

10

11

12 Em resumo e colocando em forma matricial, temos...

13 Curvas e Superfícies: Curvas de Hermite

14

15

16

17 Juntando as idéias...

18 Curvas e Superfícies: Curvas de Hermite Finalmente...

19 Curvas e Superfícies: Curvas de Hermite Finalmente... P2 P1 T2 T1

20 Curvas e Superfícies As Curvas de Bézier Desenvolvida por Pierre Bézier durante seus trabalhos em projetos de automóveis para a Renault francesa no início da década de 1960. A grande maioria dos Softwares de Computação Gráfica disponíveis no mercado usam o conceito de Curvas de Bézier. Entre eles:Adobe, Corel Draw, AutoCad, Paint Shop Pro, 3D Studio Max

21 Curvas e Superfícies: as curvas de Bézier Esse tipo de curva, por não usar o conceito de vetor e apenas pontos, é mais compreensível pelos usuários. Para ajuste por u polinômio de grau n, a curva de Bézier pode ser gerada por 3, 4, até n+1 pontos de controle. Geralmente, é suficiente usar 4 pontos, gerando uma curva cúbica. A curva de Bézier passa pelo primeiro e último ponto, e usa os demais para construir sua tangente.

22 Curvas e Superfícies: as curvas de Bézier

23 Essa propriedade é chamada de propriedade normalizante, e força a curva gerada a ficar inteiramente dentro da figura convexa (convex hull) definida pelos pontos de controle B i

24 Curvas e Superfícies: as curvas de Bézier Conexão de vários segmentos de curvas de graus menores para simplificação da expressão

25 Curvas e Superfícies: as curvas de Bézier Níveis de continuidade da união entre duas curvas sem continuidade continuidade C 0 continuidade C 1 continuidade C 2

26 Curvas e Superfícies: as curvas de Bézier Como exemplo didático apenas, supomos n = 2. Nesse caso, temos três pontos e controle: B 0, B 1 e B 2

27 Curvas e Superfícies: as curvas de Bézier De uma forma mais compacta e elegante, temos a curva de Bézier quando n=2. T é o vetor de potências da curva de Bézier de grau n = 2 M B é a Matriz de coeficientes da curva de Bézier de grau n = 2 G B é a Matriz de pontos de controle que definem a geometria da curva de Bézier de grau n = 2

28 Curvas e Superfícies: as curvas de Bézier De uma forma análoga, as matrizes da curva de Bézier quando n=3. Que leva à expressão:

29 Curvas e Superfícies: as curvas de Bézier Algoritmo de Casteljau

30 Curvas e Superfícies: as curvas de Bézier Aspectos Computacionais As curvas de Bézier são computacionalmente baratas, mesmo com uma discretização de t muito pequena. Manuseio das curvas RESUMO Curva Poligonal Avaliação por polinômios de Bernstein Algoritmo de Casteljau Número de pontos de controle e grau são interdependentes Propriedade de Convex Hull

31 Curvas e Superfícies Desenvolvida em 1967 por Schenberg, são até hoje os tipos mais populares em Computação Gráfica. Uma B-Spline é uma versão da curva de Bézier que não passa pelos pontos de controle, o que permite ela ser gerada para qualquer número de pontos de controle tornando o grau do polinômio independente do número de pontos bases. B-Splines

32 Curvas e Superfícies: B-Splines A forma básica da B-Spline é bastante semelhante à curva de Bézier. Nas B-Splines um conjunto N i,k (t) combina o efeito dos pontos de controle B i para gerar a curva.

33 Curvas e Superfícies: B-Splines O parâmetro k controla a ordem de continuidade da curva, e n o número de pontos de controle B i usados. Os parâmetros são chamados nós e podem ser qualquer seqüência crescente uniforme, não-uniforme, periódica ou não-periódica.

34 Curvas e Superfícies: B-Splines para k = 2

35 Curvas e Superfícies: B-Splines para k = 3

36 Curvas e Superfícies: B-Splines para k = 4

37 Curvas e Superfícies: Curvas Racionais As curvas vistas até agora possuem uma versão racional, que são normalizadas por pesos w i A vantagem da representação racional é a invariância com relação à projeção

38 Curvas e Superfícies: Curvas Racionais De forma geral, para cada ponto da curva temos: para as curvas de Bézier para as curvas B-Splines

39 Curvas e Superfícies: Curvas Racionais Para o caso específico da B-Spline, se o conjunto de nós for não-uniforme, e a curva tratar-se de uma superfície racional, ela é chamada de Non Uniform Rational Base Spline, mais conhecida como NURBS As curvas racionais, principalmente as NURBS, têm se tornado muito populares, sobretudo em sistemas complexos como CAD. Controlando os pesos, podemos controlar a suavidade da curva próximo aos pontos de controle correspondentes.

40 Curvas e Superfícies: Superfícies Bézier As superfícies de Bézier são uma extensão direta das curvas de Bézier, uma vez que basta apenas acrescentar mais uma dimensão. A expressão para as superfícies de Bézier é a seguinte:

41 Curvas e Superfícies: Superfícies B-Splines As superfícies de B-Splines, como as superfícies de Bézier, são uma extensão direta das curvas de B-Splines, uma vez que basta apenas acrescentar mais uma dimensão. A expressão para as superfícies de Bézier é a seguinte:

42 Curvas e Superfícies: Superfícies Racionais Assim como as curvas, as superfícies possuem a versão racional, e da mesma forma são normalizadas por pesos w i

43 Curvas e Superfícies: NURBS em OpenGL Para desenhar uma curva de Bézier em OpenGL, são necessários 2 passos básicos: 1- Definir um avaliador através da função glMap1 2 - Avaliar o polinômio criado em 1 através da função glEvalCoord1 glMap1(Glenum target, Type t0, Type t1, GLint Stride, GLint order, TYPE *points) target: define que tipo de ponto tem a curva, exemplo: GL_MAP1_VERTEX_3 t0: valor mínimo da faixa a ser avaliada, exemplo, 0.0 t1: valor máxima da faixa a ser avaliada, exemplo, 1.0 stride: número de pontos-flutuantes entre cada par de ponto de controle sequencial ordem: significa que o grau do polinômio criado é n = ordem -1 *points: ponteiro para o primeiro elemento de um vetor de pontos de controle glEvalCoord1(Type u): esta função avalia o polinômio criado com glMap1 para a faixa de valores t0-t1.

44 Curvas e Superfícies: as curvas de Bézier Funções para Usar no Lab // variável Global para os Pontos de Controle GLfloat ctrlpoints[4][3] = { {-4.0, -4.0, 0.0}, {-2.0, 4.0, 0.0}, {2.0, -4.0, 0.0}, {4.0, 4.0, 0.0}}; // Função na Main para a criação da Curva glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]); glEnable(GL_MAP1_VERTEX_3);

45 Curvas e Superfícies: as curvas de Bézier Funções para Usar no Lab void Desenha2() { int i; // avaliação da Curva glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 0.0); glBegin(GL_LINE_STRIP); for (i=0; i <=30; i++) glEvalCoord1f((GLfloat) i/30.0); glEnd(); // Plotagem dos pontos de controle glPointSize(5.0); glColor3f(1.0, 0.0, 0.0); glBegin(GL_POINTS); for (i=0; i < 4; i++) glVertex3fv(&ctrlpoints[i][0]); glEnd(); glFlush(); }

46 Curvas e Superfícies: as curvas de Bézier Resultado


Carregar ppt "Computação Gráfica: Aula2: Curvas e Superfícies"

Apresentações semelhantes


Anúncios Google