Aplicac¸˜ao da Lei de Hooke para Simplificac¸˜ao e Renderizac¸˜ao
de Simulac¸˜ao F´ısica de L´ıquidos
Wanderson Felipe Viei...
os princ´ıpios das leis das molas de Hooke assim como a renderizac¸˜ao do fenˆomeno usando
as ferramentas gr´aficas do Open...
simples das equac¸˜oes do movimento e podem ser usadas para descrever a estrutura
horizontal de uma atmosfera. Elas descre...
Onde F ´e a forc¸a produzida pela, k determina a constante do material da mola que
determina a dureza, e x a variac¸˜ao do...
Cada computador hoje tem um poderoso pipeline de gr´aficos 3D. Este ´e um sub-
sistema especial de software/hardware que de...
foi realizada a agregac¸˜ao e prototipac¸˜ao de mais n´os ao n´o inicial assim como a verificac¸˜ao
e comparac¸˜ao das dife...
Considerando ainda que todas as part´ıculas da superf´ıcie possuem a mesma massa
foi realizada a combinac¸˜ao do fator k/m...
diminui, a ponto do sistema n˜ao se mover devido ao excesso de rigidez. Em contra-
partida, aumentando-se o valor da const...
Essa associac¸˜ao baseia-se na aplicac¸˜ao de uma forc¸a no n´o central que conse-
quentemente far´a a part´ıcula assumir ...
5.3. Implementac¸˜ao da malha da superf´ıcie
Como descrito anteriormente, a simulac¸˜ao tem como objetivo demonstrar o fen...
interligamos por linhas que fecham os pol´ıgonos de trˆes em trˆes v´ertices nos fornecendo
uma malha formada por pequenos...
No exemplo acima, considerou-se que a massa das part´ıculas que formam a su-
perf´ıcie da ´agua foram agrupadas na constan...
Figure 9. Resultado com o aumento da constante da mola para 0,18
Foi poss´ıvel tamb´em verificar as premissas de que os m´e...
7. Conclus˜ao
Os estudos relacionados a renderizac¸˜ao de l´ıquidos e os algoritmos utilizados para simular
o fenˆomeno de...
References
Adabala, N. and Manohar, S. (2002). Techniques for Realistic Visualization of Fluids: A
Survey. Computer Graphi...
Próximos SlideShares
Carregando em…5
×

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

39 visualizações

Publicada em

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

  1. 1. Aplicac¸˜ao da Lei de Hooke para Simplificac¸˜ao e Renderizac¸˜ao de Simulac¸˜ao F´ısica de L´ıquidos Wanderson Felipe Vieira1 , Rodrigo Richard Gomes2 1 Instituto de Inform´atica – Pontif´ıcia Universidade de Minas Gerais (PUC MINAS) Belo Horizonte – MG – Brasil vieira.wanderson@gmail.com 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 l´ı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
  2. 2. os princ´ıpios das leis das molas de Hooke assim como a renderizac¸˜ao do fenˆomeno usando as ferramentas gr´aficas do OpenGL e C++ como linguagem padr˜ao. Os objetivos espec´ıficos dessa abordagem dizem respeito `a realizac¸˜ao do estudo e comparac¸˜ao dos atuais m´etodos de simulac¸˜ao de fluidos existentes a fim de se chegar `a uma definic¸˜ao das ferramentas matem´aticas utilizadas para a devida representac¸˜ao do fenˆomeno em quest˜ao. Em seguida pretende-se modelar o algoritmo para realizar a simulac¸˜ao da malha superficial do l´ıquido e a conex˜ao entre as part´ıculas do mesmo. Ap´os o estudo e modelagem adequados, ser˜ao definida as ferramentas matem´aticas para a aplicac¸˜ao de movimento a cada part´ıcula e consequentemente `a malha que representa a superf´ıcie do l´ıquido, verificando as vari´aveis do sistema e realizando ajustes para se alcanc¸ar o resultado mais satisfat´orio poss´ıvel. Depois da implementac¸˜ao do algoritmo geral que definir´a os c´alculos matem´aticos da simulac¸˜ao em quest˜ao, deve-se modelar o algoritmo de renderizac¸˜ao a fim de exibir corretamente os resultados em tela. Por fim, com a visualizac¸˜ao do produto na tela ser´a poss´ıvel realizar os experimentos da alterac¸˜ao de vari´aveis a fim de se analisar o compor- tamento do produto final. 2. Referencial Te´orico 2.1. Simulac¸˜ao de Fluidos Levando em considerac¸˜ao as leis da f´ısica que abordam o comportamento de fluidos, pode-se verificar a grandeza de sua complexidade em um universo de projec¸˜oes, em que os cientistas consideram In´ercia e Tens˜ao de Superf´ıcie como os escultores dos fluidos [Yarin 2006]. A comunidade de computac¸˜ao gr´afica tem dedicado muito esforc¸o e pesquisa para o entendimento e adequada representac¸˜ao dos fluidos a mais de trˆes d´ecadas. Os flu- idos continuar˜ao sendo um tema importante, j´a que melhores algoritmos, mais r´apidos e fisicamente mais precisos para a sua simulac¸˜ao e renderizac¸˜ao s˜ao desenvolvidos fre- quentemente [Bojrab e Benes 2013]. A visualizac¸˜ao de l´ıquidos ´e um problema importante e desafiador que tem aplicac¸˜oes nas ´areas de estudos cient´ıficos de fluidos, realidade virtual e entretenimento. T´ecnicas de computac¸˜ao gr´afica para simular tais fenˆomenos f´ısicos s˜ao necess´arias nas aplicac¸˜oes acima mencionadas. Essas t´ecnicas devem resolver os problemas de mode- lagem e representac¸˜ao de fluidos [Adabala e Manohar 2002]. Os l´ıquidos em geral s˜ao substˆancias comuns, facilmente reconhecidas, por´em de traduc¸˜ao complexa e demorada. Os seres humanos percebem os l´ıquidos atrav´es de sua interac¸˜ao com a luz e o ambiente que o rodeia. O mais importante fenˆomeno de iluminac¸˜ao quando a ´agua ´e processado pode ser grosseiramente classificados em reflex˜ao especular, refrac¸˜ao, c´austicos, e sombra. Esses fenˆomenos, juntamente com a superf´ıcie complexa de ´agua, lhe d˜ao uma aparˆencia ´unica e trabalhosa. [Bojrab e Benes 2013]. Para resolver os problemas de dinˆamica de fluidos em superf´ıcies livres s˜ao geral- mente aplicadas as equac¸˜oes de Navier-Stokes. Essas equac¸˜oes podem ser usadas para simular ondas nos l´ıquidos e sua movimentac¸˜ao em geral [Kunimatsu e Watanabe 2001]. Al´em disso podem ser usadas equac¸˜oes de ´aguas rasas que s˜ao a forma mais
  3. 3. simples das equac¸˜oes do movimento e podem ser usadas para descrever a estrutura horizontal de uma atmosfera. Elas descrevem a evoluc¸˜ao de um fluido em resposta a acelerac¸˜oes gravitacionais e rotacionais. As soluc¸˜oes das equac¸˜oes de ´aguas rasas repre- sentam muitos tipos de movimento, incluindo ondas de Rossby e ondas in´ercia-gravidade [Randall 2006]. Segundo Adabala e Manohar (2006), v´arias t´ecnicas s˜ao usadas para modelar e processar um fluido numa cena, dependendo da necessidade da aplicac¸˜ao. O termo ”real- ismo” tem sido associado a diferentes significados em computac¸˜ao gr´afica. No contexto de imagens geradas por computadores ´e poss´ıvel distinguir trˆes tipos de realismo: • Realismo F´ısico: A imagem fornece a mesma simulac¸˜ao visual como a cena, baseada nas dinˆamicas das leis da f´ısica. • Foto Realismo: A imagem produz a mesma resposta visual como a cena, simulac¸˜oes de dinˆamica realismo tentar gerar aspecto visualmente convincente de movimento, neste caso, s˜ao aplicadas t´ecnicas intuitivas que n˜ao satisfac¸am as leis da f´ısica. • Realismo Funcional: A imagem fornece a mesma informac¸˜ao visual como a cena. O comportamento dinˆamico ´e criado, que transmite a informac¸˜ao de que um objeto dinˆamico est´a presente, por exemplo; uma onda senoidal com amplitude variada representando uma onda em animac¸˜ao aplicada De acordo com Kunimatsu (2001) os custos de c´alculo e processamento para a renderizac¸˜ao de uma simulac¸˜ao que aplique toda equac¸˜ao de Navier-Stokes ´e muito alta. Caso o objetivo final seja somente uma representac¸˜ao convincente do fenˆomeno em quest˜ao e dependendo do tamanho abstrato da simulac¸˜ao, outros m´etodos podem ser aplicados. Partindo para uma abordagem mais criativa, m´etodos de criac¸˜ao de superf´ıcies deform´aveis se tornam um ponto de partida para um enfoque mais ousado do problema em quest˜ao. Sistemas de molas podem fornecer um m´etodo simples, mas pr´atico, para a modelagem de uma grande variedade de objetos incluindo pano, cabelo, s´olidos, al´em de uma s´erie de outras superf´ıcies deform´aveis. Essa resoluc¸˜ao mais simplista baseia-se em sistemas de malhas de molas regidas pela lei de Hooke. Al´em disso, a formulac¸˜ao de otimizac¸˜ao de integrac¸˜ao de Euler e as leis de Newton devem ser utilizadas implicitamente para alcanc¸ar os resultados. [Liu et al. 2013]. 2.2. Aplicac¸˜ao das leis de Hooke e abstrac¸˜ao do modelo f´ısico Sistemas de molas s˜ao conceitualmente mais simples e mais f´aceis de implementar do que os modelos fisicamente mais consistentes derivados da mecˆanica de meios cont´ınuos, utilizando o m´etodo de elementos finitos [Bonet e Wood 1997]. De acordo com a explicac¸˜ao de [Erleben et al. 2005] uma grande vantagem sobre molas ´e que elas s˜ao f´aceis de simular. Molas tˆem um certo comportamento natural: se estic´a-la ou comprimi-la, a tendˆencia ´e que ela regresse ao seu comprimento natural. A forc¸a proporcionada por uma mola ´e dado pela Lei de Hooke: F = −kx
  4. 4. Onde F ´e a forc¸a produzida pela, k determina a constante do material da mola que determina a dureza, e x a variac¸˜ao do deslocamento inicial com o final. Ainda ´e proposto que para mover massas conectadas por uma mola, devemos considerar a segunda lei de Newton de conservac¸˜ao do movimento. F = ma Onde F ´e a forc¸a, m determina a massa do objeto, no caso da simulac¸˜ao das part´ıculas interligadas por meio de molas, e a, sua acelerac¸˜ao. Al´em disso, [Triana e Fajardo 2013] mencionam que o movimento harmˆonico simples de um sistema de molas geralmente ´e fortemente determinado pelos parˆametros geom´etricos da mola, ou seja, suas constantes que variam de acordo com o material e diˆametro da mesma. Define-se ent˜ao constante el´astica como sendo o valor da relac¸˜ao entre essa tens˜ao aplicada e a deformac¸˜ao por ela provocada. Independentemente da aplicac¸˜ao de um sistema de molas ou outro m´etodo baseado na mecˆanica de meios cont´ınuos, ´e importante a integrac¸˜ao num´erica de tempo para sim- ular a dinˆamica do sistema. Os m´etodos de integrac¸˜ao mais simples s˜ao expl´ıcitas nas t´ecnicas de Euler [Flannery et al. 2007]. Para efeitos de animac¸˜ao baseada em f´ısica, onde as preocupac¸˜oes de desempenho s˜ao grandes, m´etodos expl´ıcitos muitas vezes n˜ao s˜ao suficientemente eficazes e apresen- tam problemas de estabilidade. O trabalho de [Witkin e Baraff 1997] introduziu o m´etodo de Euler impl´ıcito que oferece maior robustez para sistemas r´ıgidos. A soluc¸˜ao tradicional num´erica de Euler emprega juntamente o m´etodo de Newton, que requer a soluc¸˜ao de um sistema linear em cada iterac¸˜ao. O m´etodo num´erico mais simples ´e chamado de m´etodo de Euler. Considerando o valor inicial para x ser x0 = x0(t0) e a estimativa posterior de tempo ser (t0 + h), onde h ´e o passo de tempo. O m´etodo de Euler simplesmente computa x(t0 + h) considerando esse passo em uma direc¸˜ao derivativa. x(t0 + h) = x0 + hx(t0) Assim a oscilac¸˜ao da onda se baseara em uma aproximac¸˜ao da verdadeira curva e seguir´a um padr˜ao poligonal. Deve-se se lembrar que o m´etodo de Euler n˜ao ´e fisicamente preciso assim, os valores devem ser ajustados para que os mesmo n˜ao tendam para o infinito [Witkin e Baraff 1997]. 3. Computac¸˜ao gr´afica para simulac¸˜ao dos resultados O principal objetivo da computac¸˜ao gr´afica ´e reproduzir da forma mais fiel poss´ıvel a realidade percebida por n´os com toda a complexidade de fenˆomenos naturais que nos cercam. A utilizac¸˜ao de meios de computac¸˜ao gr´afica com o intuito de representar e manipular imagens e modelos de dados s˜ao de extrema importˆancia para o entendimento e a simulac¸˜ao do problema em quest˜ao. Tratando-se de representac¸˜ao de fenˆomenos f´ısicos, considera-se as aproximac¸˜oes adquiridas com as ferramentas de computac¸˜ao puramente dependentes das aplicac¸˜oes dos algoritmos que ser˜ao representados [Darles et al. 2011].
  5. 5. Cada computador hoje tem um poderoso pipeline de gr´aficos 3D. Este ´e um sub- sistema especial de software/hardware que desenha de forma eficiente primitivas, que s˜ao os elementos b´asicos que formam um desenho 3D em perspectiva. Normalmente, esses sistemas s˜ao otimizados para o processamento de triˆangulos 3D com v´ertices compartil- hados. As operac¸˜oes b´asicas no pipeline mapeiam os locais de v´ertices 3D para serem carregados em 2D na tela, al´em de sombrear os pol´ıgonos para que eles tenham um olhar mais realista serem exibidos de maneira correta [Heer e Robertson 2007]. Uma s´erie de m´etodos s˜ao particularmente adequados para c´alculos na unidade de processamento gr´afico (GPU). No caso de simulac¸˜ao de superf´ıcies, poder˜ao ser usadas malhas que interligam os v´ertices a fim de criar pequenos triˆangulos ao longo do objeto que se deseja formar. Ao se gerar o modelo geom´etrico, pode-se a partir da´ı trabalhar nas func¸˜oes visuais e f´ısicas do objeto em si [Zhang et al. 2012]. 3.1. Trabalhos Relacionados O trabalho de [Robertson e Sherwin 1999] utiliza o mesmo princ´ıpio da simulac¸˜ao da su- perf´ıcie por malhas interligadas, por´em o algoritmo ´e criado em cima de equac¸˜oes lapla- cianas e c´alculos avanc¸ados. Os resultados encontrados s˜ao fisicamente mais precisos se comparados com os esperados por esse trabalho. Outras sugest˜oes tamb´em sugerem a mesma aplicac¸˜ao de malhas, interligando v´arias part´ıculas entre si com a utilizac¸˜ao de arestas, porem calculam as interac¸˜oes usando Navier-Stokes que, como foi visto, ´e mais custoso devido a complexidade dos c´alculos utilizados. Nota-se tamb´em que a realidade alcanc¸ada com essa simulac¸˜ao ´e mais realista. [Kunimatsu e Watanabe 2001]. 4. Metodologia Essa pesquisa, de natureza aplicada, tem como objetivo explorar e gerar um algoritmo que simplifique os j´a existentes para representac¸˜ao da movimentac¸˜ao de uma superf´ıcie de um liquido qualquer. Conforme pode se verificar atrav´es de materiais de referˆencia, parte da pesquisa tem cunho anal´ıtico, j´a que visa aplicar leis da f´ısica voltada para outros fins, no caso em quest˜ao, o comportamento de molas, para reac¸˜ao das part´ıculas de uma superf´ıcie que se comportar´a como l´ıquido. Por se tratar de um fenˆomeno do qual se busca uma modelagem do algoritmo de maneira qualitativa, os resultados esperados podem n˜ao ser conclusivos at´e a gerac¸˜ao dos primeiros prot´otipos da interac¸˜ao entre duas ou mais part´ıculas. Dessa maneira uma pesquisa experimental foi conduzida e para modelagem do algoritmo e renderizac¸˜ao con- forme descrito anteriormente alguns passos foram seguidos a fim de se obter o produto final. Primeiramente ap´os decidir qual ser´a a base do algoritmo, um novo estudo apro- fundado sobre a aplicac¸˜ao das leis das molas de Hooke sobre part´ıculas com massa ´e necess´ario. A modelagem das equac¸˜oes gerais para oscilac¸˜ao de uma ´unica part´ıcula ´e re- alizada a fim de se obter um prot´otipo do algoritmo aplicando as equac¸˜oes de uma ´unica part´ıcula. Para agilizar o processo de prototipac¸˜ao, utilizou-se a linguagem Python para programar os primeiros prot´otipos. Ap´os o primeiro prot´otipo conclu´ıdo foi realizada a an´alise do comportamento da part´ıcula (oscilac¸˜ao atrav´es do tempo) atrav´es dos valores gerados da posic¸˜ao da part´ıcula, e poss´ıveis ajustes das vari´aveis foram realizados conforme necess´ario. Sequencialmente
  6. 6. foi realizada a agregac¸˜ao e prototipac¸˜ao de mais n´os ao n´o inicial assim como a verificac¸˜ao e comparac¸˜ao das diferenc¸as ap´os a agregac¸˜ao. A modelagem da malha da superf´ıcie interligando os n´os foi desenvolvida em C++ utilizando uma lista foi utilizada para armazenar objetos do tipo ”N´o”, esse objeto por vez ter´a seu pr´oprios ´ındices armazenados, al´em das posic¸˜oes dadas em coordenadas, forc¸as resultantes do meio e atributos necess´arios para a simulac¸˜ao. A malha formar´a um plano com os mesmos n´os uniformemente espac¸ados. Foi realizado o teste do prot´otipo, verificando e ajustando o algoritmo quando necess´ario, al´em de verificar as propagac¸˜oes de forc¸as entre os n´os e esboc¸ar gr´aficos comparativos entre as forc¸as recebidas em cada n´o e suas respectivas oscilac¸˜oes. Para a aplicac¸˜ao do algoritmo de renderizac¸˜ao utilizou-se a OpenGL a fim de se obter o desenho gr´afico da malha em quest˜ao. Nessa etapa conceitos de computac¸˜ao gr´afica ser˜ao amplamente aplicados, como inicializac¸˜ao dos v´ertices (n´os), interligac¸˜ao das arestas aos v´ertices para formac¸˜ao da malha, ajuste das vari´aveis da GPU, configurac¸˜ao de cˆamera, perspectiva, entre outros. Com a renderizac¸˜ao da superf´ıcie visualmente acess´ıvel ´e poss´ıvel se verificar o comportamento real do algoritmo renderizado na tela, nessa etapa pode-se visualizar os resultados dos prot´otipos verificando a movimentac¸˜ao e reac¸˜ao das part´ıculas em quest˜ao. Os dados ser˜ao analisados e ajustes ser˜ao feitos se necess´ario. Assim, com o algoritmo funcionando corretamente, ser´a realizada a aplicac¸˜ao de cor, iluminac¸˜ao e reflexo na su- perf´ıcie criada, nessa etapa diferentes t´ecnicas de iluminac¸˜ao ser˜ao testadas para gerar um melhor aspecto `a simulac¸˜ao. Essas etapas ser˜ao descritas ao longo do artigo. 5. Criac¸˜ao da Simulac¸˜ao 5.1. An´alise e Prototipac¸˜ao de part´ıcula simples Primeiramente foi realizada a modelagem na linguagem Python das equac¸˜oes gerais para oscilac¸˜ao de uma ´unica part´ıcula a fim de se obter um prot´otipo do algoritmo aplicando as equac¸˜oes de maneira separada. O modelo de molas foi escolhido devido sua facilidade de simulac¸˜ao. Esses obje- tos possuem um tamanho natural que podem ser comprimido ou esticado voltando ao seu estado natural quando em estado de equil´ıbrio. Considerou-se ent˜ao uma ´unica part´ıcula situada em um plano imagin´ario onde a massa da mesma est´a sendo sustentada por uma mola perpendicular ao plano. Desta maneira, ser´a usada a lei de Hooke para atuar nessa mola. Para simular o movimento da part´ıcula, h´a a necessidade da aplicac¸˜ao de uma forc¸a externa para retirar o sistema do equil´ıbrio, dessa maneira pode-se fazer uma associac¸˜ao com a segunda lei de Newton que prop˜oe que quanto maior forc¸a ´e aplicada a um objeto e quanto menos massa esse objeto possuir, maior ser´a sua acelerac¸˜ao. Fazendo essa combinac¸˜ao entre as duas leis temos: Fnewton = Fhooke ⇔ ma = −kx a = −k m x
  7. 7. Considerando ainda que todas as part´ıculas da superf´ıcie possuem a mesma massa foi realizada a combinac¸˜ao do fator k/m em uma ´unica constante. Figure 1. representac¸ ˜ao do modelo de interac¸ ˜ao entre part´ıcula e mola Como visto no estudo de referˆencias, a determinac¸˜ao do valor da constante da mola ´e baseada em experimentos que medem a quantidade que a mola de desloca de acordo com a forc¸a aplicada em sua extremidade. Desta maneira, ´e poss´ıvel simular uma mola levando em considerac¸˜ao a forc¸a aplicada com a quantidade que a extremidade se desloca, no nosso caso como estamos incluindo outras vari´aveis em conjunto, foram realizados experimentos para verificar como uma simples mola se comporta em diferentes situac¸˜oes. Esses resultados ser˜ao discutidos em seguida. Por se tratar de uma simplificac¸˜ao do fenˆomeno em quest˜ao e como n˜ao ´e necess´aria uma f´ısica demasiadamente precisa, foi utilizada a forma mais simples da integrac¸˜ao num´erica para determinar a posic¸˜ao da part´ıcula em cada frame da simulac¸˜ao. Assumindo ent˜ao o m´etodo de Euler, que atendeu de maneira satisfat´oria o prop´osito do primeiro prot´otipo, pode-se determinar a posic¸˜ao da part´ıcula em cada frame provinda da acelerac¸˜ao aplicada no primeiro instante. Assim, para determinar a posic¸˜ao que a part´ıcula assumir´a no frame seguinte, soma-se sua atual posic¸˜ao com sua atual velocidade, e con- sequentemente soma-se `a sua pr´opria velocidade a acelerac¸˜ao 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-se que o x da f´ormula apresentada diz respeito a variac¸˜ao entre o tamanho original da mola e a posic¸˜ao que ela se encontra naquele momento. Com isso obt´em-se o resultado da oscilac¸˜ao da part´ıcula. Durante o experimento foram testados diferentes constantes de rigidez da mola, respons´avel pelas caracter´ısticas de oscilac¸˜ao. Algumas alterac¸˜oes dos valores fazem o sistema se comportar de maneiras diferentes. Quando se diminui o valor dessa constante, nota-se que a oscilac¸˜ao passa a ser consideravelmente menor `a medida que esse valor
  8. 8. diminui, a ponto do sistema n˜ao se mover devido ao excesso de rigidez. Em contra- partida, aumentando-se o valor da constante, a oscilac¸˜ao passa a ganhar valores cada vez maiores. Notou-se que esses valores devem ser alterados com cautela, uma vez que o m´etodo de integral de Euler tende a ganhar energia fazendo a simulac¸˜ao ficar menos precisa e consequentemente fazendo as part´ıculas assumirem valores de posic¸˜ao no eixo vertical muito elevados. Uma vez que a part´ıcula respondeu `a forc¸a aplicada oscilando seu valor vertical, pode-se aplicar o fator de amortecimento, que ´e respons´avel por reestabelecer o equil´ıbrio do sistema. Esse fator aplica uma forc¸a na direc¸˜ao oposta em que a mola se move com a finalidade de desacelera-la. Assim a formula de acelerac¸˜ao ´e ajustada para: a = −kx − (Famortecimento ∗ velocity) Figure 2. Oscilac¸ ˜ao da part´ıcula prot´otipo Pode-se notar no gr´afico que a part´ıcula assumiu as caracter´ısticas desejadas pela modelagem. 5.2. Associac¸˜ao das part´ıculas Ap´os verificar o correto funcionamento do sistema singular de mola e part´ıcula, foi real- izada a associac¸˜ao com mais part´ıculas e molas conforme o modelo abaixo: Figure 3. associac¸ ˜ao das part´ıculas com molas
  9. 9. Essa associac¸˜ao baseia-se na aplicac¸˜ao de uma forc¸a no n´o central que conse- quentemente far´a a part´ıcula assumir uma nova posic¸˜ao no eixo vertical fazendo com que as molas que ligam as part´ıculas vizinhas entendam. Essas por si, por sofrerem somente influˆencia da decomposic¸˜ao das forc¸as verticais do sistema tamb´em ser˜ao puxadas para baixo, formando uma reac¸˜ao em cadeia com as demais part´ıculas vizinhas. Podendo-se ent˜ao definir as forc¸as atuantes em cada ponto. Para o modelo acima calculamos a forc¸a resultante baseado no sistema singular de part´ıcula e mola e no sistema interligado com as part´ıculas vizinhas. Para isso definimos o modelo abaixo: Figure 4. representac¸ ˜ao das forc¸as atuantes no ponto central Nesse caso, para calcular as forc¸as resultantes exercidas na part´ıcula, considerou- se que a acelerac¸˜ao ¯a sofrer´a influˆencia de Fa, que ´e a forc¸a de amortecimento da mola que sustenta a part´ıcula e da decomposic¸˜ao da forc¸a vertical que as molas adjacentes Fme e Fmd produzem sobre a part´ıcula central, essa decomposic¸˜ao baseia-se em calcular a forc¸a exercida pela mola que conecta as duas part´ıculas Frma multiplicado pelo seno do ˆangulo 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 acelerac¸˜ao da part´ıcula essa forc¸a resultante vertical para cada instante e para cada part´ıcula adjacente diretamente ligada `a ela. Lembrando que a mesma forc¸a que a mola aplica na part´ıcula central ser´a aplicada no sentido oposto `a part´ıcula adjacente. Al´em disso, como j´a citado anteriormente os valores e velocidade s˜ao acrescidos pelo m´etodo de Euler, e para as part´ıculas adjacentes o valor de velocidade deve ser atualizado em cada iterac¸˜ao. A partir desse ponto modelamos os conjuntos de func¸˜oes para o algoritmo final em C++.
  10. 10. 5.3. Implementac¸˜ao da malha da superf´ıcie Como descrito anteriormente, a simulac¸˜ao tem como objetivo demonstrar o fenˆomeno em uma superf´ıcie inicialmente plana formada por part´ıculas posicionadas equidistantes e interligadas por molas. Para os princ´ıpios de renderizac¸˜ao gr´afica considerou-se as part´ıculas sendo os v´ertices e as molas sendo as arestas. Nesse caso cada v´ertice possui 6 arestas, ou molas, que interligam outros v´ertices e assim sucessivamente como no modelo abaixo: Figure 5. Concepc¸ ˜ao da malha da superf´ıcie e os n´os interligados ao central O tamanho dessa malha n˜ao altera a simulac¸˜ao em si, mas nesse caso foi utilizada uma malha de 50 X 50 v´ertices. Assim, quando aplica-se uma forc¸a no n´o central por exemplo, esse n´o exerce uma forc¸a nos 6 n´os adjacentes, como visto anteriormente. Essa forc¸a ent˜ao gerar´a uma reac¸˜ao em cadeia similar `a uma onda. Todas as part´ıculas atuar˜ao umas nas outras, hora oscilando em uma direc¸˜ao, hora oscilando em outra direc¸˜ao. A onda gerada ap´os a aplicac¸˜ao de forc¸a em um n´o propagar´a de maneira circular o que dar´a um aspecto bem similar ao de uma gota caindo na superf´ıcie de um l´ıquido. 5.4. Renderizac¸˜ao dos algoritmos na tela Ap´os determinar o comportamento do algoritmo, foi necess´ario aplicar algumas t´ecnicas de renderizac¸˜ao para que fosse poss´ıvel a visualizac¸˜ao do produto final. Optou-se pela utilizac¸˜ao do OpenGL que al´em de ser uma API livre, permite uma maior aproximac¸˜ao com os recursos do hardware de v´ıdeo. Para se obter o resultado na tela foi necess´ario definir algumas func¸˜oes no Ren- dering Pipeline cujo detalhamento n˜ao ´e o objetivo desse artigo, mas em termos gerais deve-se definir uma lista de exibic¸˜ao, que diz respeito aos v´ertices ou part´ıculas da su- perf´ıcie. Realizar as operac¸˜oes pr´e-vertices, que pode ser resumida em operac¸˜oes que convertem os v´ertices em primitivas de desenho em matrizes 4x4 de onde sair˜ao as co- ordenadas que ser˜ao convertidas do 3D para a tela e devem ser realizados os c´alculos de textura e iluminac¸˜ao. Ap´os essa abordagem, deve-se definir a montagem de primitivas que pode se resumir em c´alculos de perspectivas, determinac¸˜ao do que deve ser exibido ou n˜ao e determinac¸˜ao dos pol´ıgonos formados pela interligac¸˜ao de trˆes v´ertices. No caso tratado, ser˜ao desenhados atrav´es linhas onde realizou-se a entrada da coordenada dos v´ertices e os
  11. 11. interligamos por linhas que fecham os pol´ıgonos de trˆes em trˆes v´ertices nos fornecendo uma malha formada por pequenos triˆangulos como no modelo visto acima. Temos tamb´em que aplicar o shader em nossa superf´ıcie, esse shader ´e re- spons´avel por produzir uma luz e sombra adequada ao nosso modelo, no nosso caso estamos utilizando o vertex shader que calcula a direc¸˜ao em que a luz ambiente colide com o v´ertice e direciona o reflexo apropriado `a quem o visualiza. Ap´os definirmos essas configurac¸˜oes e algoritmos relacionados `a visualizac¸˜ao temos como resultado uma simples superf´ıcie formada pela interligac¸˜ao dos v´ertices que formam pol´ıgonos em toda a extens˜ao do modelo conforme abaixo: Figure 6. Representac¸ ˜ao em tela da superf´ıcie do sistema 6. Resultados Depois da realizac¸˜ao da prototipagem e a transcric¸˜ao do algoritmo para vers˜ao final in- cluindo as bibliotecas matem´aticas e gr´aficas, foi poss´ıvel se obter um resultado simpli- ficado do objeto em quest˜ao. Foram realizados alguns testes alterando os valores das constantes do material e da forc¸a aplicada no ponto inicial conforme podemos observar abaixo: Figure 7. Resultados obtidos da simulac¸ ˜ao
  12. 12. 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, ´e poss´ıvel verificar que o comportamento do sistema depende diretamente do ajuste dessas constantes que devem ser feitas de acordo com o resultado obtido. Como visto em estudo pr´evio, havia um range de poss´ıveis valores para esses ajustes, ap´os alguns experimentos chegou-se aos valores de 0,01 para o valor da constante das molas e 0,02 para a constante de amortecimento do sistema. Figure 8. Aplicac¸ ˜ao de forc¸a em trˆes pontos distintos Tamb´em foram testados a aplicac¸˜ao de forc¸a em v´arios pontos distintos para ver- ificar a atuac¸˜ao e propagac¸˜ao das ondas criadas em contato com outras ondas, o resul- tado foi satisfat´orio, sendo que algumas ondas ao se colidirem atenuavam as forc¸as e at´e mesmo a direc¸˜ao de propagac¸˜ao, comprovando a eficiˆencia do algoritmo para calcular as forc¸as resultantes do sistema como um todo. Al´em disso, pode-se verificar que alterando os valores das constantes ´e poss´ıvel alterar as propriedades do liquido em quest˜ao. No exemplo abaixo, modificou-se a con- stante das molas para 0,18, isso fez com que as forc¸as atuantes tanto na oscilac¸˜ao das part´ıculas quanto das molas vizinhas aumentassem consideravelmente, fazendo com que o sistema oscilasse com uma maior frequˆencia, dando um aspecto de um liquido de baixa densidade. O mesmo foi realizado aumentando a constante de amortecimento do sis- tema, essa constante como visto no algoritmo, ´e respons´avel por gerar uma forc¸a oposta `a oscilac¸˜ao, desta forma quando se aumenta a forc¸a para 0,4 por exemplo, nota-se clara- mente uma caracter´ıstica de ganho de densidade do liquido, aparentando um liquido mais viscoso com ondas pequenas e pouco duradouras.
  13. 13. Figure 9. Resultado com o aumento da constante da mola para 0,18 Foi poss´ıvel tamb´em verificar as premissas de que os m´etodo integral de Euler tende a ganhar energia, concluiu-se que quando se aplica uma constante da mola maior que a constante de amortecimento o sistema passa a adotar uma caracter´ıstica de sempre ganhar energia, j´a que o amortecimento n˜ao ´e mais capaz de diminuir a oscilac¸˜ao da mola. Essa premissa tamb´em vale para o caso da constante de amortecimento n˜ao for considerada durante a construc¸˜ao do algoritmo. H´a um ganho exponencial de energia que faz o sistema todo assumir valores fora de escala e consequentemente a superf´ıcie entra em colapso. Figure 10. superf´ıcie em colapso utilizando constante da mola 1,5 vezes maior que a constante de amortecimento.
  14. 14. 7. Conclus˜ao Os estudos relacionados a renderizac¸˜ao de l´ıquidos e os algoritmos utilizados para simular o fenˆomeno demonstram que para se alcanc¸ar tal sa´ıda, diversas abordagens podem ser adotadas, al´em da utilizac¸˜ao e adaptac¸˜ao de distintas ferramentas matem´aticas e f´ısicas. Nesse artigo pˆode-se, com ajuda de ferramentas f´ısicas e computacionais, propor uma simulac¸˜ao convincente da superf´ıcie de um liquido qualquer reagindo `a uma aplicac¸˜ao simples de forc¸as externas. Deve-se salientar que o foco desta proposta n˜ao diz respeito `a aproximac¸˜ao da realidade da simulac¸˜ao, mas sim, conseguir reproduzir o fenˆomeno com um baixo custo computacional e facilidade de implementac¸˜ao. Verificou-se que o algoritmo gerado al´em de ser mais simples do que os propostos por outros autores e ferramentas, pode ser adap- tado para estudos de outros objetos e superf´ıcies deform´aveis. O desempenho geral do sistema foi satisfat´orio em termos de iterac¸˜oes. Notou-se que, como foi abordado somente a malha da superf´ıcie e n˜ao um volume como um todo, a quantidade de c´alculos utilizados por frame de renderizac¸˜ao ´e consideravelmente menor do que os outros trabalhos estudados, j´a que o n´umero de conex˜oes entre as part´ıculas s˜ao menores. Neste caso as part´ıculas est˜ao conectadas somente com seus vizinhos ime- diatos, o que gera um n´umero menor de vari´aveis a serem calculadas por frame. Como o algoritmo pode ser aplicado com diferentes ferramentas, linguagens e bibliotecas, n˜ao estamos tratando do desempenho relacionado `a essas tecnologias, mas sim dos c´alculos necess´arios para atuar sobre o sistema de part´ıculas. O aprendizado com a utilizac¸˜ao das t´ecnicas de computac¸˜ao gr´afica exigidas para tal simulac¸˜ao, apesar de n˜ao ter sido foco de estudo, foi um ponto importante da abor- dagem, pois v´arios conceitos matem´aticos foram aprimorados e um novo entendimento a respeito da renderizac¸˜ao de elementos 3D foram absorvidos, como iluminac¸˜ao, cˆamera, propriedades dos objetos em si. 8. Trabalhos Futuros Com o estudo aprofundado sobre superf´ıcies com molas, pˆode-se verificar que o mesmo princ´ıpio ´e utilizado para simulac¸˜ao de objetos com propriedades deformantes e tamb´em para a simulac¸˜ao de tecidos em computac¸˜ao gr´afica. Desta maneira, pretende-se uma fu- tura abordagem em algoritmos que consigam realizar tal simulac¸˜ao com foco na facilidade de implementac¸˜ao do algoritmo e representac¸˜ao convincente do fenˆomeno de movimento dos objetos estudados.
  15. 15. References Adabala, 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 Element Analysis. Darles, E., Crespin, B., Ghazanfarpour, D., and Gonzato, J. C. (2011). A Survey of Ocean Simulation and Rendering Techniques in Computer Graphics. 1, 30(Computer Graphics 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). Numerical Recipes - 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. Annual Review 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 Science Colorado State University. Robertson, I. and Sherwin, S. (1999). Free-Surface Flow Simulation Using hp/Spectral Elements. Journal of Computational Physics, 155(1):26–53. Triana, C, A. and Fajardo, F. (2013). Experimental study of simple harmonic motion of a spring-mass system as a function of spring diameter. Revista Brasileira de Ensino de Fsica,, 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 Surface Model for Real-Time. IEEE Transactions on Visualization and Computer Graphics.

×