Processamento de Malhas Poligonais Tópicos Avançados em Computação Visual e Interfaces I Prof.: Marcos Lage www.ic.uff.br/~mlage mlage@ic.uff.br Conteúdo: Notas de Aula
Curvas 06/09/2015 Processamento de Malhas Poligonais 2
Curvas Definição de Curva Consideraremos curvas planas suaves, ou seja, variedades de dimensão 1 de classe, imersas em. 06/09/2015 Processamento de Malhas Poligonais 3
Curvas Definição de Curva Consideraremos curvas planas suaves, ou seja, variedades de dimensão 1 de classe, imersas em. Forma paramétrica: 06/09/2015 Processamento de Malhas Poligonais 4
Curvas Definição de Curva Consideraremos curvas planas suaves, ou seja, variedades de dimensão 1 de classe, imersas em. Forma paramétrica: Obs: Como a curva é suave, suas funções coordenadas são suaves. 06/09/2015 Processamento de Malhas Poligonais 5
Curvas Definição de Vetor tangente O vetor tangente, em um ponto é definido como a primeira derivada da parametrização: 06/09/2015 Processamento de Malhas Poligonais 6
Curvas Definição de Vetor tangente O vetor tangente, em um ponto é definido como a primeira derivada da parametrização: Obs: Podemos interpretar a parametrização como a trajetória de um ponto em função do tempo (u = t) e o vetor tangente como a velocidade em um determinado instante t. 06/09/2015 Processamento de Malhas Poligonais 7
Curvas Definição de Vetor tangente O vetor tangente, em um ponto é definido como a primeira derivada da parametrização: Obs: Podemos interpretar a parametrização como a trajetória de um ponto em função do tempo (u = t) e o vetor tangente como a velocidade em um determinado instante t. Obs: Assumiremos que a parametrização é regular, isto é: 06/09/2015 Processamento de Malhas Poligonais 8
Curvas Vetor Normal O vetor normal, em um ponto é definido pode ser calculado como: 06/09/2015 Processamento de Malhas Poligonais 9
Curvas Vetor Normal O vetor normal, em um ponto é definido pode ser calculado como: é a rotação do vetor tangente de 90 graus. 06/09/2015 Processamento de Malhas Poligonais 10
Curvas Reparametrização de curvas Uma mesma curva pode ser parametrizada de maneiras distintas: 06/09/2015 Processamento de Malhas Poligonais 11
Curvas Reparametrização de curvas Uma mesma curva pode ser parametrizada de maneiras distintas: 0 1 06/09/2015 Processamento de Malhas Poligonais 12
Curvas Reparametrização de curvas Uma mesma curva pode ser parametrizada de maneiras distintas. Obs: A geometria diferencial de curvas planas estuda propriedades das curvas que são independentes da escolha da parametrização. 06/09/2015 Processamento de Malhas Poligonais 13
Curvas Comprimento de Arco O comprimento de um segmento curvo definido em um intervalo, é definido como: 06/09/2015 Processamento de Malhas Poligonais 14
Curvas Comprimento de Arco O comprimento de um segmento curvo definido em um intervalo, é definido como: Obs: O vetor tangente codifica a métrica da curva. 06/09/2015 Processamento de Malhas Poligonais 15
Curvas Comprimento de Arco O comprimento de um segmento curvo definido em um intervalo, é definido como: Obs: Podemos reescrever uma parametrização preservando o comprimento de arco de forma única e independe da escolha da parametrização inicial: 06/09/2015 Processamento de Malhas Poligonais 16
Curvas Comprimento de Arco Contas importantes: analogamente l 0 s s 06/09/2015 Processamento de Malhas Poligonais 17
Curvas Comprimento de Arco Exemplos: 06/09/2015 Processamento de Malhas Poligonais 18
Curvas Curvatura: Definição Supondo que uma curva regular esteja parametrizada por comprimento de arco, podemos definir a curvatura de um ponto como: 06/09/2015 Processamento de Malhas Poligonais 19
Curvas Curvatura: Definição Supondo que uma curva regular esteja parametrizada por comprimento de arco, podemos definir a curvatura de um ponto como: Obs: Intuitivamente, a curvatura mede o quão rápido a curva se afasta de uma linha reta. Em outras palavras: 06/09/2015 Processamento de Malhas Poligonais 20
Curvas Curvatura: Definição Supondo que uma curva regular esteja parametrizada por comprimento de arco, podemos definir a curvatura de um ponto como: Obs: A curvatura também pode ser definida como o inverso do raio do círculo osculador, tangente a curva em. 06/09/2015 Processamento de Malhas Poligonais 21
Curvas Superfícies 06/09/2015 Processamento de Malhas Poligonais 22
Superfícies Definição de Superfície Consideraremos superfícies suaves, ou seja, variedades de dimensão 2 de classe, orientáveis imersas em. 06/09/2015 Processamento de Malhas Poligonais 23
Superfícies Definição de Superfície Consideraremos superfícies suaves, ou seja, variedades de dimensão 2 de classe, orientáveis imersas em. Forma paramétrica: 06/09/2015 Processamento de Malhas Poligonais 24
Superfícies Definição de Superfície Consideraremos superfícies suaves, ou seja, variedades de dimensão 2 de classe, orientáveis imersas em. Forma paramétrica: Obs: Como a superfície é suave, suas funções coordenadas são suaves. 06/09/2015 Processamento de Malhas Poligonais 25
Superfícies Definição de Superfície Consideraremos superfícies suaves, ou seja, variedades de dimensão 2 de classe, orientáveis imersas em. Exemplo: 06/09/2015 Processamento de Malhas Poligonais 26
Superfícies Definição de Superfície Consideraremos superfícies suaves, ou seja, variedades de dimensão 2 de classe, orientáveis imersas em. Exemplo: 06/09/2015 Processamento de Malhas Poligonais 27
Superfícies Definição de Superfície Consideraremos superfícies suaves, ou seja, variedades de dimensão 2 de classe, orientáveis imersas em. Exemplo: 06/09/2015 Processamento de Malhas Poligonais 28
Superfícies Definição de Superfície Consideraremos superfícies suaves, ou seja, variedades de dimensão 2 de classe, orientáveis imersas em. Exemplo: 06/09/2015 Processamento de Malhas Poligonais 29
Superfícies Plano Tangente De forma análoga às curvas, a métrica de uma superfície é representada pelas primeiras derivadas da parametrização. 06/09/2015 Processamento de Malhas Poligonais 30
Superfícies Plano Tangente De forma análoga às curvas, a métrica de uma superfície é representada pelas primeiras derivadas da parametrização. Obs: Assumiremos que a parametrização é regular, isto é: 06/09/2015 Processamento de Malhas Poligonais 31
Superfícies Plano Tangente De forma análoga às curvas, a métrica de uma superfície é representada pelas primeiras derivadas da parametrização. 06/09/2015 Processamento de Malhas Poligonais 32
Superfícies Plano Tangente De forma análoga às curvas, a métrica de uma superfície é representada pelas primeiras derivadas da parametrização. 06/09/2015 Processamento de Malhas Poligonais 33
Superfícies Plano Tangente O plano tangente à superfície em um ponto é plano gerado pelos vetores 06/09/2015 Processamento de Malhas Poligonais 34
Superfícies Plano Tangente O plano tangente à superfície em um ponto é plano gerado pelos vetores 06/09/2015 Processamento de Malhas Poligonais 35
Superfícies Vetor Normal O vetor normal à superfície em um ponto dado por: 06/09/2015 Processamento de Malhas Poligonais 36
Superfícies Vetor Normal O vetor normal à superfície em um ponto dado por: 06/09/2015 Processamento de Malhas Poligonais 37
Superfícies Derivada Direcional Podemos definir derivadas de direção arbitrária sobre a superfície. 06/09/2015 Processamento de Malhas Poligonais 38
Superfícies Derivada Direcional Podemos definir derivadas de direção arbitrária sobre a superfície. Seja um vetor direção definido no espaço de parâmetros. Considere uma reta que passe por e seja orientada por. 06/09/2015 Processamento de Malhas Poligonais 39
Superfícies Derivada Direcional Podemos definir derivadas de direção arbitrária sobre a superfície. Seja um vetor direção definido no espaço de parâmetros. Considere uma reta que passe por e seja orientada por. 06/09/2015 Processamento de Malhas Poligonais 40
Superfícies Derivada Direcional Podemos definir derivadas de direção arbitrária sobre a superfície. Seja um vetor direção definido no espaço de parâmetros. Considere uma reta que passe por e seja orientada por. Imagem:. 06/09/2015 Processamento de Malhas Poligonais 41
Superfícies Derivada Direcional Podemos definir derivadas de direção arbitrária sobre a superfície. Seja um vetor direção definido no espaço de parâmetros. Considere uma reta que passe por e seja orientada por. Imagem:. A derivada da curva é tangente à superfície em para t = 0. 06/09/2015 Processamento de Malhas Poligonais 42
Superfícies Derivada Direcional Podemos definir derivadas de direção arbitrária sobre a superfície. Seja um vetor direção definido no espaço de parâmetros. Considere uma reta que passe por e seja orientada por. Imagem:. A derivada da curva é tangente à superfície em para t = 0. Vetor tangente:. 06/09/2015 Processamento de Malhas Poligonais 43
Superfícies Derivada Direcional 06/09/2015 Processamento de Malhas Poligonais 44
Superfícies Matriz Jacobiana Vetor tangente:. Pela regra da cadeia... 06/09/2015 Processamento de Malhas Poligonais 45
Superfícies Matriz Jacobiana Vetor tangente:. Pela regra da cadeia... Obs: A matriz Jacobiana transforma vetores do espaço de parâmetros em vetores sobre a superfície. 06/09/2015 Processamento de Malhas Poligonais 46
Superfícies Matriz Jacobiana Vetor tangente:. Pela regra da cadeia... Obs: De forma mais geral, a matriz Jacobiana codifica como ângulos, distâncias e áreas são deformadas pela parametrização. 06/09/2015 Processamento de Malhas Poligonais 47
Superfícies Forma Fundamental Sejam e direções unitárias no espaço de parâmetros. Podemos calcular o produto escalar entre seus vetores tangente correspondentes: 06/09/2015 Processamento de Malhas Poligonais 48
Superfícies Forma Fundamental Sejam e direções unitárias no espaço de parâmetros. Podemos calcular o produto escalar entre seus vetores tangente correspondentes: 06/09/2015 Processamento de Malhas Poligonais 49
Superfícies Forma Fundamental Podemos usar a primeira forma fundamental para: 1 Medir o comprimento de uma curva sobre a superfície. 06/09/2015 Processamento de Malhas Poligonais 50
Superfícies Forma Fundamental Podemos usar a primeira forma fundamental para: 2 Medir a área de uma região U sobre a superfície. 06/09/2015 Processamento de Malhas Poligonais 51
Superfícies Definição de Curvatura Curvatura Normal: É curvatura da curva plana criada pela interseção da superfície e o plano gerado pelos vetores tangente e normal em um determinado ponto p. 06/09/2015 Processamento de Malhas Poligonais 52
Superfícies Definição de Curvatura Curvatura Normal: É curvatura da curva plana criada pela interseção da superfície e o plano gerado pelos vetores tangente e normal em um determinado ponto p. Notação:. 06/09/2015 Processamento de Malhas Poligonais 53
Superfícies Definição de Curvatura Curvatura Normal: É curvatura da curva plana criada pela interseção da superfície e o plano gerado pelos vetores tangente e normal em um determinado ponto p. 06/09/2015 Processamento de Malhas Poligonais 54
Superfícies Definição de Curvatura Variando a direção Curvatura Normal:, podemos mostrar que a curvatura normal tem dois extremos distintos, chamados curvaturas principais. 06/09/2015 Processamento de Malhas Poligonais 55
Superfícies Definição de Curvatura Variando a direção Curvatura Normal:, podemos mostrar que a curvatura normal tem dois extremos distintos, chamados curvaturas principais. Notação: curvatura máxima. curvatura mínima. e direções principais. 06/09/2015 Processamento de Malhas Poligonais 56
Superfícies Definição de Curvatura Variando a direção Curvatura Normal:, podemos mostrar que a curvatura normal tem dois extremos distintos, chamados curvaturas principais. Podemos relacionar a curvatura normal com as curvaturas principais: 06/09/2015 Processamento de Malhas Poligonais 57
Superfícies Definição de Curvatura Variando a direção Curvatura Normal:, podemos mostrar que a curvatura normal tem dois extremos distintos, chamados curvaturas principais. Podemos relacionar a curvatura normal com as curvaturas principais: Obs: Da equação vemos que as direções principais são ortogonais. 06/09/2015 Processamento de Malhas Poligonais 58
Superfícies Definição de Curvatura Curvatura Média: 06/09/2015 Processamento de Malhas Poligonais 59
Superfícies Definição de Curvatura Curvatura Média: Curvatura Gaussiana: 06/09/2015 Processamento de Malhas Poligonais 60
Superfícies Definição de Curvatura Curvatura Média: Curvatura Gaussiana: 06/09/2015 Processamento de Malhas Poligonais 61
Superfícies Definição de Laplaciano Laplaciano de funções reais de duas variáveis: 06/09/2015 Processamento de Malhas Poligonais 62
Superfícies Definição de Laplaciano Laplaciano de funções reais de duas variáveis: Laplaciano de funções definidas sobre uma superfície S. 06/09/2015 Processamento de Malhas Poligonais 63
Superfícies Definição de Laplaciano Laplaciano de funções reais de duas variáveis: Laplaciano de funções definidas sobre uma superfície S. Podemos mostrar (e veremos mais à frente no caso discreto) que: 06/09/2015 Processamento de Malhas Poligonais 64
Curvas Superfícies Operadores Discretos 06/09/2015 Processamento de Malhas Poligonais 65
Operadores Discretos Os conceitos estudados até aqui exigem que a superfície seja suave. 06/09/2015 Processamento de Malhas Poligonais 66
Operadores Discretos Os conceitos estudados até aqui exigem que a superfície seja suave. Ex: A curvatura é baseada na existência da segunda derivada. 06/09/2015 Processamento de Malhas Poligonais 67
Operadores Discretos Os conceitos estudados até aqui exigem que a superfície seja suave. Ex: A curvatura é baseada na existência da segunda derivada. Malhas poligonais são superfícies lineares por partes... Precisamos adaptar os conceitos para este tipo de objeto!! 06/09/2015 Processamento de Malhas Poligonais 68
Operadores Discretos Ponderação Local A ideia geral dos próximos slides é calcular propriedades diferenciais de forma discreta como médias sobre uma vizinhança local de um ponto da malha. 06/09/2015 Processamento de Malhas Poligonais 69
Operadores Discretos Ponderação Local A ideia geral dos próximos slides é calcular propriedades diferenciais de forma discreta como médias sobre uma vizinhança local de um ponto da malha. Existem na literatura diversas propostas: 06/09/2015 Processamento de Malhas Poligonais 70
Operadores Discretos Vetor Normal O vetor Normal à um triângulo pode ser calculado como o produto vetorial normalizado entre duas arestas do triângulo: 06/09/2015 Processamento de Malhas Poligonais 71
Operadores Discretos Vetor Normal O vetor Normal à um vértice é calculado através de ponderações espaciais dos vetores normais dos triângulos incidentes à. Notação para estrela 06/09/2015 Processamento de Malhas Poligonais 72
Operadores Discretos Vetor Normal O vetor Normal à um vértice é calculado através de ponderações espaciais dos vetores normais dos triângulos incidentes à. Os pesos podem ser escolhidos de diferentes formas: 1. Constante: Não leva em conta as medidas dos triângulos incidentes. 06/09/2015 Processamento de Malhas Poligonais 73
Operadores Discretos Vetor Normal O vetor Normal à um vértice é calculado através de ponderações espaciais dos vetores normais dos triângulos incidentes à. Os pesos podem ser escolhidos de diferentes formas: 1. Constante: Não leva em conta as medidas dos triângulos incidentes. 2. Área do triângulo: Pode gerar resultados não intuitivos. 06/09/2015 Processamento de Malhas Poligonais 74
Operadores Discretos Vetor Normal O vetor Normal à um vértice é calculado através de ponderações espaciais dos vetores normais dos triângulos incidentes à. Os pesos podem ser escolhidos de diferentes formas: 1. Constante: Não leva em conta as medidas dos triângulos incidentes. 2. Área do triângulo: Pode gerar resultados não intuitivos. 3. Ângulo do triângulo: Corresponde a tomar uma vizinhança suficientemente pequena. 06/09/2015 Processamento de Malhas Poligonais 75
Operadores Discretos Vetor Normal O vetor Normal à um vértice é calculado através de ponderações espaciais dos vetores normais dos triângulos incidentes à. Os pesos podem ser escolhidos de diferentes formas. 06/09/2015 Processamento de Malhas Poligonais 76
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Suponha que uma função está definida sobre os vértices da malha: Vértice da malha Vértice do triângulo Parametrização 06/09/2015 Processamento de Malhas Poligonais 77
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Podemos interpolar linearmente dentro de um triângulo: 06/09/2015 Processamento de Malhas Poligonais 78
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Podemos interpolar linearmente dentro de um triângulo: Onde: 06/09/2015 Processamento de Malhas Poligonais 79
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Podemos interpolar linearmente dentro de um triângulo: Logo: 06/09/2015 Processamento de Malhas Poligonais 80
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Como: Temos: 06/09/2015 Processamento de Malhas Poligonais 81
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Como: Temos: 06/09/2015 Processamento de Malhas Poligonais 82
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Pela ilustração, vemos que a direção de maior crescimento da função base ortogonal a aresta oposta ao vértice. é 06/09/2015 Processamento de Malhas Poligonais 83
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Pela ilustração, vemos que a direção de maior crescimento da função base ortogonal a aresta oposta ao vértice. é 06/09/2015 Processamento de Malhas Poligonais 84
Operadores Discretos Vetor Gradiente Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Finalmente, temos: 06/09/2015 Processamento de Malhas Poligonais 85
Operadores Discretos Operador Laplaciano Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Pelo teorema de Stokes... 06/09/2015 Processamento de Malhas Poligonais 86
Operadores Discretos Operador Laplaciano Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Pelo teorema de Stokes... 06/09/2015 Processamento de Malhas Poligonais 87
Operadores Discretos Operador Laplaciano Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Logo, temos... 06/09/2015 Processamento de Malhas Poligonais 88
Operadores Discretos Operador Laplaciano Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Como a região de integração passa pelos pontos médios da aresta do triângulo e o gradiente é constante no triângulo... 06/09/2015 Processamento de Malhas Poligonais 89
Operadores Discretos Operador Laplaciano Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Finalmente... 06/09/2015 Processamento de Malhas Poligonais 90
Operadores Discretos Operador Laplaciano Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Temos: 06/09/2015 Processamento de Malhas Poligonais 91
Operadores Discretos Operador Laplaciano Para definir o operador Laplaciano (das cotangentes) sobre em malhas poligonais, precisaremos do gradiente de uma função definida sobre uma malha. Temos: 06/09/2015 Processamento de Malhas Poligonais 92
Operadores Discretos Curvaturas Média e Gaussiana Vimos anteriormente que a curvatura média é: Podemos aproximar a curvatura Gaussiana por: 06/09/2015 Processamento de Malhas Poligonais 93
Operadores Discretos Curvaturas Principais Usando as curvaturas média e gaussiana, podemos escrever as curvaturas principais: 06/09/2015 Processamento de Malhas Poligonais 94