Suavização de Superfícies
IA841 – Introdução à modelagem de
sólidos
Denise Hippler – 002918
Com base no artigo
"Recursively generated B-spline surfaces on arbitrary topological
meshes" de E. Catmull e J. Clark, realizou-se a suavização de um hexágono e
um tetraedro, modelados anteriormente.
O método proposto por Catmull e
Clark consiste em subdividir as faces dos sólidos, recalculando os novos pontos
das novas faces obtidas, da seguinte forma:
A partir de uma malha com seus pontos de controle, como na
figura abaixo, faz-se a subdivisão da mesma em 4 novas áreas. Os pontos que se
calcula para a subdivisão são:
1- novos pontos de face
2- novos pontos de borda
3- novos pontos de vértice
1. Para se calcular o novo ponto de face, faz-se a média dos
vértices originais da face
2. Para se obter os novos pontos de borda, faz-se a média
dos pontos de face (calculados como explicado acima) das faces adjacentes à
borda em questão com a média dos vértices antigos. Para o exemplo dado:
3. Os novos pontos de vértice são calculados a partir da
média
Onde
Q – média dos novos pontos de face de todas as faces
adjacentes ao antigo ponto de vértice.
R – média dos pontos médios de todos os antigos vértices
incidentes no antigo ponto de vértice em questão
S – antigo ponto de vértice
Para a figura dada, o cálculo seria:
A implementação foi feita de acordo com o algoritmo acima: todos
os novos pontos foram calculados e então desenhados na tela. Uma vez que a
intenção era estudar um método de suavização e não aprofundar-se em técnicas de
armazenamento de dados, é ainda possível realizar otimização e flexibilização
do código escrito.
O objetivo foi cumprido: a proposta de Catmull e Clark foi
estudada, entendida e implementada tanto para o cubo quanto para o tetraedro,
tendo-se realizado 3 iterações.
Cubo
Usando o algoritmo acima para o cubo, as subdivisões foram
feitas como na figura abaixo:
A seguir, as figuras da suavização do cubo geradas pelo
programa desenvolvido:
Imagem original do cubo
Resultado de três iterações
Tetraedro
Abaixo, um esboço do esquema usado para o tetraedro:
A seguir, as figuras geradas pelo programa desenvolvido:
Imagem original do tetraedro vista
de baixo
Resultado de três iterações
Referência
Bibliográfica:
E. Catmull and
J. Clark, “Recursively generated B-spline surfaces on arbitrary topological
meshes”