aplicação da lei de hooke para simplificação e renderização de simulação física de...

15
Aplicac ¸˜ ao da Lei de Hooke para Simplificac ¸˜ ao e Renderizac ¸˜ ao de Simulac ¸˜ ao F´ ısica de L´ ıquidos Wanderson Felipe Vieira 1 , Rodrigo Richard Gomes 2 1 Instituto de Inform´ atica – Pontif´ ıcia Universidade de Minas Gerais (PUC MINAS) Belo Horizonte – MG – Brasil [email protected] Resumo. O trabalho em quest˜ ao tem por fim apresentar os m´ etodos utilizados para simplificar e criar uma simulac ¸˜ ao animada de fluidos baseado no uso da Lei de elasticidade e deformac ¸˜ ao de Hooke. Al´ em de outras aplicac ¸˜ oes das leis da f´ ısica ser´ a realizada uma abordagem sobre as ferramentas utilizadas e os princ´ ıpios de computac ¸˜ ao gr´ afica necess´ arios para a renderizac ¸˜ ao da animac ¸˜ ao no computador. 1. Introduc ¸˜ ao A representac ¸˜ ao de fluidos interagindo e recebendo forc ¸as externas vem sendo um grande desafio para a computac ¸˜ ao gr´ afica desde que os pioneiros da ´ area comec ¸aram a buscar sua adequada reproduc ¸˜ ao. Os processos dessas interac ¸˜ oes possuem um grau de alta complex- idade para uma simulac ¸˜ ao de acordo com os fen ˆ omenos f´ ısicos que as regem. As equac ¸˜ oes matem´ aticas que transcrevem as reac ¸˜ oes entre as part´ ıculas de um ıquido foram descritas por diversos f´ ısicos como Newton, Euler, Bernoulli, Navier- Stokes, entre outros. Considerando que a aplicac ¸˜ ao dessas equac ¸˜ oes baseia-se em um estudo aprofundado sobre cada uma, pode-se afirmar que dependendo da aplicac ¸˜ ao da simulac ¸˜ ao, essas ferramentas matem´ aticas s˜ ao demasiadamente complexas. Diversos algoritmos prop˜ oem uma aproximac ¸˜ ao sobre como simular de maneira mais realista poss´ ıvel as interac ¸˜ oes entre fluidos. A busca por realismo tem trazido resul- tados satisfat´ orios nos quesitos visuais e f´ ısicos. Entretanto, para aplicac ¸˜ oes mais b´ asicas onde se busca apenas uma simulac ¸˜ ao que seja convincente da reac ¸˜ ao em fluidos, um al- goritmo mais simples poderia ser aplicado. Desta maneira a contextualizac ¸˜ ao do problema se foca em como realizar uma simulac ¸˜ ao convincente da reac ¸˜ ao de uma superf´ ıcie de um fluido simplificando os algorit- mos do fen ˆ omeno f´ ısico em quest˜ ao e represent´ a-la utilizando ferramentas de computac ¸˜ ao gr´ afica. Como pode ser verificado nos trabalhos de Bonet e Madeira (1997) h´ a a possi- bilidade de se alcanc ¸ar uma oscilac ¸˜ ao em uma ´ unica part´ ıcula utilizando o princ´ ıpio das leis das molas de Hooke. Assim, esse trabalho visa aplicar essas leis a fim de modelar uma malha de part´ ıculas interligadas por molas, as quais ser˜ ao regidas pelas leis descritas anteriormente com o intuito de se alcanc ¸ar uma reac ¸˜ ao similar ` a de fluidos. 1.1. Objetivos Os objetivos gerais do artigo dizem respeito ` a pesquisa e busca de uma soluc ¸˜ ao vi´ avel para a simplificac ¸˜ ao de uma superf´ ıcie com as caracter´ ısticas de um liquido qualquer, aplicando

Upload: wanderson-vieira

Post on 14-Apr-2017

35 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

Aplicacao da Lei de Hooke para Simplificacao e Renderizacaode Simulacao Fısica de Lıquidos

Wanderson Felipe Vieira1, Rodrigo Richard Gomes2

1Instituto de Informatica – Pontifıcia Universidade de Minas Gerais (PUC MINAS)Belo Horizonte – MG – Brasil

[email protected]

Resumo. O trabalho em questao tem por fim apresentar os metodos utilizadospara simplificar e criar uma simulacao animada de fluidos baseado no uso daLei de elasticidade e deformacao de Hooke. Alem de outras aplicacoes das leisda fısica sera realizada uma abordagem sobre as ferramentas utilizadas e osprincıpios de computacao grafica necessarios para a renderizacao da animacaono computador.

1. IntroducaoA representacao de fluidos interagindo e recebendo forcas externas vem sendo um grandedesafio para a computacao grafica desde que os pioneiros da area comecaram a buscar suaadequada reproducao. Os processos dessas interacoes possuem um grau de alta complex-idade para uma simulacao de acordo com os fenomenos fısicos que as regem.

As equacoes matematicas que transcrevem as reacoes entre as partıculas de umlıquido foram descritas por diversos fısicos como Newton, Euler, Bernoulli, Navier-Stokes, entre outros. Considerando que a aplicacao dessas equacoes baseia-se em umestudo aprofundado sobre cada uma, pode-se afirmar que dependendo da aplicacao dasimulacao, essas ferramentas matematicas sao demasiadamente complexas.

Diversos algoritmos propoem uma aproximacao sobre como simular de maneiramais realista possıvel as interacoes entre fluidos. A busca por realismo tem trazido resul-tados satisfatorios nos quesitos visuais e fısicos. Entretanto, para aplicacoes mais basicasonde se busca apenas uma simulacao que seja convincente da reacao em fluidos, um al-goritmo mais simples poderia ser aplicado.

Desta maneira a contextualizacao do problema se foca em como realizar umasimulacao convincente da reacao de uma superfıcie de um fluido simplificando os algorit-mos do fenomeno fısico em questao e representa-la utilizando ferramentas de computacaografica.

Como pode ser verificado nos trabalhos de Bonet e Madeira (1997) ha a possi-bilidade de se alcancar uma oscilacao em uma unica partıcula utilizando o princıpio dasleis das molas de Hooke. Assim, esse trabalho visa aplicar essas leis a fim de modelaruma malha de partıculas interligadas por molas, as quais serao regidas pelas leis descritasanteriormente com o intuito de se alcancar uma reacao similar a de fluidos.

1.1. ObjetivosOs objetivos gerais do artigo dizem respeito a pesquisa e busca de uma solucao viavel paraa simplificacao de uma superfıcie com as caracterısticas de um liquido qualquer, aplicando

Page 2: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

os princıpios das leis das molas de Hooke assim como a renderizacao do fenomeno usandoas ferramentas graficas do OpenGL e C++ como linguagem padrao.

Os objetivos especıficos dessa abordagem dizem respeito a realizacao do estudoe comparacao dos atuais metodos de simulacao de fluidos existentes a fim de se chegara uma definicao das ferramentas matematicas utilizadas para a devida representacao dofenomeno em questao. Em seguida pretende-se modelar o algoritmo para realizar asimulacao da malha superficial do lıquido e a conexao entre as partıculas do mesmo.

Apos o estudo e modelagem adequados, serao definida as ferramentasmatematicas para a aplicacao de movimento a cada partıcula e consequentemente a malhaque representa a superfıcie do lıquido, verificando as variaveis do sistema e realizandoajustes para se alcancar o resultado mais satisfatorio possıvel.

Depois da implementacao do algoritmo geral que definira os calculos matematicosda simulacao em questao, deve-se modelar o algoritmo de renderizacao a fim de exibircorretamente os resultados em tela. Por fim, com a visualizacao do produto na tela serapossıvel realizar os experimentos da alteracao de variaveis a fim de se analisar o compor-tamento do produto final.

2. Referencial Teorico2.1. Simulacao de FluidosLevando em consideracao as leis da fısica que abordam o comportamento de fluidos,pode-se verificar a grandeza de sua complexidade em um universo de projecoes, em queos cientistas consideram Inercia e Tensao de Superfıcie como os escultores dos fluidos[Yarin 2006].

A comunidade de computacao grafica tem dedicado muito esforco e pesquisa parao entendimento e adequada representacao dos fluidos a mais de tres decadas. Os flu-idos continuarao sendo um tema importante, ja que melhores algoritmos, mais rapidose fisicamente mais precisos para a sua simulacao e renderizacao sao desenvolvidos fre-quentemente [Bojrab e Benes 2013].

A visualizacao de lıquidos e um problema importante e desafiador que temaplicacoes nas areas de estudos cientıficos de fluidos, realidade virtual e entretenimento.Tecnicas de computacao grafica para simular tais fenomenos fısicos sao necessarias nasaplicacoes acima mencionadas. Essas tecnicas devem resolver os problemas de mode-lagem e representacao de fluidos [Adabala e Manohar 2002].

Os lıquidos em geral sao substancias comuns, facilmente reconhecidas, poremde traducao complexa e demorada. Os seres humanos percebem os lıquidos atraves desua interacao com a luz e o ambiente que o rodeia. O mais importante fenomeno deiluminacao quando a agua e processado pode ser grosseiramente classificados em reflexaoespecular, refracao, causticos, e sombra. Esses fenomenos, juntamente com a superfıciecomplexa de agua, lhe dao uma aparencia unica e trabalhosa. [Bojrab e Benes 2013].

Para resolver os problemas de dinamica de fluidos em superfıcies livres sao geral-mente aplicadas as equacoes de Navier-Stokes. Essas equacoes podem ser usadas parasimular ondas nos lıquidos e sua movimentacao em geral [Kunimatsu e Watanabe 2001].

Alem disso podem ser usadas equacoes de aguas rasas que sao a forma mais

Page 3: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

simples das equacoes do movimento e podem ser usadas para descrever a estruturahorizontal de uma atmosfera. Elas descrevem a evolucao de um fluido em resposta aaceleracoes gravitacionais e rotacionais. As solucoes das equacoes de aguas rasas repre-sentam muitos tipos de movimento, incluindo ondas de Rossby e ondas inercia-gravidade[Randall 2006].

Segundo Adabala e Manohar (2006), varias tecnicas sao usadas para modelar eprocessar um fluido numa cena, dependendo da necessidade da aplicacao. O termo ”real-ismo” tem sido associado a diferentes significados em computacao grafica. No contextode imagens geradas por computadores e possıvel distinguir tres tipos de realismo:

• Realismo Fısico: A imagem fornece a mesma simulacao visual como a cena,baseada nas dinamicas das leis da fısica.• Foto Realismo: A imagem produz a mesma resposta visual como a cena,

simulacoes de dinamica realismo tentar gerar aspecto visualmente convincentede movimento, neste caso, sao aplicadas tecnicas intuitivas que nao satisfacam asleis da fısica.• Realismo Funcional: A imagem fornece a mesma informacao visual como a cena.

O comportamento dinamico e criado, que transmite a informacao de que um objetodinamico esta presente, por exemplo; uma onda senoidal com amplitude variadarepresentando uma onda em animacao aplicada

De acordo com Kunimatsu (2001) os custos de calculo e processamento paraa renderizacao de uma simulacao que aplique toda equacao de Navier-Stokes e muitoalta. Caso o objetivo final seja somente uma representacao convincente do fenomenoem questao e dependendo do tamanho abstrato da simulacao, outros metodos podem seraplicados.

Partindo para uma abordagem mais criativa, metodos de criacao de superfıciesdeformaveis se tornam um ponto de partida para um enfoque mais ousado do problemaem questao. Sistemas de molas podem fornecer um metodo simples, mas pratico, paraa modelagem de uma grande variedade de objetos incluindo pano, cabelo, solidos, alemde uma serie de outras superfıcies deformaveis. Essa resolucao mais simplista baseia-seem sistemas de malhas de molas regidas pela lei de Hooke. Alem disso, a formulacao deotimizacao de integracao de Euler e as leis de Newton devem ser utilizadas implicitamentepara alcancar os resultados. [Liu et al. 2013].

2.2. Aplicacao das leis de Hooke e abstracao do modelo fısico

Sistemas de molas sao conceitualmente mais simples e mais faceis de implementar doque os modelos fisicamente mais consistentes derivados da mecanica de meios contınuos,utilizando o metodo de elementos finitos [Bonet e Wood 1997].

De acordo com a explicacao de [Erleben et al. 2005] uma grande vantagem sobremolas e que elas sao faceis de simular. Molas tem um certo comportamento natural: seestica-la ou comprimi-la, a tendencia e que ela regresse ao seu comprimento natural. Aforca proporcionada por uma mola e dado pela Lei de Hooke:

F = −kx

Page 4: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

Onde F e a forca produzida pela, k determina a constante do material da mola quedetermina a dureza, e x a variacao do deslocamento inicial com o final. Ainda e propostoque para mover massas conectadas por uma mola, devemos considerar a segunda lei deNewton de conservacao do movimento.

F = ma

Onde F e a forca, m determina a massa do objeto, no caso da simulacao daspartıculas interligadas por meio de molas, e a, sua aceleracao.

Alem disso, [Triana e Fajardo 2013] mencionam que o movimento harmonicosimples de um sistema de molas geralmente e fortemente determinado pelos parametrosgeometricos da mola, ou seja, suas constantes que variam de acordo com o material ediametro da mesma. Define-se entao constante elastica como sendo o valor da relacaoentre essa tensao aplicada e a deformacao por ela provocada.

Independentemente da aplicacao de um sistema de molas ou outro metodo baseadona mecanica de meios contınuos, e importante a integracao numerica de tempo para sim-ular a dinamica do sistema. Os metodos de integracao mais simples sao explıcitas nastecnicas de Euler [Flannery et al. 2007].

Para efeitos de animacao baseada em fısica, onde as preocupacoes de desempenhosao grandes, metodos explıcitos muitas vezes nao sao suficientemente eficazes e apresen-tam problemas de estabilidade. O trabalho de [Witkin e Baraff 1997] introduziu o metodode Euler implıcito que oferece maior robustez para sistemas rıgidos. A solucao tradicionalnumerica de Euler emprega juntamente o metodo de Newton, que requer a solucao de umsistema linear em cada iteracao.

O metodo numerico mais simples e chamado de metodo de Euler. Considerandoo valor inicial para x ser x0 = x0(t0) e a estimativa posterior de tempo ser (t0 +h), ondeh e o passo de tempo. O metodo de Euler simplesmente computa x(t0 + h) considerandoesse passo em uma direcao derivativa.

x(t0 + h) = x0 + hx(t0)

Assim a oscilacao da onda se baseara em uma aproximacao da verdadeira curva eseguira um padrao poligonal. Deve-se se lembrar que o metodo de Euler nao e fisicamentepreciso assim, os valores devem ser ajustados para que os mesmo nao tendam para oinfinito [Witkin e Baraff 1997].

3. Computacao grafica para simulacao dos resultadosO principal objetivo da computacao grafica e reproduzir da forma mais fiel possıvel arealidade percebida por nos com toda a complexidade de fenomenos naturais que noscercam. A utilizacao de meios de computacao grafica com o intuito de representar emanipular imagens e modelos de dados sao de extrema importancia para o entendimento ea simulacao do problema em questao. Tratando-se de representacao de fenomenos fısicos,considera-se as aproximacoes adquiridas com as ferramentas de computacao puramentedependentes das aplicacoes dos algoritmos que serao representados [Darles et al. 2011].

Page 5: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

Cada computador hoje tem um poderoso pipeline de graficos 3D. Este e um sub-sistema especial de software/hardware que desenha de forma eficiente primitivas, que saoos elementos basicos que formam um desenho 3D em perspectiva. Normalmente, essessistemas sao otimizados para o processamento de triangulos 3D com vertices compartil-hados. As operacoes basicas no pipeline mapeiam os locais de vertices 3D para seremcarregados em 2D na tela, alem de sombrear os polıgonos para que eles tenham um olharmais realista serem exibidos de maneira correta [Heer e Robertson 2007].

Uma serie de metodos sao particularmente adequados para calculos na unidade deprocessamento grafico (GPU). No caso de simulacao de superfıcies, poderao ser usadasmalhas que interligam os vertices a fim de criar pequenos triangulos ao longo do objetoque se deseja formar. Ao se gerar o modelo geometrico, pode-se a partir daı trabalhar nasfuncoes visuais e fısicas do objeto em si [Zhang et al. 2012].

3.1. Trabalhos RelacionadosO trabalho de [Robertson e Sherwin 1999] utiliza o mesmo princıpio da simulacao da su-perfıcie por malhas interligadas, porem o algoritmo e criado em cima de equacoes lapla-cianas e calculos avancados. Os resultados encontrados sao fisicamente mais precisos secomparados com os esperados por esse trabalho. Outras sugestoes tambem sugerem amesma aplicacao de malhas, interligando varias partıculas entre si com a utilizacao dearestas, porem calculam as interacoes usando Navier-Stokes que, como foi visto, e maiscustoso devido a complexidade dos calculos utilizados. Nota-se tambem que a realidadealcancada com essa simulacao e mais realista. [Kunimatsu e Watanabe 2001].

4. MetodologiaEssa pesquisa, de natureza aplicada, tem como objetivo explorar e gerar um algoritmoque simplifique os ja existentes para representacao da movimentacao de uma superfıciede um liquido qualquer. Conforme pode se verificar atraves de materiais de referencia,parte da pesquisa tem cunho analıtico, ja que visa aplicar leis da fısica voltada para outrosfins, no caso em questao, o comportamento de molas, para reacao das partıculas de umasuperfıcie que se comportara como lıquido.

Por se tratar de um fenomeno do qual se busca uma modelagem do algoritmode maneira qualitativa, os resultados esperados podem nao ser conclusivos ate a geracaodos primeiros prototipos da interacao entre duas ou mais partıculas. Dessa maneira umapesquisa experimental foi conduzida e para modelagem do algoritmo e renderizacao con-forme descrito anteriormente alguns passos foram seguidos a fim de se obter o produtofinal.

Primeiramente apos decidir qual sera a base do algoritmo, um novo estudo apro-fundado sobre a aplicacao das leis das molas de Hooke sobre partıculas com massa enecessario. A modelagem das equacoes gerais para oscilacao de uma unica partıcula e re-alizada a fim de se obter um prototipo do algoritmo aplicando as equacoes de uma unicapartıcula. Para agilizar o processo de prototipacao, utilizou-se a linguagem Python paraprogramar os primeiros prototipos.

Apos o primeiro prototipo concluıdo foi realizada a analise do comportamento dapartıcula (oscilacao atraves do tempo) atraves dos valores gerados da posicao da partıcula,e possıveis ajustes das variaveis foram realizados conforme necessario. Sequencialmente

Page 6: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

foi realizada a agregacao e prototipacao de mais nos ao no inicial assim como a verificacaoe comparacao das diferencas apos a agregacao.

A modelagem da malha da superfıcie interligando os nos foi desenvolvida emC++ utilizando uma lista foi utilizada para armazenar objetos do tipo ”No”, esse objetopor vez tera seu proprios ındices armazenados, alem das posicoes dadas em coordenadas,forcas resultantes do meio e atributos necessarios para a simulacao. A malha formara umplano com os mesmos nos uniformemente espacados. Foi realizado o teste do prototipo,verificando e ajustando o algoritmo quando necessario, alem de verificar as propagacoesde forcas entre os nos e esbocar graficos comparativos entre as forcas recebidas em cadano e suas respectivas oscilacoes.

Para a aplicacao do algoritmo de renderizacao utilizou-se a OpenGL a fimde se obter o desenho grafico da malha em questao. Nessa etapa conceitos decomputacao grafica serao amplamente aplicados, como inicializacao dos vertices (nos),interligacao das arestas aos vertices para formacao da malha, ajuste das variaveis da GPU,configuracao de camera, perspectiva, entre outros.

Com a renderizacao da superfıcie visualmente acessıvel e possıvel se verificar ocomportamento real do algoritmo renderizado na tela, nessa etapa pode-se visualizar osresultados dos prototipos verificando a movimentacao e reacao das partıculas em questao.Os dados serao analisados e ajustes serao feitos se necessario. Assim, com o algoritmofuncionando corretamente, sera realizada a aplicacao de cor, iluminacao e reflexo na su-perfıcie criada, nessa etapa diferentes tecnicas de iluminacao serao testadas para gerar ummelhor aspecto a simulacao. Essas etapas serao descritas ao longo do artigo.

5. Criacao da Simulacao5.1. Analise e Prototipacao de partıcula simplesPrimeiramente foi realizada a modelagem na linguagem Python das equacoes gerais paraoscilacao de uma unica partıcula a fim de se obter um prototipo do algoritmo aplicandoas equacoes de maneira separada.

O modelo de molas foi escolhido devido sua facilidade de simulacao. Esses obje-tos possuem um tamanho natural que podem ser comprimido ou esticado voltando ao seuestado natural quando em estado de equilıbrio. Considerou-se entao uma unica partıculasituada em um plano imaginario onde a massa da mesma esta sendo sustentada por umamola perpendicular ao plano. Desta maneira, sera usada a lei de Hooke para atuar nessamola.

Para simular o movimento da partıcula, ha a necessidade da aplicacao de umaforca externa para retirar o sistema do equilıbrio, dessa maneira pode-se fazer umaassociacao com a segunda lei de Newton que propoe que quanto maior forca e aplicada aum objeto e quanto menos massa esse objeto possuir, maior sera sua aceleracao. Fazendoessa combinacao entre as duas leis temos:

Fnewton = Fhooke⇔ ma = −kx

a =−kmx

Page 7: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

Considerando ainda que todas as partıculas da superfıcie possuem a mesma massafoi realizada a combinacao do fator k/m em uma unica constante.

Figure 1. representacao do modelo de interacao entre partıcula e mola

Como visto no estudo de referencias, a determinacao do valor da constante damola e baseada em experimentos que medem a quantidade que a mola de desloca deacordo com a forca aplicada em sua extremidade. Desta maneira, e possıvel simularuma mola levando em consideracao a forca aplicada com a quantidade que a extremidadese desloca, no nosso caso como estamos incluindo outras variaveis em conjunto, foramrealizados experimentos para verificar como uma simples mola se comporta em diferentessituacoes. Esses resultados serao discutidos em seguida.

Por se tratar de uma simplificacao do fenomeno em questao e como nao enecessaria uma fısica demasiadamente precisa, foi utilizada a forma mais simples daintegracao numerica para determinar a posicao da partıcula em cada frame da simulacao.Assumindo entao o metodo de Euler, que atendeu de maneira satisfatoria o proposito doprimeiro prototipo, pode-se determinar a posicao da partıcula em cada frame provinda daaceleracao aplicada no primeiro instante. Assim, para determinar a posicao que a partıculaassumira no frame seguinte, soma-se sua atual posicao com sua atual velocidade, e con-sequentemente soma-se a sua propria velocidade a aceleracao do instante daquele frame,desta maneira temos:

posicao.nova.da.particula = posicao.atual + velocidade

velocidade.nova.da.particula = velocidade.atual + aceleracao

Em complemento, considera-se a constante da mola igual a 0,025 e assume-seque o x da formula apresentada diz respeito a variacao entre o tamanho original da molae a posicao que ela se encontra naquele momento. Com isso obtem-se o resultado daoscilacao da partıcula.

Durante o experimento foram testados diferentes constantes de rigidez da mola,responsavel pelas caracterısticas de oscilacao. Algumas alteracoes dos valores fazem osistema se comportar de maneiras diferentes. Quando se diminui o valor dessa constante,nota-se que a oscilacao passa a ser consideravelmente menor a medida que esse valor

Page 8: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

diminui, a ponto do sistema nao se mover devido ao excesso de rigidez. Em contra-partida, aumentando-se o valor da constante, a oscilacao passa a ganhar valores cadavez maiores. Notou-se que esses valores devem ser alterados com cautela, uma vez queo metodo de integral de Euler tende a ganhar energia fazendo a simulacao ficar menosprecisa e consequentemente fazendo as partıculas assumirem valores de posicao no eixovertical muito elevados.

Uma vez que a partıcula respondeu a forca aplicada oscilando seu valor vertical,pode-se aplicar o fator de amortecimento, que e responsavel por reestabelecer o equilıbriodo sistema. Esse fator aplica uma forca na direcao oposta em que a mola se move com afinalidade de desacelera-la. Assim a formula de aceleracao e ajustada para:

a = −kx− (Famortecimento ∗ velocity)

Figure 2. Oscilacao da partıcula prototipo

Pode-se notar no grafico que a partıcula assumiu as caracterısticas desejadas pelamodelagem.

5.2. Associacao das partıculas

Apos verificar o correto funcionamento do sistema singular de mola e partıcula, foi real-izada a associacao com mais partıculas e molas conforme o modelo abaixo:

Figure 3. associacao das partıculas com molas

Page 9: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

Essa associacao baseia-se na aplicacao de uma forca no no central que conse-quentemente fara a partıcula assumir uma nova posicao no eixo vertical fazendo com queas molas que ligam as partıculas vizinhas entendam. Essas por si, por sofrerem somenteinfluencia da decomposicao das forcas verticais do sistema tambem serao puxadas parabaixo, formando uma reacao em cadeia com as demais partıculas vizinhas. Podendo-seentao definir as forcas atuantes em cada ponto.

Para o modelo acima calculamos a forca resultante baseado no sistema singular departıcula e mola e no sistema interligado com as partıculas vizinhas. Para isso definimoso modelo abaixo:

Figure 4. representacao das forcas atuantes no ponto central

Nesse caso, para calcular as forcas resultantes exercidas na partıcula, considerou-se que a aceleracao a sofrera influencia de ~Fa, que e a forca de amortecimento da molaque sustenta a partıcula e da decomposicao da forca vertical que as molas adjacentes ~Fmee ~Fmd produzem sobre a partıcula central, essa decomposicao baseia-se em calcular aforca exercida pela mola que conecta as duas partıculas ~Frma multiplicado pelo seno doangulo formado entre a superfıcie e a mola adjacente ∆y/x1. Nesse caso teremos:

~Frma = [−k ∗ (x1 − x0)] ∗ senα

Sendo que

senα =∆y

x1

Assim deve-se somar a aceleracao da partıcula essa forca resultante vertical paracada instante e para cada partıcula adjacente diretamente ligada a ela. Lembrando quea mesma forca que a mola aplica na partıcula central sera aplicada no sentido oposto apartıcula adjacente. Alem disso, como ja citado anteriormente os valores e velocidadesao acrescidos pelo metodo de Euler, e para as partıculas adjacentes o valor de velocidadedeve ser atualizado em cada iteracao. A partir desse ponto modelamos os conjuntos defuncoes para o algoritmo final em C++.

Page 10: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

5.3. Implementacao da malha da superfıcie

Como descrito anteriormente, a simulacao tem como objetivo demonstrar o fenomenoem uma superfıcie inicialmente plana formada por partıculas posicionadas equidistantese interligadas por molas. Para os princıpios de renderizacao grafica considerou-se aspartıculas sendo os vertices e as molas sendo as arestas. Nesse caso cada vertice possui 6arestas, ou molas, que interligam outros vertices e assim sucessivamente como no modeloabaixo:

Figure 5. Concepcao da malha da superfıcie e os nos interligados ao central

O tamanho dessa malha nao altera a simulacao em si, mas nesse caso foi utilizadauma malha de 50 X 50 vertices. Assim, quando aplica-se uma forca no no central porexemplo, esse no exerce uma forca nos 6 nos adjacentes, como visto anteriormente. Essaforca entao gerara uma reacao em cadeia similar a uma onda. Todas as partıculas atuaraoumas nas outras, hora oscilando em uma direcao, hora oscilando em outra direcao. Aonda gerada apos a aplicacao de forca em um no propagara de maneira circular o que daraum aspecto bem similar ao de uma gota caindo na superfıcie de um lıquido.

5.4. Renderizacao dos algoritmos na tela

Apos determinar o comportamento do algoritmo, foi necessario aplicar algumas tecnicasde renderizacao para que fosse possıvel a visualizacao do produto final. Optou-se pelautilizacao do OpenGL que alem de ser uma API livre, permite uma maior aproximacaocom os recursos do hardware de vıdeo.

Para se obter o resultado na tela foi necessario definir algumas funcoes no Ren-dering Pipeline cujo detalhamento nao e o objetivo desse artigo, mas em termos geraisdeve-se definir uma lista de exibicao, que diz respeito aos vertices ou partıculas da su-perfıcie. Realizar as operacoes pre-vertices, que pode ser resumida em operacoes queconvertem os vertices em primitivas de desenho em matrizes 4x4 de onde sairao as co-ordenadas que serao convertidas do 3D para a tela e devem ser realizados os calculos detextura e iluminacao.

Apos essa abordagem, deve-se definir a montagem de primitivas que pode seresumir em calculos de perspectivas, determinacao do que deve ser exibido ou nao edeterminacao dos polıgonos formados pela interligacao de tres vertices. No caso tratado,serao desenhados atraves linhas onde realizou-se a entrada da coordenada dos vertices e os

Page 11: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

interligamos por linhas que fecham os polıgonos de tres em tres vertices nos fornecendouma malha formada por pequenos triangulos como no modelo visto acima.

Temos tambem que aplicar o shader em nossa superfıcie, esse shader e re-sponsavel por produzir uma luz e sombra adequada ao nosso modelo, no nosso casoestamos utilizando o vertex shader que calcula a direcao em que a luz ambiente colidecom o vertice e direciona o reflexo apropriado a quem o visualiza.

Apos definirmos essas configuracoes e algoritmos relacionados a visualizacaotemos como resultado uma simples superfıcie formada pela interligacao dos vertices queformam polıgonos em toda a extensao do modelo conforme abaixo:

Figure 6. Representacao em tela da superfıcie do sistema

6. Resultados

Depois da realizacao da prototipagem e a transcricao do algoritmo para versao final in-cluindo as bibliotecas matematicas e graficas, foi possıvel se obter um resultado simpli-ficado do objeto em questao. Foram realizados alguns testes alterando os valores dasconstantes do material e da forca aplicada no ponto inicial conforme podemos observarabaixo:

Figure 7. Resultados obtidos da simulacao

Page 12: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

No exemplo acima, considerou-se que a massa das partıculas que formam a su-perfıcie da agua foram agrupadas na constante do material das molas que as sustentam, epossıvel verificar que o comportamento do sistema depende diretamente do ajuste dessasconstantes que devem ser feitas de acordo com o resultado obtido. Como visto em estudoprevio, havia um range de possıveis valores para esses ajustes, apos alguns experimentoschegou-se aos valores de 0,01 para o valor da constante das molas e 0,02 para a constantede amortecimento do sistema.

Figure 8. Aplicacao de forca em tres pontos distintos

Tambem foram testados a aplicacao de forca em varios pontos distintos para ver-ificar a atuacao e propagacao das ondas criadas em contato com outras ondas, o resul-tado foi satisfatorio, sendo que algumas ondas ao se colidirem atenuavam as forcas e atemesmo a direcao de propagacao, comprovando a eficiencia do algoritmo para calcular asforcas resultantes do sistema como um todo.

Alem disso, pode-se verificar que alterando os valores das constantes e possıvelalterar as propriedades do liquido em questao. No exemplo abaixo, modificou-se a con-stante das molas para 0,18, isso fez com que as forcas atuantes tanto na oscilacao daspartıculas quanto das molas vizinhas aumentassem consideravelmente, fazendo com queo sistema oscilasse com uma maior frequencia, dando um aspecto de um liquido de baixadensidade. O mesmo foi realizado aumentando a constante de amortecimento do sis-tema, essa constante como visto no algoritmo, e responsavel por gerar uma forca opostaa oscilacao, desta forma quando se aumenta a forca para 0,4 por exemplo, nota-se clara-mente uma caracterıstica de ganho de densidade do liquido, aparentando um liquido maisviscoso com ondas pequenas e pouco duradouras.

Page 13: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

Figure 9. Resultado com o aumento da constante da mola para 0,18

Foi possıvel tambem verificar as premissas de que os metodo integral de Eulertende a ganhar energia, concluiu-se que quando se aplica uma constante da mola maiorque a constante de amortecimento o sistema passa a adotar uma caracterıstica de sempreganhar energia, ja que o amortecimento nao e mais capaz de diminuir a oscilacao damola. Essa premissa tambem vale para o caso da constante de amortecimento nao forconsiderada durante a construcao do algoritmo. Ha um ganho exponencial de energia quefaz o sistema todo assumir valores fora de escala e consequentemente a superfıcie entraem colapso.

Figure 10. superfıcie em colapso utilizando constante da mola 1,5 vezes maiorque a constante de amortecimento.

Page 14: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

7. Conclusao

Os estudos relacionados a renderizacao de lıquidos e os algoritmos utilizados para simularo fenomeno demonstram que para se alcancar tal saıda, diversas abordagens podem seradotadas, alem da utilizacao e adaptacao de distintas ferramentas matematicas e fısicas.Nesse artigo pode-se, com ajuda de ferramentas fısicas e computacionais, propor umasimulacao convincente da superfıcie de um liquido qualquer reagindo a uma aplicacaosimples de forcas externas.

Deve-se salientar que o foco desta proposta nao diz respeito a aproximacao darealidade da simulacao, mas sim, conseguir reproduzir o fenomeno com um baixo custocomputacional e facilidade de implementacao. Verificou-se que o algoritmo gerado alemde ser mais simples do que os propostos por outros autores e ferramentas, pode ser adap-tado para estudos de outros objetos e superfıcies deformaveis.

O desempenho geral do sistema foi satisfatorio em termos de iteracoes. Notou-seque, como foi abordado somente a malha da superfıcie e nao um volume como um todo, aquantidade de calculos utilizados por frame de renderizacao e consideravelmente menordo que os outros trabalhos estudados, ja que o numero de conexoes entre as partıculassao menores. Neste caso as partıculas estao conectadas somente com seus vizinhos ime-diatos, o que gera um numero menor de variaveis a serem calculadas por frame. Comoo algoritmo pode ser aplicado com diferentes ferramentas, linguagens e bibliotecas, naoestamos tratando do desempenho relacionado a essas tecnologias, mas sim dos calculosnecessarios para atuar sobre o sistema de partıculas.

O aprendizado com a utilizacao das tecnicas de computacao grafica exigidas paratal simulacao, apesar de nao ter sido foco de estudo, foi um ponto importante da abor-dagem, pois varios conceitos matematicos foram aprimorados e um novo entendimento arespeito da renderizacao de elementos 3D foram absorvidos, como iluminacao, camera,propriedades dos objetos em si.

8. Trabalhos Futuros

Com o estudo aprofundado sobre superfıcies com molas, pode-se verificar que o mesmoprincıpio e utilizado para simulacao de objetos com propriedades deformantes e tambempara a simulacao de tecidos em computacao grafica. Desta maneira, pretende-se uma fu-tura abordagem em algoritmos que consigam realizar tal simulacao com foco na facilidadede implementacao do algoritmo e representacao convincente do fenomeno de movimentodos objetos estudados.

Page 15: Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos

ReferencesAdabala, N. and Manohar, S. (2002). Techniques for Realistic Visualization of Fluids: A

Survey. Computer Graphics Forum, 21.

Bojrab, Micah; Abdul-Massih, M. and Benes, B. (2013). Perceptual Importance of Light-ing Phenomena in Rendering of Animated Water. ACM Transactions on Applied Per-ception (TAP).

Bonet, J. and Wood, R. D. (1997). Nonlinear Continuum Mechanics for Finite ElementAnalysis.

Darles, E., Crespin, B., Ghazanfarpour, D., and Gonzato, J. C. (2011). A Survey ofOcean Simulation and Rendering Techniques in Computer Graphics. 1, 30(ComputerGraphics forum):43–60.

Erleben, K., Sporring, J., Henriksen, K., and Henrik, D. (2005). Physics-Based Anima-tion. Charles River Media.

Flannery, B., Press, W. H., Teukolsky, S. A., and Vetterling, W. T. (2007). NumericalRecipes - The Art of Scientific Computing Third Edition.

Heer, J. and Robertson, G. (2007). Animated Transitions in Statistical Data Graphics.IEEE Trans. on Visualization and Computer Graphics.

Kunimatsu, A. and Watanabe, Y. (2001). Annual Review of Fluid Mechanics. AnnualReview of Fluid Mechanics, 20.

Liu, T., Bargteil, A. W., O’Brien, J. F., and Kavan, L. (2013). Fast Simulation of Mass-Spring Systems. ACM Transactions on Graphics, 32.

Randall, D. A. (2006). The Shallow Water Equations. Department of Atmospheric ScienceColorado State University.

Robertson, I. and Sherwin, S. (1999). Free-Surface Flow Simulation Using hp/SpectralElements. Journal of Computational Physics, 155(1):26–53.

Triana, C, A. and Fajardo, F. (2013). Experimental study of simple harmonic motion of aspring-mass system as a function of spring diameter. Revista Brasileira de Ensino deFsica,, 35.

Witkin, A. and Baraff, D. (1997). Differential Equation Basics. In SIGGRAPH.

Yarin, A. L. (2006). Drop Impact Dynamics: Splashing, Spreading, Receding, Bouncing.Annual Review of Fluid Mechanics.

Zhang, Y., Wang, H., Wang, S., Tong, Y., and Zhou, K. (2012). A Deformable SurfaceModel for Real-Time. IEEE Transactions on Visualization and Computer Graphics.