• Nenhum resultado encontrado

Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos

N/A
N/A
Protected

Academic year: 2021

Share "Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos"

Copied!
40
0
0

Texto

(1)

Algemiro Augusto da Silva Neto

Uma abordagem baseada em SPH para

animação interativa de águas rasas em jogos

Dissertação de Mestrado

Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós– graduação em Informática do Departamento de Informática da PUC-Rio

Orientador: Prof. Waldemar Celes

Rio de Janeiro Dezembro de 2008

(2)

Algemiro Augusto da Silva Neto

Uma abordagem baseada em SPH para

animação interativa de águas rasas em jogos

Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós– graduação em Informática do Departamento de Informática do Centro Técnico Científico da PUC-Rio. Aprovada pela Comissão Examinadora abaixo assinada.

Prof. Waldemar Celes Orientador Departamento de Informática — PUC-Rio

Prof. Marcelo Gattass Departamento de Informática — PUC-Rio

Prof. Luiz Henrique de Figueiredo IMPA

Prof. Ivan Menezes PUC-Rio

Prof. José Eugênio Leal Coordenador Setorial do Centro Técnico Científico -PUC-Rio

(3)

Silva Neto, Algemiro Augusto da

Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos / Algemiro Augusto da Silva Neto ; orientador: Waldemar Celes. – 2008.

40 f. : il.(color.) ; 30 cm

Dissertação (Mestrado em Informática)–Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2008.

Inclui bibliografia

1. Informática – Teses. 2. SPH. 3. Animação. 4. Simulação de Fluidos. 5. Águas rasas. 6. DFC. I. Celes, Waldemar. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. III. Título.

Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador.

Algemiro Augusto da Silva Neto

Graduou-se em Informática pelo Instituto Superior de Tecnologia de Petrópolis em 2004. Foi bolsista de Iniciação Científica do CNPq no Laboratório Nacional de Computação Científica onde desenvolveu um sistema de visualização em Hemodinâmica e atuou em pesquisas na área de animação de fluidos. Durante o mestrado foi bolsista CAPES.

Ficha Catalográfica

(4)

Agradecimentos

Agradeço a todos os professores com os quais aprendi ao longo dos anos. Ao meu orientador Waldemar Celes, pela paciência e disponibilidade com a qual me orientou durante o Mestrado. Ao professor Marcelo Gattass, pelo apoio com o qual sempre pude contar. Aos amigos Alexandre Gazola, Fábio Guerra, Silvan Luís, Isabelle Desbois e a todos os amigos que fiz no Mestrado. Aos meus grandes amigos Diego Mazala e Bruno Correia, com os quais percorri o mesmo caminho acadêmico desde a Iniciação Científica. Aos companheiros de república pela companhia e, em especial, à Luciana Correia pelas conversas sobre cálculo e modelagem. Ao professor Antônio Lopes pelas dicas técnicas. Um agradecimento especial aos professores Paulo Sérgio Rodrigues e Gilson Giraldi por todo o apoio, paciência, disponibilidade e conselhos acadêmicos desde a orientação na iniciação científica e por contribuírem de maneira fundamental em minha carreira acadêmica. Aos meus pais pelo apoio e confiança. A Deus, pois sem ele nada teria sido possível. À CAPES e à PUC-Rio, pelos auxílios concedidos.

(5)

Resumo

Silva Neto, Algemiro Augusto da; Celes, Waldemar. Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos. Rio de Janeiro, 2008. 40p. Dissertação de Mestrado — Departamento de Informática, Pontifícia Universidade Católica do Rio do Janeiro.

Neste trabalho, é apresentada uma abordagem para animação de águas rasas em aplicações interativas baseada em um modelo físico. Para a simulação, foi em-pregado o método Lagrangeano conhecido como Smoothed Particle

Hydrody-namics (SPH). Com base no trabalho de Muller et al. (Muller et al., 2003), que

utilizou SPH em Computação Gráfica, e no trabalho de Rodriguez-Paz e Bonet (Rodriguez-Paz; Bonet, 2005) que propõe uma variação deste método para a si-mulação de águas rasas em aplicações de engenharia, propomos uma abordagem simples e eficiente para a simulação de águas rasas em jogos sob a influência de terrenos acidentados.

Palavras–chave

(6)

Abstract

Silva Neto, Algemiro Augusto da; Celes, Waldemar. A SPH based approach to interactive animation of shallow-water on games . Rio de Janeiro, 2008. 40p. MSc. Dissertation — Departamento de Informática, Pontifícia Universidade Católica do Rio do Janeiro.

In this work is presented an approach to shallow-water animation on interactive applications based on a physic model. For the simulation, was employed a Lagrangian method known as Smoothed Particle Hydrodynamics (SPH). Based on the work of Muller et al. (Muller et al., 2003), which applied SPH in Computer Graphics, and on the work of Rodriguez-Paz (Rodriguez-Paz; Bonet, 2005), which proposes a variation of this method to shallow-water simulation on engineering applications, we have proposed a simple and efficient approach for shallow-water simulation on games under the influence of irregular terrains.

Keywords

(7)

Sumário

1 Introdução 9 1.1 Motivação 9 1.2 Objetivo 11 1.3 Organização da dissertação 11 2 Trabalhos relacionados 12

2.1 Métodos para animação de fluidos 12

3 Animação de fluidos com SPH 17

3.1 Navier-Stokes em animação de fluidos 17

3.2 Navier-Stokes e SPH 18

3.3 Simulação 22

4 Abordagem proposta 23

4.1 Domínio do problema 23

4.2 Combinação dos modelos 24

4.3 Funções de suavização 26

4.4 Implementação 27

5 Resultados e discussão 29

5.1 Rompimento de barragem em canal retangular 29

5.2 Barragem cilíndrica 31

5.3 Influência do terreno 31

(8)

Lista de figuras

4.1 Domínio de simulação de águas rasas. 24

4.2 Visão geral do processo. 28

5.1 Dimensões do problema (Visão Superior). 29

5.2 Variação da altura ht em x = 2m para o caso de rompimento

de barragem. Dimensões do fluido: 2 × 1 × 0.5 m, Raio do

Kernel: 0.1 30

5.3 Comparação entre o resultado de (Rodriguez-Paz; Bonet, 2005) e a solução analítica para altura do fluido em x = 2m. (Figura extraída de (Rodriguez-Paz; Bonet, 2005)) 30 5.4 Quebra de barragem vertical. Dimensões do fluido: 2 x 1 x 0.5

m. A coloração varia de acordo com a altura do fluido durante

sua evolução. 31

5.5 Quebra de barragem vertical. 3 instantes de uma simulação

com 1500 partículas a 15Fps. 32

5.6 Vista superior de um rompimento de barragem cilíndrica com

600 partículas. 32

5.7 Fluido confinado em uma calha (2000 partículas - 13Fps). A cor das partículas de fluido varia em função da altura da

coluna de água. 33

5.8 Avaliação do comportamento do fluido em terreno plano.

(1000 partículas - 30Fps) 34

5.9 Visualização da superfície do fluido. Simulação com 2K

(9)

1

Introdução

1.1

Motivação

Animação Computacional é um segmento da computação gráfica de intensas pesquisas pelas suas aplicações em áreas como, educação, interação humano-computador e, principalmente, na indústria de entretenimento. Nesse contexto, além da produção de efeitos especiais, há um interesse em reproduzir elementos presentes na natureza. Dentre tais elementos, destacamos os fluidos. Considerando que os fluidos são sistemas com um número elevado de graus de liberdade, animá-los com realismo satisfatório por meio de métodos puramente geométricos torna-se uma tarefa difícil (Giraldi et al., 2005). Dessa forma, animações onde elementos de uma cena obedecem a princípios físicos têm despertado grande interesse da comunidade pelo grau de realismo que podem obter. Esta área, também denominada Modelagem Baseada em Física (Physics Based Modeling), envolve conhecimentos, tanto de modelagem computacional quanto de computação gráfica.

Seguindo este princípio, métodos em Dinâmica de Fluidos Computacional (CFD - Computational Fluid Dynamics) vêm sendo empregados para gerar ani-mações envolvendo fluidos. Tais métodos são aplicados na solução numérica das equações diferenciais que regem o comportamento do fluido. Essas equações des-crevem as leis de conservação da mecânica do contínuo (conservação de massa, de energia e da quantidade de movimento) e muitas vezes não apresentam solução analítica. Daí a necessidade de métodos numéricos para discretizar o problema e obter uma solução com um nível de aproximação aceitável.

O nível de precisão da solução deve variar de acordo com a aplicação. A simulação computacional para fins de análise ou estudo de fenômenos físicos envolvendo fluidos exige modelos físicos e numéricos complexos e alto grau de precisão. No entanto, para fins de animação em aplicações de realidade virtual, filmes, jogos e simuladores, podem ser empregados modelos mais simples e um menor grau de precisão, desde que isso não comprometa o realismo visual da animação, visando simulações em tempo real.

(10)

Capítulo 1. Introdução 10

Dentre os fenômenos físicos envolvendo fluidos, um dos que despertam maior interesse, tanto em engenharia quanto em animação, é o escoamento de fluidos sobre terrenos. Na engenharia, a simulação desse fenômeno é interessante para o estudo do transporte de sedimentos, risco de inundações ou de fluxo de detritos, por exemplo. Em animação, há um interesse em representar, de maneira convincente, os efeitos gerados pelo escoamento, tais como a formação de rios, lagos e quedas d’água. A busca por métodos que executem essas tarefas de maneira satisfatória tem motivado intensas pesquisas nesta área (Kipfer; Westermann, 2006) (Maes et al., 2006).

Este tipo de animação exige métodos de simulação com tratamento espacial adequado. Segundo Maes et al. (2006), abordagens tradicionais, baseadas em malha, não são espacialmente eficentes na simulação de escoamentos sobre terrenos. Uma vez que terrenos podem ser altamente irregulares, a malha que discretiza o fluido pode gastar espaço de armazenamento para regiões do domínio que nunca contêm água. Métodos alternativos, utilizando malhas adaptativas (Losasso et al., 2004), colunas d’água (Maes et al., 2006) ou partículas (Kipfer; Westermann, 2006), têm sido propostos com o intuito de amenizar ou eliminar tal problema.

Com relação ao modelo físico, boa parte dos métodos propostos para simula-ção de escoamento utiliza as equações de águas rasas (Kass; Miller, 1990; Hagen et al., 2005) para gerar um campo de altura que represente a superfície do fluido.

Em (Rodriguez-Paz; Bonet, 2005) é apresentado um método baseado em partículas para simulação de escoamentos sobre terrenos. Este método consiste em uma variação do método SPH (Smoothed Particle Hydrodynamics) para lidar com as equações de águas rasas. Esta variação incorpora propriedades do terreno como gradiente e curvatura na formulação. Neste trabalho, nos referimos a esta variação específica do SPH como SW-SPH (Shallow Water - SPH). O SPH é um método Lagrangeano bastante difundido na comunidade de computação gráfica, principalmente, após o trabalho de Muller et al. (Muller et al., 2003), que propôs uma abordagem para animação interativa de fluidos utilizando este método.

O SW-SPH foi proposto com o objetivo de representar com precisão fenô-menos de fluxo sobre terrenos não uniformes e com altos gradientes em aplicações de engenharia. Uma vez que o SW-SPH foi desenvolvido visando a precisão dos re-sultados, sua utilização em aplicações gráficas interativas constitui um desafio sob o ponto de vista computacional. Isso se deve ao fato de que algumas características do método o tornam mais custoso do que métodos menos precisos como o proposto por Muller et al. (2003). A principal delas é a utilização de núcleos de interpolação com suporte variável (h variável). Por outro lado, é grande a demanda por realismo visual em Computação Gráfica. Sendo assim, a utilização de métodos precisos torna-se

(11)

in-Capítulo 1. Introdução 11

teressante, principalmente em aplicações que não exigem interatividade como na produção de efeitos visuais para a indústria do cinema.

1.2 Objetivo

O objetivo deste trabalho é desenvolver um sistema capaz de produzir ani-mações interativas de águas rasas para jogos utilizando o método SPH. Para isso, combinaremos o modelo de animação interativa apresentado em (Muller et al., 2003) com as idéias propostas por Rodriguez-Paz e Bonet (2005) que incorporam o terreno na formulação do SPH. Com isso, espera-se obter uma abordagem ade-quada à animação de escoamentos sobre terrenos e também à animação de pequenos volumes de fluido, como poças d’água.

1.3

Organização da dissertação

O restante deste trabalho está organizado da seguinte maneira: No Capítulo 2 apresentamos alguns trabalhos relacionados à simulação de fluidos. No Capítulo 3, damos uma breve descrição dos fundamentos do método SPH e apresentamos como este método foi utilizado em (Muller et al., 2003) para animação de fluidos em aplicações interativas. Em seguida, no Capítulo 4, descrevemos a abordagem proposta para simulação de águas rasas com SPH e a implementação do sistema. Nos capítulos 5 e 6 são apresentados os resultados, conclusões e trabalhos futuros.

(12)

2

Trabalhos relacionados

Este capítulo introduz alguns trabalhos importantes na área de animação de fluidos, destacando a simulação de escoamentos sobre terrenos e a utilização de sistemas de partículas.

2.1

Métodos para animação de fluidos

Os métodos para animação computacional de fluidos encontrados na literatura adotam técnicas de discretização baseadas em formulações Eulerianas, bem como em formulações Lagrangeanas. Nas formulações Eulerianas o domínio do problema é discretizado por um conjunto de pontos fixos no espaço. As propriedades do fluido são avaliadas a cada instante de tempo através do fluxo que passa por esses pontos. Por sua vez, nas formulações Lagrangeanas, o fluido é discretizado por um conjunto de partículas que acompanham o fluxo. A seguir, alguns dos trabalhos de maior relevância em animação de fluidos.

Foster e Metaxas (1997) apresentaram um modelo Euleriano para animação de gases turbulentos e aquecidos. Eles utilizaram um conjunto simplificado de equações para a modelagem do gás, que exigiu menos esforço computacional para simulação do que a modelagem tradicional. Esta modelagem, mostrou-se adequada para a representação dos efeitos desejados. A discretização das equações foi feita via Diferenças Finitas. As fronteiras e os elementos que compõem a cena foram modelados via voxels. A visualização foi feita via Volume Rendering e partículas de prova no interior do fluido. Este método apresenta a desvantagem de ser nu-mericamente instável para grandes passos de tempo. Sendo assim, mesmo com a modelagem simplificada do gás, este método não é capaz de gerar animações em tempo real. Stam (1999) apresentou uma estratégia para solucionar o problema de instabilidade numérica apresentado no trabalho de Foster e Metaxas (1997). Foram utilizados métodos Lagrangeanos e esquemas implícitos para solução numérica das equações de Navier-Stokes, resultando em simulações mais estáveis mesmo com passos de tempo grandes, o que viabilizou a produção de animações em tempo real. Witting (1999) apresentou um modelo para simulação de fluidos bem mais

(13)

Capítulo 2. Trabalhos relacionados 13

completo. Ao contrário de Foster e Metaxas (1997) e Stam (1999), Witting mantém a modelagem do gás como um fluido compressível. Este método foi utilizado para gerar efeitos visuais no filme “ O Príncipe do Egito”.

Premoze e Ashikhmin (2000) apresentaram um método para geração de superfícies de água sob diferentes condições de vento e iluminação. Tal método é adequado à visualização tanto de águas profundas quanto de águas rasas, uma vez que é capaz de reproduzir a opacidade e coloração específicas em cada caso, pois modela o transporte de luz na água.

Em (Carlson et al., 2004) é apresentado um método para animação da inte-ração entre sólidos e fluidos de superfície livre. Os objetos sólidos são modelados como se fossem feitos de fluido. A rigidez de um objeto é reproduzida restringindo-se o campo de velocidade da região do fluido que reprerestringindo-senta determinado ob-jeto. Objetos de diferentes densidades podem ser modelados, tais como chumbo ou madeira. A influência entre os elementos do sistema se dá tanto no sentido fluido-sólido quanto no sentido fluido-sólido-fluido.

Kass e Miller (1990) propuseram um método para animação de fluidos no qual a superfície do fluido é representada por um campo de altura. A evolução do fluido é controlada por uma versão simplificada das equações de águas rasas. Tal método é adequado à simulação de grandes superfícies de água, como oceanos e escoamentos sobre terrenos.

Dentre os métodos Lagrangeanos baseados em partículas, destacam-se o método SPH (Smoothed Particle Hydrodynamics) e o MPS (Moving Particle

Semi-Implicit).

O método SPH foi desenvolvido por Gingold e Monaghan (1977) e por Lucy (1977) para simulação de problemas astrofísicos. Em (Desbrun; Gascuel, 1996), o SPH foi empregado pela primeira vez em computação gráfica, tendo sido utilizado para animação de objetos deformáveis.

Em (Muller et al., 2003) o método SPH foi utilizado na simulação de flui-dos para aplicações interativas. A visualização do fluido foi feita por dois métoflui-dos distintos para geração de superfícies: O Surface Splatting (Zwicker et al., 2001) e o Marching Cubes (Lorensen; Cline, 1987). O primeiro apresentou melhor per-formance. No entanto, este último apresentou resultados mais convincentes. Em (Muller et al., ), foi apresentada uma extensão do modelo proposto em (Muller et al., 2003), para animação da interação entre fluidos de diferentes tipos e fases, uti-lizando SPH.

(Nakamura, 2007) apresentou um estudo, sobre animação de fluidos via SPH. Com base nas técnicas descritas por (Muller et al., 2003) e (Muller et al., ), foram gerados diferentes efeitos com fluidos, tais como poças d’água, fluidos sob

(14)

Capítulo 2. Trabalhos relacionados 14

confinamento e interação entre fluidos diferentes. Além disso, foram identificados os gargalos do método e os recursos computacionais necessários para produção de animações interativas utilizando tal abordagem.

O MPS foi apresentado inicialmente por (Koshizuka; Oka, 1996) e é uma variante do SPH. Dentre os trabalhos de animação de fluidos para computação gráfica utilizando este método, destaca-se o de (Premoze et al., 2003). Neste trabalho, não foram produzidas animações interativas. O cálculo da pressão via gradientes conjugados e a geração da superfície do fluido via Level Set para renderização foram identificados como gargalos da aplicação. Por outro lado, as simulações produzidas possuem alta resolução (80 × 103 - 150 × 103 partículas) e

o fluido apresentou um comportamento bastante convincente.

Sistemas de partículas foram introduzidos na computação gráfica por (Reeves, 1983) como uma técnica para representação de objetos fuzzy tais como fogo, fumaça ou nuvens. Desde então, sistemas de partículas vêm sendo amplamente utilizados em simulação de fluidos. Para representar o comportamento do fluido de maneira realista, além de modelos matemáticos adequados, é necessária uma grande quantidade de partículas. Para isso, são necessários sistemas de partículas sofisticados, com algoritmos de detecção de interferência e colisão eficientes. A seguir, são apresentados alguns trabalhos que propõem implementações eficientes de sistemas de partículas.

Em (Celes; Calomeni, 2003) são apresentados alguns métodos para simulação e visulização de sistemas de partículas. Para aumento de desempenho, é proposta uma estratégia para distribuição eficiente do processamento entre CPU e GPU. No entanto, com o recente avanço do hardware gráfico, algumas implementações de sistemas de partículas foram concebidas explorando totalmente as GPU’s. Devido ao alto grau de paralelismo nas GPU’s, observa-se um aumento de performance considerável com relação às implementações tradicionais com simulação em CPU. Além disso, tal estratégia elimina a transferência de dados das partículas, em tempo de execução, entre CPU (para simulação) e GPU (para renderização).

Latta (2004) apresentou uma implementação totalmente em GPU de um sis-tema de partículas capaz de simular um milhão de partículas em tempo real. Kolb et al. (2004) apresentaram uma extensão deste trabalho, incluindo detecção de colisão de partículas com objetos de formas arbitrárias e um algoritmo de ordenação das partículas em GPU para renderização correta com alpha blending (Shreiner, 2004). Para detecção de colisão, foram utilizados mapas de profundidade, armazenados em texturas de 8 bits, contendo a forma externa do objeto e seus vetores normais. Para ordenar as partículas, foi utilizada uma textura adicional armazenando a distância das partículas para o observador, e o algoritmo de ordenação “ odd-even merge sort”

(15)

Capítulo 2. Trabalhos relacionados 15

proposto em (Batcher, 1968) é utilizado para ordenar as partículas em função dessa distância.

Kipfer et al. (2004) apresentaram outra implementação inteiramente em GPU, para animação e renderização, em tempo real, de grandes conjuntos de partículas. Kipfer utilizou, nessa implementação, Memory Objects OpenGL como render

targets e para armazenar dados de geometria na placa gráfica. Assim como em

(Kolb et al., 2004), Kipfer et al. também inclui uma ordenação das partículas em GPU para renderização correta com alpha blending, e adicionalmente trata intercolisões (colisões entre as partículas do sistema), o que também requer uma ordenação. A ordenação, em ambos os casos, foi realizada por uma variação do algoritmo “ Bitonic sort”, proposto em (Purcell et al., 2003), alterando-se apenas a chave de ordenação em cada caso. No caso de detecção de intercolisões, a chave de ordenação utilizada é o índice da célula associado a cada partícula, já para o caso da renderização com transparência através de alpha blending, a chave de ordenação é a distância da partícula para o observador.

Mais recentemente, Venetillo e Celes (2007) apresentaram um sistema de partículas baseado em GPU que lida com intercolisões e é capaz de simular um milhão de partículas a taxas interativas. Esse desempenho é obtido nas placas gráficas mais recentes (GeForce 8 Series em diante) e além de intercolisões o sistema trata a colisão contra objetos em cena e simulação de materiais granulares.

Vale destacar que, recentemente, diversos trabalhos vêm explorando recur-sos de GPUs para aceleração da simulação numérica na animação de fluidos. O resultado da exploração de GPUs para este tipo de processamento é, geralmente, um aumento considerável de performance na simulação frente às implementações em CPU. Sendo assim, apesar de não empregarmos este recurso, citamos a seguir alguns trabalhos nesta linha pelos benefícios que podem ser obtidos.

Em (Harris, 2004), é detalhada uma versão para GPU do método baseado em grid “ Stable Fluids” proposto em (Stam, 1999).

Amada et al. (2004) propuseram uma implementação do método SPH em GPU. No entanto, a detecção da vizinhança de cada partícula, necessária ao cálculo das grandezas em questão, é executada em CPU. Um mapa com as informações de vizinhança é montado e transferido para GPU em uma textura a cada iteração. A montagem e a transferência do mapa de vizinhança para GPU foram identificadas como o gargalo da aplicação, mas ainda assim foi obtido um ganho de desempenho com relação à implementação em CPU apresentada para fins de comparação.

Kolb e Cuntz (2005) e, mais recentemente, Harada et al. (2007) propuseram implementações do SPH completamente em GPU, eliminando assim, a transferên-cia de dados entre CPU e GPU.

(16)

Capítulo 2. Trabalhos relacionados 16

Karsten e Trier (2004) apresentaram um versão em GPU do método proposto em (Kass; Miller, 1990).

Kipfer e Westermann (2006) utilizaram SPH em uma simulação, baseada em GPU, de rios e escoamentos em terrenos para aplicações interativas em computação gráfica. Para determinar as partículas vizinhas e detectar colisão, foi proposta uma estrutura baseada em três listas encadeadas. Além disso, foi apresentado um método para extração e visualização da superfície livre do fluido, que utiliza um campo de altura sobre as partículas. Tal método mostrou-se mais eficiente que os métodos

Marching Cubes e Surface Splatting para aplicações que demandam tempo real.

Maes et al. (2006) propuseram uma outra abordagem baseada em GPU para simulação de escoamentos em terrenos para aplicações interativas. A proposta foi uma otimização do método baseado em colunas de água e variação de pressão hidrostática apresentado por Holmberg e Wunsche (2004). Além disso, um sistema de partículas foi utilizado nesse modelo, para adicionar mais detalhes à superfície do fluido.

(17)

3

Animação de fluidos com SPH

O SPH (Smoothed Particle Hydrodynamics) é um método Lagrangeano baseado em partículas, proposto originalmente para simulação de problemas as-trofísicos por Gingold e Monaghan (1977) e por Lucy (1977). No entanto, o método é geral o bastante para ser aplicado em vários tipos de problemas em mecânica, tanto de fluidos quanto de sólidos. A independência de malhas que o método SPH pro-porciona o tornou atraente para simulações envolvendo fluidos. Este método per-mite evitar custos adicionais com a geração/adaptação da malha que discretiza o domínio do fluido quando a fronteira deste é modificada. Além disso, o método apresenta uma formulação simples. Estas características o colocam como uma al-ternativa interessante para aplicações que demandam taxas interativas como jogos e simuladores.

A formulação do SPH se baseia no método de representação integral de funções e posterior aproximação por partículas. Detalhes à respeito da formulação e fundamentos do método SPH são apresentados em (Liu; Liu, 2003), (Nakamura, 2007) e (Giraldi et al., 2005).

Neste capítulo, descrevemos a metodologia introduzida por Muller et al. (Muller et al., 2003) que utilizou SPH para animação interativa de fluidos em computação gráfica. Na Seção 3.1, o comportamento do fluido é modelado por um sistema de equações diferenciais parciais (equações de Navier-Stokes) sujeito a certas condições iniciais e de contorno. Em seguida (Seção 3.2), o método SPH é aplicado na discretização dessas equações para simulação computacional do movimento do fluido. O resultado é uma representação através de um sistema de partículas que se movem sob a influência de forças decorrentes da gravidade, pressão e viscosidade.

3.1

Navier-Stokes em animação de fluidos

O fluido descrito no trabalho de (Muller et al., 2003) corresponde a um fluido incompressível e isotérmico. Em um fluido isotérmico a conservação de energia é garantida e portanto não precisa ser modelada. Sendo assim, a evolução do fluido

(18)

Capítulo 3. Animação de fluidos com SPH 18

no tempo é dada por duas equações. A primeira delas (Equação (3-1)) é conhecida como equação de continuidade e assegura a conservação de massa.

∂ρ

∂t + ~∇ · (ρ~v) = 0, (3-1)

A Equação de Navier-Stokes é a equação de conservação do momento, ou equação de movimento, a qual, para este trabalho, será escrita na forma simplificada abaixo:

ρ µ ∂~v ∂t + ~v · ~∇~v= −~∇p + ρ~g + µ∇2~v, (3-2)

onde ~g é um campo de força externo, µ a viscosidade do fluido e ∇2 representa o

Laplaciano do campo de velocidade ~v.

A utilização de um sistema de partículas em vez de uma malha estacionária para resolver numericamente estas equações simplifica o problema. Primeiramente, mantendo o número de partículas constante durante a simulação e supondo todas as partículas com massa constante, temos como conseqüência a conservação da massa e portanto a equação (3-1) pode ser omitida. Além disto, vamos substituir a expressão∂~v

∂t+~v· ~∇~v pela derivada material d~v

dt, uma vez que as partículas movem-se

junto com o fluido.

Existem três forças no lado direito da Equação (3-2): modelando a pressão (−~∇p), as forças externas (ρ~g) e a viscosidade (µ∇2~v). A soma dessas forças

determina a alteração do momento ρd~v

dt das partículas. Como aceleração da partícula

i, temos: ai = d~vi dt = ~ fi ρi , (3-3)

onde ~vi é a velocidade da partícula i e ~fi representa a força (na verdade, força por

unidade de volume) resultante sobre esta partícula. Na seção seguinte será descrito o método SPH e como ele foi aplicado para obtenção da versão discreta da equação (3-2).

3.2

Navier-Stokes e SPH

Os fundamentos do método SPH estão na teoria de interpolação. Com o SPH, valores de campos, que são definidos apenas nas posições (discretas) das partículas, podem ser avaliados em qualquer posição no espaço via interpolação. Para este propósito, o SPH distribui as grandezas em uma vizinhança local a cada partícula através do uso de uma função W , chamada de núcleo de suavização (smoothing

kernel). De acordo com o método SPH, uma grandeza (escalar ou vetorial) A é

interpolada na posição ~r por uma soma ponderada das contribuições de todas as partículas em sua vizinhança. Essa interpolação é dada por:

(19)

Capítulo 3. Animação de fluidos com SPH 19 A(~r) =X j mj Aj ρj W (~r − ~rj, h), (3-4)

onde j itera sobre todas as partículas, mj é a massa de cada partícula j, ~rj é a

posição, ρj a massa específica e Aj o valor da grandeza na posição ~rj.

A função W (~r, h) é o núcleo de suavização e deve ser normalizada: Z

W (~r, h)d~r = 1, (3-5) onde a constante h é usada para definir o domínio do suporte do núcleo de suavização.

A massa e a massa específica da partícula aparecem na Equação (3-4) uma vez que cada partícula i representa um determinado volume Vi = mi/ρi. Enquanto

a massa mié constante para toda a simulação e, nesse caso específico, a mesma para

todas as partículas, a massa específica ρivaria e deve ser calculada a cada instante de

tempo. Particularizando a Equação (3-4) para o caso da massa específica obtemos:

ρS(~r) = X j mj ρj ρj W (~r − ~rj, h) = X j mjW (~r − ~rj, h). (3-6)

Nas equações de fluidos apresentadas na Seção 3.1, aparecem derivadas das grandezas envolvidas. No método SPH, pode-se demonstrar que tais derivadas são calculadas a partir de derivadas do núcleo de suavização ((Liu; Liu, 2003)). Em particular, o gradiente de A é simplesmente:

~ ∇AS(~r) = X j mj Aj ρj ~ ∇W (~r − ~rj, h). (3-7)

Enquanto o Laplaciano de A é dado por:

2AS(~r) = X j mjAj ρj 2W (~r − ~rj, h). (3-8)

É importante perceber que o método SPH apresenta alguns problemas. Quando é utilizado nas equações de fluidos, por exemplo, não é garantido que estas equações satisfaçam certos princípios físicos como simetria de forças e conservação do momento. A seguir apresentamos como o método SPH foi aplicado na discretiza-ção da equadiscretiza-ção de Navier-Stokes.

A aplicação da Equação (3-4) sobre o termo da pressão (−~∇p) leva a: ~ fipress = −~∇p(~ri) = − X j mj pj ρj ~ ∇W (~ri− ~rj, h). (3-9)

Entretanto, esta força não é simétrica, como pode ser visto quando apenas duas partículas interagem. Neste caso, uma vez que o núcleo de suavização tem gradiente nulo no centro e a partícula i usa apenas a pressão na posição da partícula j para computar a força de pressão, e vice-versa, as forças de pressão

(20)

Capítulo 3. Animação de fluidos com SPH 20

não serão simétricas caso a pressão seja diferente nas posições das partículas. Para simetrização da Equação (3-9) será adotada neste trabalho a solução proposta em Muller et al. (2003). ~ fipress = −X j mj pi+ pj 2ρj ~ ∇W (~ri− ~rj, h). (3-10)

Esta forma é simétrica, já que usa uma média aritmética das pressões das partículas que estão interagindo.

Uma vez que as partículas apenas carregam três grandezas: massa, posição e velocidade; a pressão nas posições das partículas deve ser avaliada primeiro. Isto é feito em duas etapas. A Equação (3-6) calcula a massa específica da partícula na posição r. Então, a pressão pode ser calculada por uma equação de estado do tipo gás ideal, dada por:

p = k(ρ − ρ0), (3-11)

onde k é um parâmetro (dependente da temperatura no gás ideal) e ρ0 a massa

específica inicial.

A aplicação da regra descrita na Equação (3-4) sobre o termo de viscosidade (µ∇2~v) leva a: ~ fvisc i = µ∇2~v(~r) = µ X j mj ~vj ρj 2W (~r i− ~rj, h). (3-12)

Mais uma vez, foram produzidas forças assimétricas. Como a força de vis-cosidade depende apenas das diferenças de velocidade e não da velocidade abso-luta, existe uma maneira natural de simetrizar as forças de viscosidade usando as diferenças de velocidades: ~ fvisc i = µ X j mj ~vj− ~vi ρj 2W (~r i− ~rj, h). (3-13)

A força gravitacional na posição da partícula j é dada por:

~

fjgrav = ρj~gj, (3-14)

a massa específica ρj é dada pela expressão (3-6).

Além da força gravitacional, presente na equação (3-2), a colisão do fluido com a fronteira do domínio e forças inseridas através da interação com o usuário podem ser modeladas. Em (Muller et al., 2003) e (Silva Neto et al., 2005), a colisão é modelada de forma simples: Quando uma partícula colide com a parede de um objeto sólido, a componente da velocidade, normal à superfície rígida, é refletida para o interior do fluido.

As forças de superfície não estão presentes na Equação (3-2), entretanto, foram modeladas em (Muller et al., 2003) explicitamente baseadas nas idéias de

(21)

Capítulo 3. Animação de fluidos com SPH 21

Morris (Morris, 2000). As moléculas de um fluido estão sujeitas às forças atrativas de suas moléculas vizinhas. Dentro do fluido, essas forças intermoleculares são iguais em todas as direções e, portanto, balanceadas. Ao contrário, as forças que atuam sobre as moléculas da superfície livre (fronteira entre o fluido e o meio externo) não são balanceadas. As forças de tensão de superfície livre atuam na direção normal à superfície do fluido. A superfície do fluido pode ser obtida usando-se um campo adicional que assume valor unitário nas posições das partículas e zero em qualquer outra parte. Este campo é denominado “ campo de cor” na literatura e sua versão suavizada é dada pela expressão:

cS(~r) = X j mj 1 ρj W (~r − ~rj, h). (3-15)

A normal ~n e curvatura κ da superfície livre podem ser obtidas por:

~n = ~∇cS, κ =

−∇2c S

|~n| . (3-16)

Finalmente, as forças na superfície livre são modeladas por:

~tsup= σκ ~n

|~n|, (3-17)

onde σ é um parâmetro que controla a influência desta força. O objetivo final é reproduzir o efeito de minimização da curvatura observado para este tipo de força. De fato, se considerarmos uma superfície inicial S, que se movimenta de acordo com uma equação do tipo:

∂S ∂t = σκ

~n

|~n|, (3-18)

observamos, exatamente, uma evolução que suaviza pontos onde a curvatura é mais elevada (Sethian, 1996).

Os núcleos de suavização para o caso 3D são dados pelas seguintes ex-pressões: Wcor(~r, h) = 315 64πh9    (h2 − r2)3, 0 ≤ r ≤ h, 0, cc. (3-19) Wpress(~r, h) = 15 πh6    (h − r)3, 0 ≤ r ≤ h, 0, cc. (3-20) Wvisc(~r, h) = 15 2πh3    −r3 2h3 + r 2 h2 +2rh − 1, 0 ≤ r ≤ h, 0, cc. (3-21)

(22)

Capítulo 3. Animação de fluidos com SPH 22

Esse Laplaciano é dado pela seguinte expressão:

2Wvisc(~r, h) =    45 πh6(h − r), 0 ≤ r ≤ h, 0, cc. (3-22) 3.3 Simulação

As equações de Navier-Stokes dadas pela Expressão (3-2) são discretizadas, substituindo-se cada termo do segundo membro pela sua versão obtida via núcleo de suavização; ou seja, pelas Expressões (3-10), (3-13) e (3-14), com a massa específica ρ dada pela equação (3-6), e usando-se no primeiro membro a derivada material d~v

dt. Desta forma, obtém-se o seguinte esquema numérico:

d~vi dt = ~Q t i, (3-23) onde ~ Qti = µ 1 ρt j ¶· X j mj pt j+ pti 2ρt j ~ ∇Wpress(~rit− ~rtj, h)+ρtj~gj+µ X j mj µ ~vt j − ~vit ρt j2Wvisc(~rit−~rjt, h) ¸ (3-24) e, usando-se as equações (3-6)-(3-11), reproduzidas abaixo:

ρt j = X k mkW (~rtj− ~rkt), (3-25) pt j = k(ρtj − ρ0j). (3-26)

Uma vez resolvida a Equação (3-23), o campo de acelerações µ

d~vi

dt

obtido é finalmente utilizado para atualizar a velocidade e posição das partículas, de acordo com o seguinte esquema:

~vt+∆ti = ~vit+δt 2Q~ t i, (3-27) ~rt+∆t i = ~rit+ δt~vt+∆ti . (3-28)

Este esquema, denominado Leap-Frog, é um método iterativo de segunda ordem. Em (Muller et al., 2003), usou-se um intervalo de tempo constante de δt = 10−2

(23)

4

Abordagem proposta

A abordagem proposta consiste na combinação do modelo de animação interativa de fluidos baseado em SPH apresentado por Muller et al. (2003), com o modelo para simulação de águas rasas, também baseado em SPH, apresentado em Rodriguez-Paz e Bonet (2005) para simulações em engenharia. A idéia é incorporar características do terreno à formulação descrita em (Muller et al., 2003), reproduzida no Capítulo 3, para produzir animações de fluidos sobre terrenos em tempo real. A seguir descrevemos como esses dois modelos baseados em SPH foram combinados.

Na Seção 4.1, é definido o domínio de simulação com base no modelo de águas rasas. Na Seção 4.2, descrevemos como os dois modelos foram combinados e na Seção 4.3 são descritas as funções de suavização utilizadas na simulação. 4.1

Domínio do problema

Na hipótese de águas rasas apresentada em (Rodriguez-Paz; Bonet, 2005) o domínio do problema é constituído pela superfície de um terreno e pelo fluido sobre essa superfície. A solução é baseada em uma projeção 2D deste domínio. A superfície do terreno é representada por uma função do tipo H(x, y) que fornece a altura da superfície em cada ponto. O fluido é discretizado através de um sistema de partículas e projetado sobre um plano. Cada partícula no plano projetado representa uma coluna de fluido com altura ht e massa constante m sobre a superfície do

terreno. Essas partículas se movem de acordo com a topografia do terreno, sempre na direção tangente à superfície (Fig. (4.1)).

A componente z da posição da base de cada coluna de água (Fig.4.1) é dada por

z = H(x, y). (4-1)

Derivando no tempo, a componente vertical da velocidade pode ser calculada da seguinte maneira:

(24)

Capítulo 4. Abordagem proposta 24

Figura 4.1: Domínio de simulação de águas rasas.

onde ∇H é o gradiente do terreno na posição ocupada pela coluna e ~v = (vx, vy) é

o vetor velocidade contendo as componentes x e y da velocidade da coluna. Sendo assim, as incógnitas do problema são as coordenadas x e y das partículas a cada instante de tempo e a altura da coluna de água ht.

As alturas das colunas de água relacionam-se com a massa específica proje-tada do fluido ρ, que é a quantidade de massa por unidade de área. Dado que o fluido em movimento será assumido incompressível, essa relação é definida pela equação

ρ = htρw, (4-3)

onde ρw é a massa específica por unidade de volume do fluido.

4.2

Combinação dos modelos

Nesta seção descrevemos como os modelos foram combinados considerando as particularidades no cálculo da massa específica e das forças que influenciam o movimento do fluido.

4.2.1

Avaliação da massa específica

Conforme dito anteriormente, o fluido acompanha a superfície do terreno e sua massa específica projetada 2D se expande ou contrai de acordo com a altura da coluna segundo a equação (4-3). Para manter a precisão da solução, em (Rodriguez-Paz; Bonet, 2005) foi utilizado raio de interpolação (h) variável. Isto leva à necessidade de utilização de um método iterativo para resolver uma não linearidade que surge da solução com h variável, o que aumenta o custo da simulação. A utilização de um h variável também aumenta a complexidade na determinação de quais partículas estão dentro do raio de interpolação. Como no nosso caso estamos interessados em animação e podemos abrir mão de precisão, desde que isso não comprometa o realismo visual, utilizaremos, na abordagem

(25)

Capítulo 4. Abordagem proposta 25

proposta, a avaliação da massa específica com h fixo, conforme na equação 3-6 apresentada por (Muller et al., 2003).

4.2.2

Equações governantes

A partir do domínio descrito na Seção 4.1, são derivadas as equações go-vernantes no modelo para simulação de águas rasas proposto em (Rodriguez-Paz; Bonet, 2005). Com tais equações, obtém-se uma expressão para aceleração de uma partícula de fluido que considera as propriedades do terreno. Tal expressão é dada por: ~ai = − ~g + ~vi · ki~vi− ~ti · ~∇Hi 1 + ~∇Hi· ∇Hi ~ ∇ ~Hi− ~ti (4-4)

onde ~ti = ~Ti/mi(Força interna sobre massa), ki é a curvatura do terreno na posição

da partícula i e ~∇Hio gradiente.

Para definição do modelo proposto nesta dissertação, anulamos o termo ti,

correspondente à força interna na Equação (4-4), obtendo-se a seguinte expressão:

~ Fext= − ~g + ~vi· ki~vi 1 + ~∇Hi· ~∇Hi ~ ∇Hi (4-5)

Isso é feito porque nesta dissertação as forças internas serão calculadas se-gundo (Muller et al., 2003). A Equação (4-5) é utilizada para substituir a força externa no modelo de Muller et al. que considera apenas a gravidade. Assim, temos uma expressão para aceleração que combina força externa decorrente da gravidade e propriedades do terreno, com forças internas de um modelo de simulação simplifi-cado e menos custoso, que apresenta bons resultados para animação. Essa expressão é dada a seguir: ρ µ d~v dt= −~∇p + ρ ~Fext+ µ∇2~v, (4-6)

onde p é a pressão e µ a viscosidade do fluido.

Procedemos a discretização seguindo o esquema da Seção 3.3. No entanto, no modelo de águas rasas a pressão é dada pela pressão hidrostática considerando a altura da coluna de água que cada partícula representa sobre o terreno. Deste modo, substituímos a Equação (3-11) para o cálculo da pressão, pela expressão a seguir:

p = 1

2~gρwh

2

t (4-7)

onde g é a aceleração da gravidade, ρw a massa específica por unidade de volume e

(26)

Capítulo 4. Abordagem proposta 26

4.3

Funções de suavização

As funções de suavização estão diretamente ligadas à performance e estabili-dade do método SPH e devem satisfazer certas proprieestabili-dades para serem aplicadas em problemas hidrodinâmicos (Liu; Liu, 2003).

1. Uma das propriedades das funções de suavização é que elas devem ser normalizadas dentro do domínio de suporte; ou seja:

Z

W (~x − ~x0, h)d~x0 = 1, (4-8)

A integral deve ser unitária dentro do domínio de suporte para garantir que a interpolação seja correta. Como a simulação ocorre em uma projeção 2D do domínio, as funções de suavização utilizadas precisam ser normalizadas neste espaço. Neste trabalho, obtivemos versões 2D (Equações (4-11), (4-12) e (4-13)) das funções de suavização propostas por Muller et al. (2003). 2. As funções de suavização devem possuir um domínio de suporte compacto;

ou seja:

W (~x − ~x0) = 0, para|~x − ~x0| > κh, (4-9)

onde κ é uma constante e h o raio de interpolação. Estes fatores definem o domínio de suporte da função de suavização.

3. O valor da função de suavização W (~x − ~x0) deve ser maior ou igual a 0 para

qualquer ponto ~x0 dentro do domínio de suporte de ~x.

4. O valor da função de suavização W (~x − ~x0) deve decrescer com o aumento

da distância entre ~x e ~x0.

5. A função de suavização deve satisfazer a condição de uma função do tipo delta de Dirac a medida que o raio de interpolação h se aproximar de 0, ou seja:

lim

h→0W (~x − ~x

0, h) = δ(~x − ~x0) (4-10)

6. A função de suavização deve ser uma função par (condição de simetria). Partículas à mesma distância do ponto ~x devem contribuir da mesma forma independente da posição.

7. A função de suavização deve ser suficientemente suave. Para garantir uma boa aproximação a função de suavização e suas derivadas devem ser contínuas.

(27)

Capítulo 4. Abordagem proposta 27

As Equações (4-11), (4-12) e (4-13) representam as funções de suavização 2D para massa específica, força de pressão e força de viscosidade respectivamente.

Wcor(r, h) = 4 πh8    (h2− r2)3, 0 ≤ r ≤ h, 0, cc. (4-11) Wpress(r, h) = 10 πh5    (h − r)3, 0 ≤ r ≤ h, 0, cc. (4-12) Wvisc(r, h) = 5 3πh2    r3 2h3 + r 2 h2 +2rh − 1, 0 ≤ r ≤ h, 0, cc. (4-13) 4.4 Implementação

Na implementação do SPH (Muller et al., 2003; Silva Neto et al., 2005), é necessária uma identificação das partículas dentro de uma vizinhança definida pelo suporte h da função de suavização. Uma abordagem muito comum para tratar este problema é a subdivisão do espaço em um grid regular cujo tamanho das células é definido por h. Cada célula possui uma lista com as partículas localizadas naquela região do espaço. Dessa forma, dada uma partícula i, a busca pelas partículas na vizinhança definida por h é feita apenas na célula onde a partícula i se encontra e em suas células vizinhas. Essa estratégia, reduz o custo computacional de O(n2),

para O(nm), onde n é o número total de partículas e m é o número médio de partículas nas células vizinhas. Outra vantagem na utilização dessa estrutura é que ela pode ser empregada na redução do número de verificações de colisão de uma partícula com a geometria que delimita as fronteiras do fluido e com outros objetos na cena. Isto é feito através da identificação das células que são cortadas por algum tipo de fronteira.

Em posse das vizinhas da partícula i, calcula-se sua massa específica ρ, altura da coluna de água ht e pressão p através das equações (3-6), (4-3) e (4-7). Em

seguida, calcula-se as forças decorrentes da pressão e viscosidade, conforme as equações (3-10) e (3-13). Essas forças constituem as forças internas utilizadas na nossa abordagem. Em seguida, é feita a integração no tempo. Cada partícula manterá informações sobre seu estado atual (instante t) e seu próximo estado (instante t + δt) até que todas as partículas do domínio tenham sido integradas no tempo. Após terminada esta etapa, inicia-se uma nova iteração sobre o sistema

(28)

Capítulo 4. Abordagem proposta 28

de partículas. Nessa iteração, o estado da partícula, calculado na iteração anterior é avaliado. Com base nesse estado, as partículas são reorganizadas pelas células da subdivisão em função de suas posições.

Se a nova célula onde a partícula deve ser inserida for uma célula de fronteira, um módulo de detecção e tratamento de colisão é executado. O esquema na Figura 4.2, a seguir, exemplifica o algoritmo.

Figura 4.2: Visão geral do processo.

4.4.1

Visualização

Uma estratégia simples foi adotada para visualização neste trabalho. Uma malha virtual fixa é estabelecida no domínio do problema. À medida que as partículas de fluido evoluem sobre o terreno, calculamos a altura que os vértices da malha devem assumir para representar a superfície do fluido. Com SPH, valores definidos apenas nas posições das partículas podem ser avaliados em qualquer posição do espaço via interpolação. Sendo assim, para estabelecer a altura dos vértices da malha, procedemos aplicando SPH na posição de cada vértice. Uma busca por partículas vizinhas ao vértice é efetuada e a Equação (3-6) (Seção 3.2) é aplicada para calcular a massa específica naquele ponto. Com a relação entre massa específica e altura da coluna de fluido, estabelecida pela Equação 4-3 (Seção 4.1), obtém-se a altura do fluido na posição do vértice.

(29)

5

Resultados e discussão

O resultado da abordagem proposta é um sistema de partículas que se move no plano de projeção sob a influência de forças decorrentes da gravidade, topologia do terreno, pressão e viscosidade. Os resultados são visualizados sobre a superfície do terreno com a altura da coluna d’água variando em função da massa específica (ρ) no plano de projeção. Foram realizados alguns experimentos para avaliação do comportamento do fluido sob influência do terreno. As figuras (5.7), (5.8) e (5.9) ilustram alguns desses experimentos. Para validação do modelo, foram reproduzidos dois experimentos de (Rodriguez-Paz; Bonet, 2005)(Seções5.1 e 5.2). Os resultados são discutidos a seguir.

5.1

Rompimento de barragem em canal retangular

Neste experimento, confinamos o fluido em um canal retangular. A geometria inicial do fluido é 2m × 1m × 0.5m. A profundidade do canal é constante e não há atrito. Foram utilizadas 3K partículas nesta simulação.

Figura 5.1: Dimensões do problema (Visão Superior).

No instante t = 0.0s, a barragem é removida e o fluido evolui. O gráfico na Figura (5.2) exibe a variação da altura do fluido na posição x = 2. De acordo com a solução analítica, a profundidade da água deve permanecer constante e igual a 4/9 da altura htinicial, até o momento em que a onda que atravessa o fluido no sentido

contrário ao fluxo atinge a fronteira no ponto x=0.

Os resultados obtidos em (Rodriguez-Paz; Bonet, 2005) são mais próximos da solução analítica, como pode ser observado na Figura (5.3). Essa diferença pode ser atribuída à utilização de raio de interpolação fixo. Considerando que a análise foi

(30)

Capítulo 5. Resultados e discussão 30

Figura 5.2: Variação da altura htem x = 2m para o caso de rompimento de barragem.

Dimensões do fluido: 2 × 1 × 0.5 m, Raio do Kernel: 0.1

feita em uma região de fronteira e sobre um atributo dependente da massa específica, esse resultado pode ser considerado satisfatório. A diferença ao longo do tempo no intervalo analisado, foi de 4% em média. É válido lembrar que em (Rodriguez-Paz; Bonet, 2005) o foco são as aplicações de engenharia, portanto a precisão é um fator determinante. Já o nosso método é uma adaptação com propósitos de animação em jogos. As Figuras (5.4) e (5.5) ilustram os resultados obtidos com a abordagem proposta aqui.

Figura 5.3: Comparação entre o resultado de (Rodriguez-Paz; Bonet, 2005) e a solução analítica para altura do fluido em x = 2m. (Figura extraída de (Rodriguez-Paz; Bonet, 2005))

(31)

Capítulo 5. Resultados e discussão 31

Figura 5.4: Quebra de barragem vertical. Dimensões do fluido: 2 x 1 x 0.5 m. A coloração varia de acordo com a altura do fluido durante sua evolução.

5.2

Barragem cilíndrica

Neste exemplo, avaliamos visualmente o experimento de quebra de barragem cilíndrica. Uma coluna cilíndrica de água, com 5 metros de diâmetro e 0.5 metro de altura, é disposta sobre um terreno plano. Casos como este, onde as fronteiras do fluido se expandem por grandes dimensões, são de difícil simulação com raio de interpolação fixo. Isto porque as partículas, principalmente na região de fronteira, passam a ter menor quantidade de vizinhas provocando problemas de precisão na interpolação via SPH. Apesar deste inconveniente, o resultado visual com a estratégia proposta foi satisfatório. A fronteira do fluido evolui mantendo sua forma circular inicial conforme mostra a Figura (5.6).

5.3

Influência do terreno

Para avaliação da influência do terreno no movimento do fluido, simulamos sua evolução sobre superfícies com gradiente e curvatura controladas. O resultado foi coerente nas situações testadas. As Figuras (5.7), (5.8) e (5.9) ilustram alguns resultados.

(32)

Capítulo 5. Resultados e discussão 32

Figura 5.5: Quebra de barragem vertical. 3 instantes de uma simulação com 1500 partículas a 15Fps.

Figura 5.6: Vista superior de um rompimento de barragem cilíndrica com 600 partículas.

5.3.1

Superfície ondulada

Neste experimento, utilizamos uma superfície ondulada para simular o escoa-mento do fluido. Dispomos uma lâmina d’água de dimensões 3.5 x 3.5 x 0.1m sobre um dos vales da superfície ondulada. Foram utilizadas 2000 partículas nesta simu-lação. As partículas se mantém confinadas e ocupam todo o vale conforme ilustra a Figura (5.7).

5.3.2

Superfície plana

Neste caso, dispomos uma lâmina d’água de dimensões 2 x 2 x 0.1 sobre uma superfície plana. O fluido se espalha e seu volume ocupa toda a superfície. Confinado pelos limites da superfície, o fluido varia a altura que oscila formando um efeito visual interessante (Figura (5.8)). Foram utilizadas 1000 partículas para esta simulação e alcançou-se uma taxa de 30 Fps.

(33)

Capítulo 5. Resultados e discussão 33

Figura 5.7: Fluido confinado em uma calha (2000 partículas - 13Fps). A cor das partículas de fluido varia em função da altura da coluna de água.

Na Figura 5.9, é ilustrado o resultado do algoritmo de visualização descrito na Seção 4.4.1. A simulação foi efetuada com 2000 partículas. Uma malha virtual fixa é disposta por todo o domínio de simulação. A altura dos vértices dessa malha é obtida via SPH para representação da superfície do fluido à medida que as partículas evoluem.

(34)

Capítulo 5. Resultados e discussão 34

Figura 5.8: Avaliação do comportamento do fluido em terreno plano. (1000 partícu-las - 30Fps)

(35)

6

Conclusões e trabalhos futuros

O objetivo deste trabalho foi desenvolver um sistema capaz de produzir animações interativas de águas rasas para jogos utilizando o método SPH. Para isso, desenvolvemos uma abordagem combinando os modelos de simulação propostos em (Muller et al., 2003) e (Rodriguez-Paz; Bonet, 2005). Mais especificamente, extraímos de (Rodriguez-Paz; Bonet, 2005) os termos necessários para considerar o terreno na simulação e utilizamos os termos de força interna da formulação de (Muller et al., 2003). Dessa forma, foi produzida uma abordagem simples e eficiente para a simulação de águas rasas em jogos sob a influência de terrenos acidentados.

Os experimentos realizados mostram que a metodologia proposta é capaz de simular o escoamento do fluido sobre o terreno com realismo visual satisfatório. Apesar da imprecisão do modelo quando comparado com modelos que utilizam h variável, o comportamento do fluido no experimento ” Rompimento de barragem em canal retangular” foi próximo ao comportamento apresentado em (Rodriguez-Paz; Bonet, 2005). As diferenças apresentadas podem ser atribuídas à ausência de um tratamento de fronteira adequado, tanto nas laterais quanto na parte posterior do canal. Além disso, na análise da altura do fluido na posição onde se dá o rompimento da barragem, o método apresenta um erro de apenas 4% quando comparado à solução analítica.

A principal vantagem da abordagem proposta é que, por basear-se em um modelo de águas rasas, obtém-se uma representação 3D do fluido através de uma simulação 2D. Isso contribui para a diminuição do custo da simulação, diminuindo os requisitos computacionais necessários à produção de uma aplicação interativa.

Essa abordagem também pode ser aplicada na eliminação de testes de colisão do fluido contra objetos em cena. Por exemplo, se há uma poça d’água no chão e alguém pisa nessa água, o movimento da água sob a influência dessa pisada pode ser representado alterando-se as propriedades do terreno nessa região. Um ponto negativo é que essa abordagem não gera respingos. No entanto, ela pode ser estendida com a inserção de um sistema de partículas adicional sobre a superfície livre do fluido para representar esse tipo de efeito (Maes et al., 2006).

(36)

estru-Capítulo 6. Conclusões e trabalhos futuros 36

turas para subdivisão espacial do domínio que promovam aumento de performance. Com o uso de h fixo, como proposto, é fácil mapear a simulação para a GPU, e assim ter um sistema muito eficiente, e que permita a utilização de maior quanti-dade de partículas na representação do fluido. Além da exploração de recursos de GPU para simulação e de novas estruturas espaciais, podemos citar a implemen-tação de técnicas de visualização de águas rasas (Premoze; Ashikhmin, 2000), a implementação da interação entre ar e água para simulação dos efeitos do vento sobre a superfície do fluido e a utilização de sistemas de partículas adicionais para gerar respingos. Por último, citamos a investigação de técnicas que minimizem o problema de precisão decorrente da utilização do h fixo em alguns casos (Figura (5.6)), sem comprometer o desempenho da simulação.

(37)

Referências Bibliográficas

AMADA, T.; IMURA, M.; YASUMURO, Y.; MANABE, Y.; CHIHARA, K. Particle-based fluid simulation on gpu. In: Proceedings of the ACM Workshop on General-Purpose Computing on Graphics Processors. New York, NY, USA: ACM Press, 2004. p. 123–131. ISBN 3-905673-15-0.

BATCHER, K. E. Sorting networks and their applications. In: AFIPS Spring Joint Computing Conference. [S.l.: s.n.], 1968. p. 307–314.

CARLSON, M.; MUCHA, P. J.; TURK, G. Rigid fluid: Animating the interplay between rigid bodies and fluids. In: Proceedings of the ACM SIGGRAPH. [S.l.: s.n.], 2004. p. 377–384.

CELES, W.; CALOMENI, A. Simulating and rendering particle systems. In: LANDER, J. (Ed.). Graphics programming methods. Rockland, MA, USA: Charles River Media, Inc., 2003. cap. 1, p. 5–16.

DESBRUN, M.; GASCUEL, M.-P. Smoothed particles: A new paradigm for animating highly deformable bodies. In: Proceedings of EG Workshop on Animation and Simulation. [S.l.: s.n.], 1996. p. 61–76.

FOSTER, N.; METAXAS, D. Modeling the motion of a hot, turbulent gas. In: Proceedings of the ACM SIGGRAPH. [S.l.: s.n.], 1997. p. 181–188.

GINGOLD, R.; MONAGHAN, J. Smoothed particle hydrodynamics: theory and application to non-spherical stars. Monthly Notices of the Royal Astronomical Society, v. 181, p. 375–389, 1977.

GIRALDI, G. A.; APOLINARIO-JR., A. L.; OLIVEIRA, A.; FEIJOO, R. A. Animação de fluidos via técnicas de visualização científica e mecânica computacional. http://virtual01.lncc.br/ giraldi/TechReport/sph-anim2005.pdf, 2005.

HAGEN, T. R.; HJELMERVIK, J. M.; LIE, K. A.; NATVIG, J. R. Visual simulation of shallow-water waves. Simulation Modelling Practice and Theory, v. 13, n. 8, p. 716 – 726, 2005.

(38)

Referências Bibliográficas 38

HARADA, T.; KOSHIZUKA, S.; KAWAGUSHI, Y. Smoothed particle hydrodynamics on gpus. In: Proceedings of the Computer Graphics International Conference. [S.l.: s.n.], 2007. p. 63–70.

HARRIS, M. J. Fast fluid dynamics simulation on the gpu. In: FERNANDO, R. (Ed.). GPU Gems. [S.l.]: Addison-Wesley, 2004. v. 1, cap. 38, p. 637–665. HOLMBERG, N.; WUNSCHE, B. C. Efficient modeling and rendering of turbulent water over natural terrain. In: GRAPHITE ’04: Proceedings of the 2nd international conference on Computer graphics and interactive techniques in Australasia and South East Asia. New York, NY, USA: ACM Press, 2004. p. 15–22. ISBN 1-58113-883-0.

KARSTEN, N.; TRIER, P. Implementing Rapid, Stable Fluid Dynamics on the GPU. [S.l.], 2004. Http://projects.n-o-e.dk/GPU_water_simulation/gpu-water.pdf (visitado em 28/11/2007).

KASS, M.; MILLER, G. Rapid, stable fluid dynamics for computer graphics. In: Proceedings of the ACM SIGGRAPH. [S.l.: s.n.], 1990. v. 24, p. 49–57.

KIPFER, P.; SEGAL, M.; WESTERMANN, R. Uberflow: a gpu-based particle engine. In: HWWS ’04: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware. New York, NY, USA: ACM Press, 2004. p. 115–122. ISBN 3-905673-15-0.

KIPFER, P.; WESTERMANN, R. Realistic and interactive simulation of rivers. In: GI ’06: Proceedings of the 2006 conference on Graphics interface. Toronto, Ont., Canada, Canada: Canadian Information Processing Society, 2006. p. 41–48. ISBN 1-56881-308-2.

KOLB, A.; CUNTZ, N. Dynamic particle coupling for gpu-based fluid simulation. Proceedings of 18th Symposium on Simulation Technique, p. 722–727, 2005. KOLB, A.; LATTA, L.; REZK-SALAMA, C. Hardware-based simulation and collision detection for large particle systems. In: HWWS ’04: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware. New York, NY, USA: ACM Press, 2004. p. 123–131. ISBN 3-905673-15-0. KOSHIZUKA, S.; OKA, Y. Moving particle semi-implicit method for

fragmentation of incompressible fluid. Nuclear Science Engineering, v. 123, p. 421–434, 1996.

LATTA, L. Building a Million Particle System. 2004. Disponível em:

(39)

Referências Bibliográficas 39

LIU, G. R.; LIU, M. B. Smoothed Particle Hydrodynamics, a meshfree particle method. [S.l.]: World Scientific Publishing, 2003.

LORENSEN, W. E.; CLINE, H. E. Marching cubes: A high resolution 3d surface construction algorithm. Computer Graphics, v. 21, n. 4, p. 163–169, 1987. LOSASSO, F.; GIBOU, F.; FEDKIW, R. Simulating water and smoke with an octree data structure. ACM Transactions on Graphics, v. 23, n. 3, p. 457–462, 2004.

LUCY, L. B. A numerical approach to testing the fission hypothesis. The Astronomical Journal, v. 82, n. 12, p. 1013–1024, 1977.

MAES, M. M.; FUJIMOTO, T.; CHIBA, N. Efficient animation of water flow on irregular terrains. In: GRAPHITE ’06: Proceedings of the 4th international conference on Computer graphics and interactive techniques in Australasia and Southeast Asia. New York, NY, USA: ACM Press, 2006. p. 107–115. ISBN 1-59593-564-9.

MORRIS, J. P. Simulating surface tension with smoothed particle hydrodynamics. International Journal for Numerical Methods in Fluids, v. 33, n. 3, p. 333–353, 2000.

MULLER, M.; CHARYPAR, D.; GROSS, M. Particle-based fluid simulation for interactive applications. In: SCA ’03: Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation. Aire-la-Ville, Switzerland, Switzerland: Eurographics Association, 2003. p. 154–159. ISBN 1-58113-659-5.

MULLER, M.; SOLENTHALER, B.; KEISER, R.; GROSS, M. In: Proceedings of the Eurographics ACM Symphosium on Computer Animation. [S.l.: s.n.]. p. 237 – 244.

NAKAMURA, F. I. Animação Interativa de Fluidos baseada em Partículas pelo método SPH. Dissertação (Mestrado) — Pontifícia Universidade Católica do Rio de Janeiro, Março 2007.

PREMOZE, S.; ASHIKHMIN, M. Rendering natural waters. In: Proceedings of Pacific Graphics. [S.l.: s.n.], 2000. p. 23–30.

PREMOZE, S.; TASDIZEN, T.; BIGLER, J.; LEFOHN, A.; WHITAKER, R. T. Particle-based simulation of fluids. In: Proceedings of ACM Eurographics. [S.l.: s.n.], 2003. v. 22, p. 401–410.

(40)

Referências Bibliográficas 40

PURCELL, T. J.; DONNER, C.; CAMMARANO, M.; JENSEN, H. W.; HANRAHAN, P. Photon mapping on programmable graphics hardware. In: HWWS ’03: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware. Aire-la-Ville, Switzerland, Switzerland: Eurographics Association, 2003. p. 41–50. ISBN 1-58113-739-7.

REEVES, W. T. Particle systems - a technique for modelling a class of fuzzy objects. ACM Transactions on Graphics, v. 2, n. 2, p. 91–108, 1983.

RODRIGUEZ-PAZ, M.; BONET, J. A corrected smooth particle hydrodynamics formulation of the shallow-water equations. Computer and Structures, v. 83, n. 17-18, p. 1396–1410, 2005.

SETHIAN, J. A. Level Set Methods:Evolving Interfaces in Geometry, Fluid Mechanics, Computer Vision and Materials Sciences. [S.l.]: Cambridge University Press, 1996.

SHREINER, D. The Official Reference Document to OpenGL. 4. ed. http://www.opengl.org/, 2004.

SILVA NETO, A. A.; GIRALDI, G. A.; RODRIGUES, P. S.; APOLINáRIO-JR, A. L.; XAVIER, A. Animação computacional de fluidos via smoothed particle hydrodynamics. In: SIBGRAPI ’05: Digital Proceedings of the Brazilian Symposium on Computer Graphics and Image Processing. [S.l.: s.n.], 2005. STAM, J. Stable fluids. In: ROCKWOOD, A. (Ed.). Siggraph 1999, Computer Graphics Proceedings. Los Angeles: Addison Wesley Longman, 1999. p. 121–128. Disponível em: <citeseer.ist.psu.edu/stam99stable.html>.

VENETILLO, J. S.; CELES, W. Gpu-based particle simulation with inter-collisions. The Visual Computer: International Journal of Computer Graphics, Springer-Verlag New York, Inc., Secaucus, NJ, USA, v. 23, n. 9, p. 851–860, 2007.

WITTING, P. Computational fluid dynamics in a traditional animation environment. In: Proceedings of the ACM SIGGRAPH. [S.l.: s.n.], 1999. p. 129–136.

ZWICKER, M.; PFISTER, H.; BAAR, J. V.; GROSS, M. Surface splatting. In: Proceedings of the ACM SIGGRAPH. [S.l.: s.n.], 2001. p. 371–378.

Referências

Documentos relacionados

Como objetivos específicos pretendeu-se iden- tificar os taxa existentes nesta gruta, determinar a riqueza de es- pécies de sua comunidade; verificar a influência de fatores

Findados os ensaios e, após tratar os dados estatisticamente, o autor chegou às seguintes conclusões: a tinta intumescente proporcionou uma diminuição da temperatura

O romance Usina, diferentemente dos demais do conjunto da obra pertencente ao ciclo-da-cana-de-açúcar, talvez em função do contexto histórico em que se insere, não

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

When the 10 th percentile of the Alexander stan- dard growth curve for twins was used, a birth weight below the 10 th percentile was observed in 4.9% of newborn of

Outro aspecto a ser observado é que, apesar da maioria das enfermeiras referirem ter aprendido e executado as fases do processo na graduação, as dificuldades na prática

ZEM NARCOSE SE PENETRAREM NAS CÉLULAS LI- PÍDICAS EM UMA CONCENTRAÇÃO MOLAR DEFINI DA, QUE É CARACTERÍSTICA PARA CADA TIPO DE CÉLULA E É APROXIMADAMENTE A MESMA PARA TODOS

Allcem é um sistema de cimentação adesiva permanente de cura dual, radiopaco e indicado para unir restaurações indiretas à estrutura dental.. O produto é composto de pasta base e