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)
|