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 
delta_treturn(DELTA_T);
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.

Referências

[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