SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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
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
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
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].
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
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
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
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
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++.
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
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
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.
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.
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.
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.

Mais conteúdo relacionado

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

análise dimensional f
análise dimensional fanálise dimensional f
análise dimensional fbruno31ss
 
análise dimensional f
 análise dimensional f análise dimensional f
análise dimensional fcassionogueira
 
APRESENTAÇÃO TCC1-metódo de ritz em pilares.pptx
APRESENTAÇÃO TCC1-metódo de ritz em pilares.pptxAPRESENTAÇÃO TCC1-metódo de ritz em pilares.pptx
APRESENTAÇÃO TCC1-metódo de ritz em pilares.pptxSilvio Veras
 
Modelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regrasModelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regrasSuzana Viana Mota
 
Pac elementos finitos 1 a parte
Pac elementos finitos 1 a partePac elementos finitos 1 a parte
Pac elementos finitos 1 a parteAndré Pissolatti
 
Roteiro Tubo PVC e Placa de Som
Roteiro Tubo PVC e Placa de SomRoteiro Tubo PVC e Placa de Som
Roteiro Tubo PVC e Placa de SomValmir Heckler
 
Métodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia químicaMétodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia químicaDiego Silva
 
Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)
Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)
Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)Rodrigo Nascimento
 
Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014
Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014
Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014prangel251
 
Método Elementos Finitos - Modelo Fémur [Abaqus]
Método Elementos Finitos - Modelo Fémur [Abaqus]Método Elementos Finitos - Modelo Fémur [Abaqus]
Método Elementos Finitos - Modelo Fémur [Abaqus]Luís Rita
 
43640380 mecanica-vetorial2-130410152247-phpapp02
43640380 mecanica-vetorial2-130410152247-phpapp0243640380 mecanica-vetorial2-130410152247-phpapp02
43640380 mecanica-vetorial2-130410152247-phpapp02Fabiana Medeiros
 
Mecanicaexerciciosresolvidos 141118162658-conversion-gate02
Mecanicaexerciciosresolvidos 141118162658-conversion-gate02Mecanicaexerciciosresolvidos 141118162658-conversion-gate02
Mecanicaexerciciosresolvidos 141118162658-conversion-gate02Othon Santos Medeiros
 
Dynamic analysis of human gait
Dynamic analysis of human gaitDynamic analysis of human gait
Dynamic analysis of human gaitPaula Antunes
 
Blog 1 - Capítulos 1, 2, 3 e 4
Blog 1 - Capítulos 1, 2, 3 e 4Blog 1 - Capítulos 1, 2, 3 e 4
Blog 1 - Capítulos 1, 2, 3 e 4Bruno Túlio
 

Semelhante a Aplicação da Lei de Hooke para Simplificação e Renderização de Simulação Física de Líquidos (20)

TF-VBF
TF-VBFTF-VBF
TF-VBF
 
análise dimensional f
análise dimensional fanálise dimensional f
análise dimensional f
 
análise dimensional f
 análise dimensional f análise dimensional f
análise dimensional f
 
APRESENTAÇÃO TCC1-metódo de ritz em pilares.pptx
APRESENTAÇÃO TCC1-metódo de ritz em pilares.pptxAPRESENTAÇÃO TCC1-metódo de ritz em pilares.pptx
APRESENTAÇÃO TCC1-metódo de ritz em pilares.pptx
 
Modelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regrasModelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regras
 
Pac elementos finitos 1 a parte
Pac elementos finitos 1 a partePac elementos finitos 1 a parte
Pac elementos finitos 1 a parte
 
Elementos finitos 1 a parte
Elementos finitos 1 a parteElementos finitos 1 a parte
Elementos finitos 1 a parte
 
Roteiro Tubo PVC e Placa de Som
Roteiro Tubo PVC e Placa de SomRoteiro Tubo PVC e Placa de Som
Roteiro Tubo PVC e Placa de Som
 
Apostila Matlab
Apostila MatlabApostila Matlab
Apostila Matlab
 
Métodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia químicaMétodos numéricos aplicados à engenharia química
Métodos numéricos aplicados à engenharia química
 
Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)
Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)
Fundamentos Geométricos da Teoria de Einstein-Cartan (Relatório de IC)
 
Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014
Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014
Caderno ativ auto_reguladas-alunos-1ªsérie-4ºbim2014
 
Wxt
WxtWxt
Wxt
 
Mo
MoMo
Mo
 
Método Elementos Finitos - Modelo Fémur [Abaqus]
Método Elementos Finitos - Modelo Fémur [Abaqus]Método Elementos Finitos - Modelo Fémur [Abaqus]
Método Elementos Finitos - Modelo Fémur [Abaqus]
 
Mecanica geral
Mecanica geralMecanica geral
Mecanica geral
 
43640380 mecanica-vetorial2-130410152247-phpapp02
43640380 mecanica-vetorial2-130410152247-phpapp0243640380 mecanica-vetorial2-130410152247-phpapp02
43640380 mecanica-vetorial2-130410152247-phpapp02
 
Mecanicaexerciciosresolvidos 141118162658-conversion-gate02
Mecanicaexerciciosresolvidos 141118162658-conversion-gate02Mecanicaexerciciosresolvidos 141118162658-conversion-gate02
Mecanicaexerciciosresolvidos 141118162658-conversion-gate02
 
Dynamic analysis of human gait
Dynamic analysis of human gaitDynamic analysis of human gait
Dynamic analysis of human gait
 
Blog 1 - Capítulos 1, 2, 3 e 4
Blog 1 - Capítulos 1, 2, 3 e 4Blog 1 - Capítulos 1, 2, 3 e 4
Blog 1 - Capítulos 1, 2, 3 e 4
 

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

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.