Atividade: Suavização de Sólidos pelo método de Subdivisão Sucessiva de Catmull-Clark
Disciplina IA841 - Introdução à Modelagem de Sólidos - profa. Wu, Shin Ting
Alex F. Seehagen - RA 058483 - alexfsee [at] dca.fee.unicamp.br





Nesta atividade foi implementado o algoritmo de subdivisão sucessiva de Catmull-Clark para a suavização de Sólidos.

A implementação foi baseada no algoritmo encontrado no artigo "Recursively generated B-spline surfaces on arbitrary topological meshes" por E. Catmull e J. Clark (Computer-Aided Design 10(6):350-355, November 1978), e segue os seguintes passos.

Quando um poliedro é subdividido com o método de Catmull-Clark,

- Novos vértices(Vértices-face) são colocados no centro da face original, calculados pela média simples dos vértices daquela face.

- Além disso, outros vértices (vértices-aresta) são colocados no "centro" da aresta original (calcula-se com a média dos vértices daquela aresta E com a média dos vértices-face das duas faces que aquela aresta separa).

- Novas arestas são adicionadas para conectar os novos vértices-arestas aos novos vértices-face das faces adjacentes.

- Por último, os vértices do sólido são "reposicionados", de acordo com a equação abaixo:

Q      2R      S(n-3)
--- + ---- + --------
n         n           n

onde

* Q é a média dos pontos da nova face em torno do antigo vértice,
* R é a média dos pontos médios das arestas compartilhando o antigo vértice,
* S é o antigo vértice, e
* n é o número de arestas compartilhando o antigo vértice.

Abaixo, está ilustrada a suavização obtida com a subdivisão sucessiva de dos sólidos:um cubo e um tetraedro







* É interessante notar que em sólidos regulares que possuem vértices que unem 3 arestas, há uma tendência de todos os objetos se tornarem esféricos, perdendo a sua forma original. Isso acontece por causa do reposicionamento dos vértices originais pela terceira parte da fórmula: "S(n-3)/n", onde S é o próprio vértice e n é o número de arestas compartilhadas por aquele vértice. Se o número de arestas (n) for 3, o ponto é desconsiderado ao ser multiplicado por zero.

Uma pequena modificação apenas na primeira interação para "S/n", resultaria na preservação da forma do objeto, mesmo estando suavizado, conforme as imagens abaixo:






Para ver o executável e o código-fonte, clique aqui e salve o arquivo ZIP.

Ao executar o progama, são permitidas a visualização dos sólidos originais e de até 3 interações utilizando os números de 1 a 8. Os sólidos ainda podem ser rotacionados nas direções X (usando x ou X) e Y (usando Y ou y)