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

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

Representação Geométrica Rodrigo de Toledo (CG1, UFRJ)

Apresentações semelhantes


Apresentação em tema: "Representação Geométrica Rodrigo de Toledo (CG1, UFRJ)"— Transcrição da apresentação:

1 Representação Geométrica Rodrigo de Toledo (CG1, UFRJ)

2 Níveis de escala CenaMacroMicroscaleMeso Objetos do mundo virtual Representação dos objetos Textura Nível fotométrico Aqui

3 Representação da geometria Implícita –Equação determina a descrição geométrica –Ex: quádricas, cúbicas e torus Paramétrica –Função determina regra de construção –Ex: Bézier, Nurbs Explícita –A geometria é descrita “ponto-a-ponto” –Ex: malha de triângulo e mapa de alturas

4 Representação Geométrica Implícita Quádricas, cúbicas, etc... CSG

5 Exemplo: círculo Representação Implícita: Representação Paramétrica: Representação Explícita:

6 Superfícies implícitas superfícies implícitas são definidas por uma função f : R 3  R A função divide o espaço em três: surperfíce: f(x,y,z)  0 interior: f(x,y,z) < 0 exterior: f(x,y,z) > 0 f  0 f  0 f  0

7 Classificação das superfícies implícitas O grau da polinomial da função é que define o grau da superfície. –Grau 2: quádricas –Grau 3: cúbicas –Grau 4: quárticas A quantidade de parâmetros S para cada grau p pode ser calculada usando:

8 Quádricas –Quádricas: Esfera: x 2 + y 2 + z 2 = 1

9 Representação matricial das quádricas Matriz simétrica Q 4x4 contendo os 10 coeficientes:

10 Classificação das quádricas Para entender a nomenclatura 3D, primeiro vamos ver a nomenclatura 2D... cylindersellipsoidsconeshyperboloids spheres

11 Curvas em 2D

12 Classificação das Quádricas vide wikepedia Saddle Cela do cavalo

13 Cúbicas

14 Quárticas Torus é a quártica mais conhecida:

15 Qual a complexidade da equação do coração? f(x,y,z) = (2x 2 + y 2 + z 2 – 1) 3 – 0.1 x 2 z 3 – y 2 z 3

16 Cálculo da normal à superfície Gradiente da superfície no ponto x,y,z Qual é a normal de uma quádrica? Qual é a normal normalizada do ponto [x,y,z] numa esfera de raio unitário?

17 CSG (Constructive Solid Geometry)

18 CSG Operações booleanas União Diferença Interseção A diferença não é comutativa

19 CSG Objeto é representado por uma árvore –Operadores em nós internos –Primitivas simples nas folhas –Combinação bottom-up Obs: –Como há operações não comutativas, as arestas são ordenadas –Pode haver nós de transformação: rotação, translação e escala...

20 Half-spaces Alguns sistemas CSG, além de primitivas sólidas, também fazem uso de half-spaces, ou seja, planos que dividem o espaço em dois Como definir um cubo a partir de half-spaces? –6 half-spaces Vantagem: –Para se fazer um corte, não precisa usar um objeto com vários lados. Desvantagem: –Problema de validação: nem toda combinação pode resultar em um objeto válido (talvez só faça sentido usar para subtração)

21 CSG & raytracing Um objeto em CSG é comumente descrito por combinações de objetos implícitos, cujos cálculos de interseção com a reta são conhecidos, tornando o raytracing de objetos CSG uma extensão natural.

22 CSG & raytracing Realizar operações booleanas com sólidos nem sempre é uma operação fácil É mais fácil interpretar o que acontece com um raio atravessando esse sólido. –redução do problema a cálculos em intervalos 1D Goldstein and Nagel, “3-D Visual Simulation”, Simulation, January 1971.

23 CSG 1D ABA  B A: B: A  B:

24 CSG 1D A: B: A  B: A  B: A – B: B – A: A  B B – A A – B

25 CSG 1D Classificação in/out por região: Exercício: Preencher a tabela acima! ABA  BA  BA – BB – A in out inoutinoutinout in out in out ABA  BA  BA – BB – A in out in out

26 CSG & Rasterização Também é possível visualizar sólidos CSG com rasterização Ordenação a posteriori dos fragmentos (pixels de cada primitiva) Vide: –Rossignac and Requicha, “Depth-buffering Display Techniques for Constructive Solid Geometry”, CG & A, September 1986.

27 Algumas questões A ordem na árvore tem importância? –Sim, verticalmente e horizontalmente (dif.). Existe uma representação única, dado um objeto final e suas primitivas? –Não A árvore tem que ser binária? –Os nós de união e interseção poderiam ter mais de um filho, mas diferença é sempre entre dois filhos.

28 Possíveis questões de prova Monte a árvore CSG deste sólido, sabendo que as folhas são 2 cilindros e 1 esfera Monte a árvore CSG deste sólido e desenhe o que acontece com o raio r ao longo do seu caminho para cada nó da árvore à raíz. r in out

29 Representação Geométrica Paramétrica Curvas paramétricas cúbicas – Introdução – Continuidade – Algoritmo de De Casteljau – Hermite, Bézier e Splines (B-Splines e Nurbs) Superfícies paramétricas bicúbicas – Bézier...

30

31 Curvas Paramétricas Cúbicas Por que paramétricas? –são descritas em t f(t), 0 ≤ t ≤ t =

32 Por que cúbicas? Grau 3: Por que não <3? –Pouca flexibilidade Por que não >3? –Computacionalmente caro –“Franjas” indesejáveis (unwanted wiggles) Por que 3? –Controle suave (derivadas) da curva passando em dois pontos –Menor grau de curva em 3D

33 Paramétricas Por que não f(x), ao invés de f(t)? Mas como representar esses casos? x f(x)

34 Uma função para cada dimensão

35

36 Matricialmente Derivada em t ?

37 Algoritmo de De Casteljau Interpolação x Aproximação

38 John Edson R. de Carvalho

39 12

40 P0P0 P2P2 P1P1 P 01 (u) P 12 (u) P 02 (u) Algoritmo de De Casteljau u = 0.25

41 P0P0 P2P2 P1P1 P 01 (u) P 12 (u)P 02 (u) u = 0.5 Algoritmo de De Casteljau

42 P2P2 P0P0 P 12 (u) P 01 (u) P 02 (u) P1P1 Algoritmo de De Casteljau u = 0.75

43 P2P2 P0P0 P1P1 P 02 (u) Algoritmo de De Casteljau 0 ≥ u ≥ 1

44 P0P0 P2P2 P1P1 P 01 P 12 P 02 u = 0.25

45 13

46

47

48

49 ∑bi(u) = 1, 0 ≥ u ≥ 1 Peso (influência) de cada ponto:

50 Juntando curvas Como representar uma curva grande? Poderia se usar uma curva de grau n (n grande para caramba ) Ou, pode-se fazer emendas de cúbicas –Mas nesse caso, queremos garantir uma boa continuidade no ponto de junção

51 Continuidade Geometric Continuity G 0 –Duas curvas tem um ponto de junção G 1 –Se no ponto de junção, a direção (não necessariamente a magnitude) do vetor tangente é igual para as duas curvas C 1 –Se, além da direção, a magnitude for igual. C 2 –Se a direção e magnitude da derivada segunda for igual. C n –Se a direção e magnitude de for igual. Para funções de grau alto, pode-se ter continuidade de grau ainda maior: n-polinomial  C n-1 Existe G 2 ? Existe C 0 ?

52

53 C 0, C 1, C 2, C 3, C 4

54 Classificação das curvas Definidas por 4 constrains geométricas –Bézier (4 pontos) –Hermite (2 pontos e 2 tangentes) Splines –São C 1 e C 2 nos pontos de junção –Porém, não interpolam os pontos (aproximam) –3 tipos: B-splines Nonuniform B-splines (Nurbs) β-splines

55 Blending Function Matricialmente, podemos definir a curva como: Vamos reescrever C como o resultado da multiplicação entre M e G, onde G são as constrains geométricas Blending Function: B = T M

56 Bézier 70’s Como vimos no algoritmo de De Casteljau para construção de curvas de Bézier –4 pontos definem a curva de Bézier –No caso acima, quem são G1, G2, G3 e G4 ? P0P0 P1P1 P2P2 P3P3

57 Bézier No caso de Bézier, quais são os valores de M 11 a M 44 ? Lembrando que: (a-b) 3 = a 3 – 3a 2 b + 3ab 2 – b 3 e (a-b) 2 = a 2 – 2ab + b 2

58 Últimas observações Bézier Fecho convexo

59 Últimas observações Bézier Como garantir que duas curvas de Bézier P 0 P 1 P 2 P 3 e P 4 P 5 P 6 P 7 tenham –Continuidade G 0 ? –Continuidade G 1 ? –Continuidade C 1 ? Qual a grau de continuidade da seguinte curva?

60 Hermite 4 constrains geométricos: –2 pontos e suas 2 tangentes: P1P1 R1R1 R4R4 P4P4

61 Hermite Hermite Blending Function Familia de curvas alterando magnitude e direção de R 1

62 Splines Origem: “ducks” usados para retorcer uma chapa de metal flexível (spline) na determinação de superfícies curvas para navios, aviões e carros. Observe que a spline interpola todos os pontos de controle A spline é contínua em C 0, C 1 e C 2.

63 B-splines Splines tem duas desvantagens: –Os coeficientes dependem de todos os pontos de controle ou seja, mover um ponto de controle pode afetar toda a curva –A computação depende de inversão de matrizes B-splines são uma solução: –Os segmentos dependem de alguns poucos pontos de controle –Tem a mesma continuidade das splines –Menor computação –Porém: não interpolam todos os pontos Uniforme x não-uniforme –Se os pontos de controles estiverem equidistantemente distribuídos, então ela é uniforme –Caso contrário: não uniforme: NURBS

64 Superfícies paramétricas

65 Superfícies paramétricas bicúbicas Multiplicação de duas curvas A informação geométrica que define uma curva é também em função de uma variável paramétrica Forma geral de uma superfície 3D:

66 Superfícies paramétricas bicúbicas Vimos que um curva cúbica pode ser definida por (onde G é o vetor geométrico): Substituindo t por s (temos que ter outra variável para o caso das superfícies), então: Imaginemos os pontos em G variando em 3D, parametrizado por t : Se G i (t) forem cúbicos, então Q(s,t) é uma superfície paramétrica bicúbica

67 Cada G i (t) = TMG, é definido por G i = [g i1, g i2, g i3, g i4 ] T Usando (ABC) T = C T B T A T, G i (t) = G T M TT T = [g i1, g i2, g i3, g i4 ] T M TT T, Então: Escrito separadamente:

68 Superfícies de Bèzier

69 Retalhos de Bézier Curvas na fronteira são curvas de Bézier Qualquer curva para s ou t constante é uma curva Bézier Podemos pensar assim: –Cada linha da grade com 4 pontos de controle define uma curva de Bézier para o parâmetro s –Ao avaliar cada curva para um mesmo s obtemos 4 pontos de controle “virtuais” –Pontos de controle “virtuais” definem uma curva Bézier em t –Avaliando esta curva em um dado t resulta no ponto x(s,t) x(s,t)

70 Propriedades dos Retalhos de Bézier O retalho interpola os pontos dos cantos da grade de controle –Decorre das propriedades análogas das curvas de Bézier O plano tangente em um ponto do canto é dado pelas duas arestas da grade incidentes no ponto –Decorre do fato que as curvas Bézier das fronteiras incidentes têm tangentes definidas pelas arestas correspondentes O retalho é restrito ao fecho convexo da grade de controle –As funções de base somam 1 e são positivas em toda parte

71 Retalhos Bézier em Forma Matricial Se os pontos de controle não se modificam, pode-se pré-computar o produto das 3 matrizes do meio:

72 Malhas de Retalhos Bézier São malhas compostas de diversos retalhos unidos ao longo de suas fronteiras –As arestas das grades de controle precisam se justapor perfeitamente –As grades precisam ser quadriláteros OK Não

73 Continuidade em Malhas de Retalhos Bézier Como no caso das curvas Bézier, os pontos de controle precisam satisfazer restrições para assegurar continuidade paramétrica Continuidade ao longo das arestas dos retalhos: –C 0 → Pontos de controle da aresta são os mesmos em ambos retalhos –C 1 → Pontos de controle vizinhos aos da aresta têm que ser colineares e eqüidistantes –C 2 → Restrições sobre pontos de controle mais distantes da aresta Para obter continuidade geométrica, as restrições são menos rígidas –G 1 → Pontos de controle vizinhos aos da aresta têm que ser colineares mas não precisam ser eqüidistantes Para obter continuidade C 1 nos vértices das grades –Todas as arestas incidentes no ponto têm que ser colineares

74 Desenhando Retalhos Bézier Opção 1: Avaliar o retalho para um conjunto de pontos do domínio paramétrico e triangular –Normalmente, s e t são tomados em intervalos (regulares ou não) de forma que os pontos avaliados formam uma grade –Cada célula da grade é constituída de quatro pontos que vão gerar 2 triângulos –Não se usa quadriláteros visto que os pontos não são necessariamente co-planares –Renderização fácil com triangle strips –Vantagem: Simples e suportado pelo OpenGL –Desvantagem: Não há uma maneira fácil de controlar o aspecto da superfície de forma adaptativa

75 Desenhando Retalhos Bézier Opção 2: Usar subdivisão –Permite controle de erro durante a aproximação –Definida de forma semelhante à subdivisão de curvas Bézier, mas refinamento é feito de forma alternada nos dois eixos de parâmetros –Sucessivamente computar pontos médios dos vértices e uní-los Aplicar procedimento inicialmente em cada linha da grade de controle: 4x4 → 4x7 Repetir procedimento para cada coluna da grade de controle: 4x7 → 7x7

76 Procedimento Adaptativo Através da subdivisão obtemos 4 grades de controle e testamos: –Se a grade é aproximadamente plana, ela é desenhada –Senão, subdividir em 4 sub-grades e aplicar o procedimento recursivamente Problema: Retalhos vizinhos podem não ser subdivididos uniformemente –Rachaduras: polígonos de controle não se justapõem –Pode ser consertado forçando grades mais subdivididas a se justaporem às grades menos subdivididas ao longo da aresta comum Rachadura

77 Normal Como calcular a normal de uma superfície paramétrica Q(s,t) no ponto s=α e t=β ? s = α t = β

78 Computando o Vetor Normal Derivadas parciais em relação a t e a s pertencem ao plano tangente Vetor normal é calculado normalizando o produto cruzado de ambas

79 Exemplos de outras superfícies paramétricas Superfícies criadas por rotação de um curva em torno de um eixo Knots: movimentação de um círculo no espaço –Exemplo: Trefoil Knot

80 Representação Geométrica Explícita Referências das transparências: – Prof. Paulo Roma – Prof. Thomas Ottmann e Khaireel A. Mohamed –

81 Paradigma dos quatro universos. Objetos do universo físico: “sólidos” (formas) Universo matemático, descrição: –Implícita x Paramétrica x Explícita Explicitamente, exemplos de representação: mapa de altura por bordo (superfícies poliédricas) por volume (voxles)

82 Representação explícita por bordo (superfícies poliédricas) Qualquer poliedro convexo pode ser representado por uma subdivisão planar (representação linear por partes) –Malha de polígonos (ou malha de triângulos)

83 Representação Linear por Partes Superfície com geometria complexa pode ser aproximada por uma superfície linear por partes. Particiona-se o domínio da parametrização por um conjunto de polígonos. –Cada vértice no domínio poligonal é levado para a superfície pela parametrização. –A conectividade entre vértices adjacentes se mantem.

84 Propriedades Gera uma malha poligonal, definida por um conjunto de vértices, arestas e faces. –Cada aresta é compartilhada por no máximo duas faces. –A interseção de duas faces é uma aresta, um vértice ou vazia. Relação de Euler F + V = A + 2 Adjacência de vértices, arestas e faces é chamada de topologia da superfície.

85 Relação de Euler F + V = A + 2 (Foi Você que Assassinou o 2) –Existe uma face externa F + V = A + 2s s é a quantidade de bordas da malha (depende do genus do objeto) –O genus do objeto depende da quantidade de “alças” (handles) g = 0 g = 1 g = 2

86 Geometria x Topologia Dois objetos com a mesma geometria podem ter topologias diferentes Dois objetos com a mesma topologia podem ter geometrias diferentes Vamos nos concentrar na topologia! –Problema em 2D

87 Manifold Uma superfície é 2-manifold se em todo o seu domínio ela for localmente homeomorfa a um disco manifoldnon-manifold edge Non-manifold vertex

88 Subdivisão Planar Como representar (codificar)? –lista de vértices e arestas, ou –lista de vértices e faces, –Winged edge ou Half edge ou... Operações sobre Malhas Poligonais –Achar todas as arestas que incidem em um vértice. –Achar as faces que incidem numa aresta ou vértice. –Achar as arestas na fronteira de uma face –As 9 perguntas devem ser respondidas em tempo ótimo!

89 9 tipos de Relacionamentos de Adjacência

90 Codificação Explícita. Ponteiros para lista de vértices. Ponteiros para lista de arestas. Winged-Edge (Half-Edge, Face-Edge). Quad-Edge (Guibas-Stolfi). Radial-Edge. Half-Edge.

91 Sugestões?

92 Codificação Explícita A mais simples. Cada face armazena explicitamente a lista ordenada das coordenadas dos seus vértices: Muita redundância de informação. Consultas são complicadas. –Obriga a execução de algoritmos geométricos para determinar adjacências.

93 Desenho da Malha Cada aresta é desenhada duas vezes, pelos duas faces que a compartilham. Não é bom para plotadoras ou filmes.

94 Ponteiros para Lista de Vértices Vértices são armazenados separadamente. Há uma lista de vértices. Faces referenciam seus vértices através de ponteiros. Proporciona maior economia de memória. Achar adjacências ainda é complicado. Arestas ainda são desenhadas duas vezes.

95 Exemplo

96 Ponteiros para Lista de Arestas Há também uma lista de arestas. Faces referenciam as suas arestas através de ponteiros. Arestas são desenhadas percorrendo-se a lista de arestas. Introduzem-se referências para as duas faces que compartilham uma aresta. –Facilita a determinação das duas faces incidentes na aresta.

97 Exemplo

98 Outra linha de solução... DCEL: Doubly-Connected Edge List –winged-edge –radial-edge –half-edge

99 Winged-Edge

100 Criada em 1974 por Baumgart. Foi um marco na representação por fronteira. Armazena informação na estrutura associada às arestas (número de campos é fixo). Todos os 9 tipos de adjacência entre vértices, arestas e faces são determinados em tempo constante. Atualizada com o uso de operadores de Euler, que garantem: V – A + F = 2. Porém, o tamanho da estrutura é: 3V + 8A + F

101 DCEL (Doubly-Connected Edge List ) Winged-Edge Facial-Edge –Resolve faces dentro de faces Radial-Edge (Weiler, 1986) –Representa objetos non-manifold. –Armazena a lista ordenada de faces incidentes em uma aresta. –Muito mais complicada que a Winged-Edge. Half-edge –Enxuta –A mais popular!!!

102 Estrutura de dados Half-edge A estrutura de dados de uma Half-edge deve armazenar: –Ponteiro para a half-edge seguinte –Ponteiro para a half-edge oposta –Ponteiro para sua face –Ponteiro para o vértice de origem Face data structure stores: –Ponteiro para uma das half-edges da face Vertex data structure stores: –Ponteiro para uma das half-edges de origem no vértice

103 Código da estrutura Half-edge H_Edge f eNext ePrev vOrig eTwin class H_Edge { Vertex vOrig; H_Edge eTwin; H_Edge eNext; Face f; } class Vertex { Point2D p; H_Edge hEdge; } class Face { H_Edge hEdge; } Observações: Para um mesmo Vertex podem existir diversos H_Edge, porém, basta guardar um deles com origem no Vertex. Na face, basta guardar uma de suas H_Edge

104 DCEL Example: Planar Subdivision Vertex v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 p (1,1) (10,0) (9,5) (2,7) (5,8) (8,9) (5,11) (7,13) (1,13) (11,12) (6,15) hEdge e1_3 e2_3 e3_4 e4_9 e5_9 e6_7 e7_8 e8_6 e9_ v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8v9v9 v10 v11 f1f1 f3f3 f2f2 f4f4 ((Fazer exemplo no quadro))

105 DCEL Example: Planar Subdivision Half-Edge e1_3 e3_1 e2_3 e3_2 e10_3 e11_10 e9_11 e4_9 e3_4 e4_3 e9_4 e5_9 e3_5 e5_3 e9_5 e11_9 vOrig v1 eTwin e3_1 f f1 eNext e3_4 ePrev e3_ v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8v9v9 v10 v11 f1f1 f3f3 f2f2 f4f4

106 DCEL Example: Planar Subdivision Half-Edge e10_11 e3_10 e6_7 e8_6 e7_8 e8_7 e7_6 e6_8 vOrig v10 eTwin e11_10 f f3 eNext e11_9 ePrev e3_10 Face f1 f2 f3 f4 eOuterComp NULL eInnerComps e1_ v1v1 v2v2 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8v9v9 v10 v11 f1f1 f3f3 f2f2 f4f4

107 Half-edge data structure Example: Vertex list V coord he … Face list f e 0 e0 1e8 2… Half-edge list he to_vertex next_he opposite_he face

108 Exemplos de questões de prova this P1, P3, P1,

109 Triângulos Muitos sistemas trabalham exclusivamente com malhas de triângulos Por que triângulos? Algumas propriedades especiais: –Vértices são sempre coplanares –Sempre convexo –Interpolação linear (coordenadas baricêntricas) –Qualquer malha de polígonos pode ser transformada em malha de triângulos –Especialidade das GPU’s –Triângulo é sempre rígido (ex: Torre Eifel)

110 Outros Temas em Geometria Computacional Interseção de segmento de linhas Localização de Ponto –Em um polígono –Em uma subdivisão planar Triangulação de Delaunay –Delaunay (maximiza o menor ângulo de todos os triângulos) “gordura dos triângulos” Diagramas de Voronoi –Mapa de localização de ponto mais próximo –Grafo complementar ao Delaunay Fecho Convexo 3D Planejamento de Movimentação de Robôs Grafos de Visibilidade Árvores Espaciais –Kd-Trees –Quadtrees –BSP (Binary Space Partition)


Carregar ppt "Representação Geométrica Rodrigo de Toledo (CG1, UFRJ)"

Apresentações semelhantes


Anúncios Google