History: Pinho's Mestrado Thesis

[Introdução] [Objetivos] [Proposta] [Metodologia] [Interfaces] [Resultados] [Animações] [Publicações] [Referências]

Introdução

O projeto DeSMo teve sua origem em 1994, quando o aluno Agnus Horta, sob orientação da professora Dra. Wu Shin-Ting, desenvolveu um trabalho sobre superfícies deformáveis visando simular o comportamento de tecidos. Ele usou o modelo elástico de Terzopoulos et al., proposto no artigo "Elastically Deformable Models", que embasado na mecânica de contínuos utiliza grandezas diferenciáveis da geometria diferencial para estabelecer as forças em cada ponto do objeto deformável [1]. Para tornar este modelo implementável computacionalmente, uma discretização espacial é feita com o método das diferenças finitas para transformar as equações diferenciais parciais da formulação em equações diferenciais ordinárias em função do tempo. A dinâmica do objeto deformável é então feita com um esquema semi-implícito de integração temporal que soluciona um sistema linear de equações para obter diferentes formas do tecido ao longo do tempo. Este primeiro sistema recebeu o nome de Eter.

Em seguida, o projeto recebeu as contribuições do trabalho de Paulo Fernandes de Santa Clara Ramos Jr. e Marcelo de Gomensoro Malheiros, que analisaram diferentes características do modelo tentando torná-lo mais realista. Após esses trabalhos serem concluídos ficaram em evidência alguns problemas que o modelo sofria, como a inexistência de uma medida de acoplamento entre as deformações de métrica e de curvatura da superfície, que é fundamental para a formação de uma grande diversidade de dobras nos tecidos. Além disso, existiam problemas de instabilidade numérica devido ora ao mau ajuste de parâmetros no script de entrada e ora à força excessiva de resposta da superfície, causada por considerações feitas na discretização espacial.

Visando resolver esses problemas, Vanio Fragoso de Melo inseriu os conceitos da teoria de superfície de Cosserat elástica, que é fundamentada na mecânica de contínuos e possui uma formulação geometricamente exata. Ele introduziu um coeficiente de elasticidade associado ao material do tecido que relaciona as deformações de métrica e de curvatura e com isso obteve naturalmente dobras sob forças de compressão [2]. Este é um comportamento importante para o realismo na deformação de um tecido e bastante complexo de ser simulado de forma automática, de forma que alguns autores utilizam forças artificiais fictícias para produzir o mesmo efeito [3]. Além de conseguir atingir um maior realismo, este modelo possui parâmetros associados ao material do tecido de fácil interpretação geométrica, como resistência à mudança de métrica, resistência à mudança de curvatura e facilidade de criação de dobras. O custo do maior realismo alcançado no modelo foi a linearização da formulação do modelo para montar um sistema de equações lineares e produzir a dinâmica do tecido. Este processo continuava sendo feito com o esquema semi-implícito de integração temporal proposto por Terzopoulos et al. em 1986. O novo sistema recebeu o nome atual do projeto: DeSMo.

Contudo, essa última implementação do projeto ainda possuía alguns problemas, como o alto custo computacional e a limitação do número de pontos que formam o tecido, causada pelo tamanho das matrizes do sistema linear e pelo pacote matemático utilizado em sua solução. Além disso, devido algumas considerações feitas durante a discretização espacial do modelo, feita com o método das diferenças finitas, existem respostas desproporcionais das forças internas em alguns pontos das bordas do tecido. Estas respostas geram instabilidade numérica em algumas simulações, fazendo com que alguns pontos do tecido sofram grandes deslocamentos e a superfície deixe de ser regular. Para contornar este problema, Vanio Fragoso de Melo inseriu 12 constantes que funcionavam como um fator de escala para as forças internas em alguns pontos estratégicos das bordas. O ajuste destes valores era feito de forma totalmente empírica, após realimentações visuais da simulação, reduzindo a intuitividade do sistema quando usado por um usuário que não possuía o conhecimento profundo do modelo. Por último, o simulador desenvolvido até esta etapa do projeto era feito sem alguns recursos gráficos importantes, como iluminação, texturização e sem uma interface gráfica para a manipulação dos parâmetros da simulação, usando a biblioteca glut apenas para visualizar os quadros gerados.

Desta forma, o modelo de tecido desenvolvido no projeto DeSMo é bastante adequado para uma simulação realista de tecidos, apresentando comportamentos naturais de dobras sob forças de compressão e resultados visuais com precisão física, além de possuir um controle intuitivo sobre os parâmetros do material, entretanto, ele ainda possui problemas de instabilidade numérica, relacionados a discretização espacial, a solução numérica ao longo do tempo adotada para obter a dinâmica de tecidos precisa ser alterada para poder validar de forma prática a superioridade do modelo perante aos demais na formação de dobras, e uma interface gráfica interativa e amigável precisa ser desenvolvida.

topo

Objetivos

O principal objetivo do trabalho relacionado a esta etapa do projeto DeSMo é melhorar a eficiência computacional do sistema implementado sem prejudicar a qualidade dos resultados visuais, investigando qual a melhor alternativa de solução numérica para obter as diferentes geometrias do tecido ao longo do tempo e com isso produzir sua dinâmica. Também é objetivo deste trabalho apresentar uma validação prática mais aprofundada das principais características do modelo de tecido, mostrando a eficiência na criação de uma grande diversidade de dobras através de animações geradas com tecidos formados por muitos pontos.

Além disso, este trabalho tem o objetivo de desenvolver uma nova implementação do simulador do projeto, com o intuito de tornar os códigos mais modulares para facilitar a integração de novos algoritmos, como os referentes ao tratamento de colisões. Faz parte desta nova implementação a construção de uma interface gráfica visando aumentar a usabilidade do usuário para manipular os parâmetros de simulação e gerar as animações de tecidos.

topo

Proposta

Os modelos físicos são muito usados para simulações de tecidos, sendo eles divididos nos baseados na mecânica de partículas e nos baseados na mecânica de contínuos. Atualmente, a mecânica de partículas é a mais utilizada por possuir vantagem como a simplicidade na formulação e um bom desempenho computacional, já a mecânica de contínuos é reconhecida por ser mais precisa sob o ponto de vista físico, porém tem um alto custo computacional devido a sua formulação envolver grandezas diferenciáveis. Muitas vezes, o baixo desempenho da mecânica de contínuos está relacionado à solução numérica utilizada para obter os diferentes estados do tecido ao longo do tempo. As soluções encontradas na literatura são técnicas de elementos finitos ou diferenças finitas, com integração semi-implícita ou implícita, todas elas com uma complexidade computacional não linear, assim como no modelo de tecido usado no projeto DeSMo.

Desta forma, visando propor uma solução alternativa de implementação do modelo que consiga agregar eficiência computacional sem prejudicar a qualidade dos resultados visuais, este trabalho busca analisar a adequabilidade de utilizar soluções numéricas explícitas, que tem um comportamento linear, para obter as diferentes formas do tecido ao longo do tempo. Para tanto, na discretização espacial do modelo, feita com o método das diferenças finitas, é proposto um esquema condicionado diferentemente para cada fronteira da malha discreta do tecido com o objetivo de contornar os problemas de instabilidade numérica causada pela indefinição de elementos. Faz parte da proposta deste trabalho implementar e avaliar os principais métodos explícitos para solucionar as equações diferenciais ordinárias resultantes da discretização espacial, com o intuito de escolher o mais apropriado a este modelo. Com base nas análises feitas, é proposto o uso do método de Verlet para integrar o modelo ao longo do tempo e com a implementação de um simulador da dinâmica de tecidos retangulares são apresentados resultados visuais que validam de forma prática a eficiência na formação de dobras nos tecidos.

topo

Metodologia

A primeira etapa deste trabalho foi o estudo da formulação do modelo de tecido e sua respectiva implementação para compreensão de todos seus elementos. Nesta etapa foi absorvido o conhecimento sobre as bases do modelo, como a formulação da teoria geral da superfície de Cosserat e os elementos da geometria diferencial que são usados para estimar medidas físicas. O estudo da implementação do modelo mostrou que era possível tornar os códigos mais modulares e mais otimizados, bem como desenvolver uma interface gráfica de maior usabilidade para um usuário.

Depois deste estudo pôde-se traçar como meta a revisão da implementação, corrigindo alguns trechos e alterando a discretização espacial do modelo para contornar os problemas instabilidade numérica na discretização espacial do modelo. Nesta etapa os fatores de compensação inseridos na fronteira da malha discreta, bem como todos os artifícios para corrigir movimentos não esperados, foram retirados para um comportamento mais natural de tecidos.

Por fim, a implementação do modelo foi reestruturada usando a programação orientada a objetos para tornar os códigos mais modulares e também para construir uma interface lógica para futuros incrementos, como o de algoritmos referentes ao tratamento de colisões. Nesta etapa também é construída uma interface gráfica na qual todos os parâmetros de uma simulação fossem entrados de forma mais amigável a um usuário, facilitando o controle sobre a animação gerada.

Após as etapas associadas a compreensão da teoria e da implementação serem finalizadas, a proposta do trabalho pode ser atingida com a implementação e análise dos diferentes métodos explícitos considerados sobre o modelo de tecido. Para isto foram utilizadas 6 simulações de teste, cada uma com um estado de equilíbrio que tem como referência uma foto. Em seguida, uma configuração dos parâmetros de simulação é feita para aproximar cada uma das situações de teste e executada com os diferentes métodos explícitos. Os resultados são discutidos em termos de qualidade visual, estabilidade numérica e desempenho computacional. A seção Resultados desta página aborda as animações geradas em cada No restante desta página é exposto um resumo deste trabalho, mostrando as interfaces desenvolvidas, as principais imagens obtidas e as animações geradas com o simulador implementado. Todas as fotos desta página estão em alta resolução, portanto a definição delas na tela pode variar dependendo da resolução usada pelo navegador. Para visualizar uma imagem em seu tamanho original basta clicar sobre ela. As animações são descarregadas também clicando em cima das imagens que as representam.

Para um possível interesse em obter mais informações sobre este trabalho, a seção arquivos arquivos desta página conta com todos os textos produzidos, incluindo a dissertação de mestrado, e também os códigos fonte do simulador.

topo

Interfaces Gráficas

Foram desenvolvidas duas interfaces gráficas, uma para a plataforma Windows e outra para a plataforma Linux. Ambas as interfaces contam com uma janela principal que tem como objetivo primário auxiliar o processo de leitura, visualização, edição e gravação dos dados de uma simulação. Com a manipulação destes dados, a interface desenvolvida permite ao usuário gerar um determinado número de iterações da dinâmica de um tecido e produzir uma animação. Esta animação é visualizada em uma outra janela e possui recursos gráficos auxiliares ao processo de visualização, como habilitar e desabilitar opções de iluminação, texturização e preenchimento e também permite realizar deslocamentos da câmera na cena e das fontes de luz. Na janela principal é possível também inserir restrições na simulação com a abertura de uma outra sub-janela. Abaixo são apresentadas imagens das interfaces feitas para cada plataforma e um manual completo das funcionalidades de cada implementação está disponível na seção arquivos.

Plataforma Linux


Janela Principal - Aba Simulação


Janela Principal - Aba Ambiente


Janela Principal - Aba Malha


Janela Principal - Aba Objeto Deformável


Janela das Restrições


Janela de Animação com informações básicas


Janela de Animação com informações adicionais


Plataforma Windows


Janela Principal


Janela de Restrições


Janela de Animação sem iluminação


Janela da Animação com iluminação

topo

Resultados

Nesta seção são mostradas inicialmente as fotos de referência dos estados de equilíbrio desejados em cada uma das seis simulações de teste, chamadas de S1, S2, S3, S4, S5 e S6. Em seguida, para todas as simulações são geradas animações desde a superfície inicial até o estado de equilíbrio. As animações podem ser descarregadas clicando em cima das imagens.

Fotos


Simulação S1


Simulação S2


Simulação S3


Simulação S4


Simulação S5


Simulação S6

Método de Euler


Simulação S1


Simulação S2


Simulação S3


Simulação S4


Simulação S5


Simulação S6

Método do ponto intermediário


Simulação S1


Simulação S2


Simulação S3


Simulação S4


Simulação S5


Simulação S6

Método de Runge-Kutta de quarta ordem


Simulação S1


Simulação S2


Simulação S3


Simulação S4


Simulação S5


Simulação S6

Método Leapfrog


Simulação S1


Simulação S2


Simulação S3


Simulação S4


Simulação S5


Simulação S6

Método de Verlet


Simulação S1


Simulação S2


Simulação S3


Simulação S4


Simulação S5


Simulação S6

topo

Animações

Bucklings


Enrrugamento de um tecido de seda


Enrrugamento de um tecido de algodão


Enrrugamento de um tecido de jeans


Enrrugamento de um tecido de lona


Formação de uma gravata borboleta de tecido maleável


Formação de uma gravata borboleta de tecido rígido

Drapings


Foto de um caimento de tecido de cetim


Foto de um caimento de tecido plastificado


Caimento de um tecido de lona sobre uma mesa quadrada


Caimento de um tecido de cetim


Caimento de um tecido plastificado


Caimento de um tecido de algodão


Caimento de um tecido de veludo sobre uma poltrona

Hangings


Cortina leve de algodão


Cortina pesada de algodão


Cortina leve de material plastificado


Bandeira ao vento

topo

Arquivos

Nesta seção encontram-se todos os links dos arquivos produzidos durante o programa de mestrado na FEEC. Na primeira parte estão os relatórios técnicos, sendo o primeiro feito para a disciplina de Estdos Especiais (IA348), o qual apresenta um estudo sobre as interfaces dos programas gráficos 3D Studio 6 e Maya 5 para simular tecidos. Os demais pertencem a disciplina IA001, que é referente à dissertação de mestrado. A segunda parte refere-se aos artigos publicados, incluindo os submetidos. A dissertação de mestrado também está disponível, junto com arquivo executável do simulador desenvolvido, seus manuais, códigos-fonte e os scripts de configuração das simulações criadas. Ao final desta seção alguns arquivos de suporte podem ser encontrados.

Relatórios

Relatório Técnico: Estudos Especiais. (doc) | (pdf)

Relatório I: Estudo da implementação do Eter. (doc) | (pdf)

Relatório II: Revisão da implementação do Eter. (doc) | (pdf)

Relatório III: Reestruturação da implementação do Eter. (doc) | (pdf)

Relatório IV: Análise e Comparação dos elementos da Geometria Diferencial. (doc) | (pdf)

Arquivos de suporte ao relatório IV feitos no MATLAB: (elex_shoe.m) | (vanio_shoe.m) | (compare_vn.m)

Artigos

Simulação Realista de Tecidos - publicado nos Proceedings do SBGAmes 2006. (doc) | (pdf)

Modeling Fabrics as a Special Case of Elastic Cosserat Surface - submetido a revista ACM Transactions em 2006. (pdf)

Intuitive Modeling of Folds and Wrinkles in a Cloth Simulation - submetido para o SIBGRAPI 2007. (pdf)

Dissertação de Mestrado

Soluções Numéricas em um Modelo de Tecidos Baseado na Superfície de Cosserat - versão preliminar disponibilizada para a banca de defesa. (pdf)

Simulador

DeSMO.exe - programa executável para plataforma Windows. Os scripts de teste podem ser obtidos aqui.

Códigos

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Malha.cpp, Malha.h - arquivos comuns para 2 plataformas - atualizado em 02/01/08
Render.cpp, Render.h - arquivo para plataforma Linux - atualizado em 02/01/08
Auxiliares.zip - arquivo com os códigos-fonte dos formulários da interface do DESMO para plataforma Linux - atualizado em 02/01/08
DeSMo.bpr - arquivo do projeto DESMO para plataforma Windows - C++ Builder: DeSMo.cpp, render_form.cpp, render_form.h - atualizado em 02/01/08

Scripts

Scripts2008.zip - todos os scripts usados ao longo deste trabalho - atualizado em 02/01/08

Outros

DivX 6.8 for Windows - codec necessário para visualizar todas as animações desta página (a última versão pode ser obtida de graça em www.divx.com)

topo

Referências

[1] - Terzopoulos, D. and Platt, J. and Barr, A. and Fleischer, K. Elastically Deformable Models. In Computer Graphics (SIGGRAPH proceedings), volume 21(4), pages 205–214, July 1987.

[2] - Melo, V. F. Modelagem e controle de caimento e dobras em superfícies deformáveis. Tese de doutorado, Faculdade de Engenharia Elétrica e de Computação, UNICAMP, 2004. Orientadora: Prof. Dra. Wu Shin-Ting.

[3] - Baraff, D. and Witkin, A. Large steps in cloth simulation. In Proceedings of SIGGRAPH 98, pages 43–54, 1998.

topo