History:
Melo's Doutorado Thesis
Tópicos desta página:
1. Introdução
2. Protótipo 3. Arquivos
de parâmetros de animação 4. Comentários
adicionais 5. Referências
simulação do caimento de um pano sobre uma mesa
|
caimento de um material mais rígido do que o pano sobre
uma mesa
|
Introdução
|
Nesta página, darei uma noção da minha pesquisa
de doutorado iniciada em 03/2000, sob a orientação da profª
Drª Wu Shin-Ting, no Departamento de Computação e Automação
Industrial - DCA, da faculdade de Engenharia Elétrica e de computação
- FEEC, da Universidade Estadual de Campinas - Unicamp.
Nosso objetivo de pesquisa é propor um modelo alternativo de
superfície deformável embasado fisicamente numa teoria 2-dimensional
de contínuo de tal maneira que nos possibilite obter resultados
realísticos nas simulações de caimentos e dobras através
de uma interface simples. Iniciamos nossa pesquisa com o modelo de Terzopoulos
et al. [2], por ser um modelo baseado em mecânica
de contínuo e por possuir uma semântica geométrica
- associando medidas geométricas (tensores métrico e curvatura)
com medidas físicas de deformações (esticamento, cisalhamento
e curvamento). Acreditamos que a combinação do embasamento
em mecância de contínuo com a semântica geométrica
pode proporcionar um modelo de controle intuitivo e de resultados de simulações
realísticos. No relatório técnico "Estado
da Arte de Modelos Deformáveis" [3],
apresentamos uma revisão bibliográfica e damos um panorama
sobre modelos deformáveis.
No modelo de Terzopoulos et al. [2], detectamos dois possíveis
problemas: (1) a aproximação para o vetor normal; (2) a aproximação
para a força elástica de reação as forças
externas. Para o primeiro problema, apresentamos no artigo "An
Approximation for Normal Vetors of Deformable Models" [4]
uma proposta para o vetor normal, baseado nas fórmulas de Gauss,
que é mais exata e fiel com sua magnitude, direção
e sentido. Para o segundo problema, resolvemos fazer um estudo bibliográfico
sobre modelos de mecânica de contínuo, referente a teoria
de elasticidade, com uma abordagem voltada para superfície ou para
objetos de espessura fina ou desprezível, que nos desse um suporte
para a nossa fundamentação teórica. Encontramos uma
teoria geral, exata e completa para superfície [1].
Segue alguns comentários sobre esta teoria.
No estudo de deformações de cascas finas, existe uma abordagem
denominada de superfície de Cosserat, em homenagem aos irmãos
Cosserat (1909), que tenta modelar o comportamento de deformação
de uma casca fina através de uma superfície com vetores diretores
em cada ponto da mesma. Existem duas vertentes nesta abordagem: (1) teoria
de superfície de Cosserat 3-dimensional, que parte de princípios
físicos de equilíbrio para volumes arbitrários da
casca fina; (2) teoria de superfície de Cosserat por abordagem direta
(2-dimensional), que parte de princípios físicos voltados
para áreas arbitrárias da superfície [1].
A segunda abordagem se enquadra melhor no nosso objetivo de pesquisa, pois
é um modelo de mecânica de contínuo, tem semântica
geométrica e é voltado para superfície (evita fazermos
aproximações de um modelo 3D para um modelo 2D ou trabalharmos
com um modelo 3D).
Green et al. [1], em 1965, apresentaram uma teoria
geral, exata e completa sobre superfície de Cosserat por abordagem
direta. Nosso modelo é embasado neste trabalho de Green et al. Apresentamos
no relatório técnico "Deformações
de Superfícies" [5] a teoria apresentada
por Green et al. e o modelo computacional proposto por nós. Click
aqui para ter uma noção sobre o nosso modelo. Nosso
modelo tem uma resposta material mais fiel fisicamente do que o modelo
de Terzopoulos et al., cuja resposta material é simplificada. |
Protótipo
|
Nosso programa é escrito na linguagem de programação
C. Utilizamos o pacote gráfico 3D Mesa
(uma implementação da API OpenGL)
e a bilbioteca glut. OpenGL é
uma interface para hardware gráfico 3D e a biblioteca glut permite
visualizar as cenas geradas pela OpenGL e gerenciar alguns eventos sobre
a janela. Fazemos uso também dos pacotes lex
(flex no linux) e yacc
(bison no linux - byacc) para criação e interpretação
de uma linguagem simples para o script de definição dos parâmetros.
Para a computação com matrizes e vetores (alocação
de memória, operações e resolução de
sistemas de equações) utilizamos a biblioteca meschach.
Para compilar o nosso programa é necessário ter instalado
a biblioteca libtiff, pois incluímos
a opção de salvar as imagens no formato tiff. Outros formatos
possíveis são: brp, shd, off (geomview}
e pov (povray).
Para a compilação do programa executável, utilizamos
os seguintes arquivos: Makefile, al.lex, as.yacc, source.c. |
Arquivos de Parâmetros
de Animação
|
De posse do programa executável, utilizamos os arquivos script's
para a entrada dos parâmetros de definição da animação.
A interpretação destes script's é de acordo com uma
linguagem simples criada via pacotes lex e yacc.
O âmago da especificação de entrada é uma
coleção de regras de entrada. Cada regra descreve uma estrutura
permissível e dá a ela um nome. Por exemplo, uma regra gramatical
pode ser
nome
|
estrutura
|
ação
|
R_SAIDA :
|
SAIDA IGUAL TIPO_FORMATO_SAIDA ;
|
|
TIPO_FORMATO_SAIDA : |
NONE
|
| BRP
|
| SHD
|
| OFF
|
| POV
|
|
{formato=-1;}
|
{formato=1;}
|
{formato=2;}
|
{formato=0;}
|
{formato=3;};
|
|
No arquivo as.lex temos as definições das palavras
saidareturn(SAIDA); |
nonereturn(NONE); |
brpreturn(BRP); |
shdreturn(SHD); |
offreturn(OFF); |
povreturn(POV); |
Um outro exemplo,
nome
|
estrutura
|
ação
|
R_DELTA_T:
|
DELTA_T IGUAL REAL
|
{ delta_t=real; } ;
|
No arquivo as.lex temos a definição da palavra
Com o pacote yacc ou bison no linux criamos a gramática ou as regras
gramaticais da nossa estrutura de entrada (as.yacc).
Assim, definimos a estrutura do arquivo script de entrada para os parâmetros
de definição da animação. Por exemplo: o
script da formação de rugas numa superfície
plana rugas .
Segue duas outras simulações: uma superfície
plana rígida com uma força perpendicular aplicada no seu
centro e a mesma superfície com forças
perpendiculares nos 4 cantos.
Algumas animações geradas com o modelo: uma bandeira tremulando
sob a ação, um pano suspenso por um ponto sob ação
da gravidade e o caimento de um pano sobre mesas de diferentes formas animac.tar.gz
.
Os slides em formato *.ppt da defesa de doutorado estão disponíveis
no arquivo defesa. |
Comentários Adicionais
|
Nossa implementação é realizada utilizando o método
de diferenças finitas, conforme detalha aqui.
As simulações estão restritas as superfícies
parametrizáveis. |
[1] Green, A.E., Naghdi, P.M. and Wainwright, W.L..
A
General Theory of a Cosserat Surface, Arch. Rat. Mech. Anal., 20, 287-308,
1965
[2] Terzopoulos, D., Platt, J., Barr, A. and Fleischer,
K.. Elastically Deformable Models, SIGGRAPH'87, vol. 21, no. 4,
205-214, 1987.
[3] Melo, V.F. de e Wu, S.T.. Estado da Arte de
Modelos Deformáveis, publicado na página http://www.dca.fee.unicamp.br/research/docs/techrep/2002.
[4] Wu, S.T. and Melo, V.F. de. An Approximation
for Normal Vectors of Deformable Models, Proceedings of SIBGRAPI'2003,
3-10, 2003.
[5] Melo, V.F. de e Wu, S.T.. Deformações
de Superfícies, publicado na página http://www.dca.fee.unicamp.br/research/docs/techrep/2003 |