i nterpolating s ubdivision for m eshes with a rbitrary t opology [z orin et. al ] – siggraph96...
TRANSCRIPT
![Page 1: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/1.jpg)
INTERPOLATING SUBDIVISION FOR MESHES WITH ARBITRARY TOPOLOGY [ZORIN ET. AL] – SIGGRAPH’96
Rodrigo Braga Pinheiro
![Page 2: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/2.jpg)
INTRODUÇÃO
A superfície a ser subdividida começa com uma malha poligonal original, chamada de “gaiola de controle”.
A partir daí a superfície é subdividida em polígonos adicionais e seus vértices são movidos de acordo com uma série de regras.
As regras variam de um esquema de subdivisão para outro. Estas regras que determinam as propriedades da superfície. Por exemplo: Modified Butterfly (triângulos), Catmull-Clark(quad).
![Page 3: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/3.jpg)
CONTINUIDADE Uma característica de cada esquema é a sua
continuidade.
Esquemas são referenciados como tendo continuidade . , onde n determina quantas derivadas são continuas.
significa que nenhuma derivada é continua. Esta superfície não tem buracos na malha, mas pode apresentar quinas.
significa que a 1a derivada é continua. Esta superfície não tem buracos na malha e não gera quinas quando duas funções se encontram.
Cn
C0
C1
![Page 4: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/4.jpg)
CONTINUIDADE
C0
C1
Não tem continuidade Se encontram, mas derivadas diferentes no ponto p.
Se encontram e possuem derivadas iguais no ponto p.
![Page 5: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/5.jpg)
APROXIMATIVO VS INTERPOLATIVO
No esquema aproximativo os vértices da gaiola de controle não ficam em cima da superfície limite.
No esquema interpolativo os vértices já criados no passo de subdivisão anterior são mantidos na mesma posição.
![Page 6: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/6.jpg)
UNIFORME VS NÃO-UNIFORME
Os esquemas uniformes dividem todas as áreas da gaiola de controle usando as mesmas regras.
Os esquemas não-uniformes podem, por exemplo, subdividir uma aresta de uma maneira e outra aresta de outra maneira.
![Page 7: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/7.jpg)
TRIANGULAR VS QUADRILÁTERO
Um esquema pode ter a característica de trabalhar com malhas de triângulos ou de quads.
![Page 8: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/8.jpg)
AVALIAÇÃO DA SUPERFÍCIE
Todo algoritmo de subdivisão possui como característica uma “máscara de avaliação”. A máscara define quais os vértices que deverão ser levados em conta para deslocar um novo vértice gerado em determinada subdivisão.
![Page 9: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/9.jpg)
ESTACIONÁRIO VS NÃO-ESTACIONÁRIO
Se um esquema é estacionário, significa que o mesmo grupo de regras é usado para subdividir a malha em cada passo.
Um esquema não estacionário pode usar um conjunto de regras para o passo i e um conjunto diferente para o passo i + 1.
![Page 10: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/10.jpg)
VÉRTICES REGULARES VS EXTRAORDINÁRIOS Cada esquema de subdivisão tem sua preferência para a valência de um
vértice. Ou seja, o criador do algoritmo de subdivisão define um número considerado ideal para a quantidade de arestas que devem chegam a um vértice.
Um vértice com a valência “preferida” é chamada de vértice regular. Ou seja, se um vértice tem “n” arestas chegando nele e o número de valência escolhido pelo criador for “n”, esse vértice é regular.
Um vértice com uma valência diferente da definida pelo criador é chamado de extraordinário.
Os esquemas podem ou não produzir novos vértices extraordinários em cada subdivisão.
Extraordinário Regular
![Page 11: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/11.jpg)
MODIFIED BUTTERFLY
Nosso esquema escolhido possui continuidade , é interpolativo, uniforme, estacionário, utiliza malhas triangulares, tem como valência 6 os vértices regulares e usa as seguintes máscaras abaixo para subdivisão.
C1
Regular
Extraordinário
![Page 12: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/12.jpg)
MODIFIED BUTTERFLY – SUBDIVISÃO REGULAR Ao dividir uma aresta em duas, se os dois vértices da ponta
da aresta (pais) forem regulares, a seguinte máscara com os respectivos pesos são usados.
W é o valor de tensão a ser usado. Esse fator representa o quanto a superfície vai ficar próxima da malha de controle.
![Page 13: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/13.jpg)
MODIFIED BUTTERFLY – SUBDIVISÃO EXTRAORDINÁRIA Caso os dois vértices da aresta (pais) sejam extraordinários, calcula-se o
peso de acordo com o número de vértices vizinhos e divide-se por dois.
Caso somente um vértice da aresta seja irregular, usa-se somente este vértice para se calcular o peso.
![Page 14: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/14.jpg)
IMPLEMENTAÇÃO (INEFICIENTE)
Primeiro foi feito com uma estrutura de dados convencional para malhas. Um array guardava os vértices e outro array guardava as faces (em grupo de 3 indíces).
Na hora da subdivisão, este algoritmo apresenta complexidade O(F*F) e uma constante alta. Pois cada face deve ser subdividida e para cada subdivisão deve se achar a valência e os vértices vizinhos de cada vértice. Para achar esta valência, deve-se varrer toda a estrutura de dados de novo.
![Page 15: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/15.jpg)
IMPLEMENTAÇÃO (INEFICIENTE) A tabela abaixo mostra os resultados para a
implementação com a estrutura de dados mencionada no slide anterior.
Tetraedro Coelho
Faces T(s) Faces T(s)
16 0.001 800 0.016
64 0.002 3200 0.127
256 0.005 12800 1.7
1024 0.013 51200 27.9
4096 0.187 204800 7 min
16384 2.8 819200 >10min
65536 44.6
262144 >10 min
![Page 16: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/16.jpg)
IMPLEMENTAÇÃO
Para melhorar o desempenho, foi utilizada uma estrutura de half-edge. Que permite que consultas variadas na malha sejam feitas em tempo constante.
![Page 17: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/17.jpg)
IMPLEMENTAÇÃO
Carrega modelo e cria um VertexBuffer e um IndexBuffer.
A partir do VertexBuffer e do IndexBuffer, inicializa-se a estrutura de Half-Edge Para cada vértice, cria-se um HE_vert A cada 3 vértices, cria-se uma HE_face e
interativamente começa a criar as HE_edge
![Page 18: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/18.jpg)
IMPLEMENTAÇÃO (HALF-EDGE)
Tetraedro (visão de cima)
![Page 19: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/19.jpg)
IMPLEMENTAÇÃO (HALF-EDGE)
Estão sendo avaliados os vértices da base
![Page 20: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/20.jpg)
IMPLEMENTAÇÃO (HALF-EDGE)
Half-edge
Half-edge oposta
A
![Page 21: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/21.jpg)
IMPLEMENTAÇÃO (HALF-EDGE)
BC
D
• Um vértice pode ter “n” half-edges (se estiver conectado a “n” arestas), mas só é necessário a referência para uma delas.
• Uma face pode ter 3 half-edges, mas só é necessário a referência para uma delas.
![Page 22: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/22.jpg)
IMPLEMENTAÇÃO (NORMAIS)
Média das normais das faces que contém o vértice
![Page 23: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/23.jpg)
IMPLEMENTAÇÃO (TESSELLATION)
• Percorre cada face
• Cria vértice de cada aresta da face• 12 novas half-edges
• Marca vértices que deverão ter suas half-edges antigas deletadas
0
1
2
34
5
67
8
9
10
11
![Page 24: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/24.jpg)
IMPLEMENTAÇÃO (TESSELLATION)
Para cada um dos vértices criados, calcula-se as novas half-edges.
Após todas as half-edges terem sidos criadas, é necessário deslocar os vértices de acordo com a informação dos seus vértices geradores (pais).
Extraordinário
Regular
![Page 25: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/25.jpg)
IMPLEMENTAÇÃO
Algumas consultas usadas através dessa estrutura de dados.
![Page 26: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/26.jpg)
IMPLEMENTAÇÃO
Com essa estrutura a complexidade o algoritmo ficou linear. O(F). Abaixo os resultados:
Tetraedro Coelho
Faces T(s) Faces T(s)
16 0.001 800 0.017
64 0.002 3200 0.50
256 0.003 12800 0.131
1024 0.010 51200 0.644
4096 0.051 204800
4.2
16384 0.204 819200
42.9
65536 0.901
262144
6.3
![Page 27: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/27.jpg)
IMPLEMENTAÇÃO
O(F*F) vs O(F)
Tetraedro Coelho
Faces T(s) Faces T(s)
16 0.001 800 0.016
64 0.002 3200 0.127
256 0.005 12800
1.7
1024 0.013 51200
27.9
4096 0.187 204800
7 min
16384 2.8 819200
>10min
65536 44.6
262144
>10 min
Tetraedro Coelho
Faces T(s) Faces T(s)
16 0.001 800 0.017
64 0.002 3200 0.50
256 0.003 12800
0.131
1024 0.010 51200
0.644
4096 0.051 204800
4.2
16384 0.204 819200
42.9
65536 0.901
262144
6.3
![Page 28: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/28.jpg)
RESULTADOS
![Page 29: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/29.jpg)
RESULTADOS
![Page 30: I NTERPOLATING S UBDIVISION FOR M ESHES WITH A RBITRARY T OPOLOGY [Z ORIN ET. AL ] – SIGGRAPH96 Rodrigo Braga Pinheiro](https://reader035.vdocuments.com.br/reader035/viewer/2022070311/552fc131497959413d8d5f32/html5/thumbnails/30.jpg)
BIBLIOGRAFIA Zorin, D., P. Schröder, and W. Sweldens. “Interpolating Subdivision
for Meshes with Arbitrary Topology.” Siggraph ‘96. pp. 189–192. Dyn, N., J. A. Gregory, and D. A. Levin. “Butterfly Subdivision
Scheme for Surface Interpolation with Tension Control.” ACM Transactions on Graphics. Vol. 9, No. 2 (April 1990): pp. 160–169.
DeRose, T., M. Kass, and T. Truong. “Subdivision Surfaces in Character Animation.” Siggraph ‘98. pp. 85–94.
Dyn, N., S. Hed, and D. Levin. “Subdivision Schemes for Surface Interpolation.” Workshop in Computational Geometry (1993), A. C. et al., Ed.,” World Scientific, pp. 97–118.
Zorin, D. “Stationary Subdivision and Multiresolution Surface Representations.” Ph.D. diss., California Institute of Technology, 1997. (Available at ftp://ftp.cs.caltech.edu/tr/cs-tr-97-32.ps.Z)
Catmull, E., and J. Clark. “Recursively Generated B-Spline Surfaces on Arbitrary Topological Meshes.” Computer Aided Design, 1978.
Halstead, M., M. Kass, and T. DeRose. “Efficient, Fair Interpolation Using Catmull-Clark Surfaces.” Siggraph ‘93. p. 35.
http://www.gamasutra.com/view/feature/3177/subdivision_surface_theory.php?page=2