Animação de fluidos em imagens digitais por Marcos Aurélio Batista - Versão HTML

ATENÇÃO: Esta é apenas uma visualização em HTML e alguns elementos como links e números de página podem estar incorretos.
Faça o download do livro em PDF, ePub para obter uma versão completa.

Animação de fluidos em imagens digitais

Marcos Aurélio Batista

SERVIÇO DE PÓS-GRADUAÇÃO DO ICMC-USP

Data de Depósito:

Assinatura:

Animação de fluidos em imagens digitais

Marcos Aurélio Batista

Orientador: Prof. Dr. Luis Gustavo Nonato

Tese apresentada ao Instituto de Ciências Matemáticas e de

Computação - ICMC-USP, como parte dos requisitos para

obtenção do título de Doutor em Ciências - Ciências de

Computação e Matemática Computacional. VERSÃO

REVISADA

USP – São Carlos

Outubro de 2011

Ficha catalográfica elaborada pela Biblioteca Prof. Achille Bassi

e Seção Técnica de Informática, ICMC/USP,

com os dados fornecidos pelo(a) autor(a)

Batista, Marcos Aurélio

B328a

Animação de fluidos em imagens digitais / Marcos

Aurélio Batista; orientador Luis Gustavo Nonato --

São Carlos, 2011.

111 p.

Tese (Doutorado - Programa de Pós-Graduação em

Ciências de Computação e Matemática Computacional) --

Instituto de Ciências Matemáticas e de Computação,

Universidade de São Paulo, 2011.

1. Animação de Fluidos. 2. Águas Rasas. 3. Imagens

Digitais. I. Nonato, Luis Gustavo, orient. II. Título.

Resumo

Esta tese apresenta uma nova metodologia para animação de objetos líquidos

em imagens. Contrariamente às técnicas existentes, este método é baseado

em um modelo físico, o que proporciona efeitos realísticos. A perspectiva da

imagem é obtida com a intervenção do usuário, por um esquema simples de

calibração da câmera, o qual permite a projeção da camada da imagem a ser

animada sobre um plano horizontal no espaço tridimensional. As equações de

águas rasas conduzem a simulação e as informações de altura são projetadas

de volta ao espaço da imagem utilizando traçado de raios. Além disso, efeitos

de refração e iluminação são aplicados durante este estágio, resultando em

animações realísticas e convincentes.

Palavras-chave:

Animação de Fluidos · Águas Rasas · Imagens Digitais

v

Abstract

This work presents a new methodology for animating liquid objects depicted

in a still image. In contrast to existing techniques, the proposed method

relies on a physical model to accomplish the animation, resulting in realistic

effects. Image perspective is handled through a simple user assisted camera

calibration scheme which allows one to project the image layers to be anima-

ted onto the horizontal plane in the three-dimensional space. Shallow-Water

equations drive the simulation and the resulting height field is projected back

to the image space via ray-tracing. Refraction and lighting effects are also ac-

complished during the ray-tracing stage, resulting in realistic and convincing

animations.

Keywords:

Fluid Animation · Shallow Water · Still Image

vi

Sumário

Resumo

v

Abstract

vi

1

Introdução

1

2

Trabalhos correlatos

4

2.1

Espaço da imagem . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2

Técnicas baseadas em vídeo . . . . . . . . . . . . . . . . . . .

9

2.3

Auxílio tridimensional

. . . . . . . . . . . . . . . . . . . . . .

11

2.4

Animando fluidos em imagens . . . . . . . . . . . . . . . . . .

13

2.5

Animação baseada em águas rasas . . . . . . . . . . . . . . . .

17

3

Abordagem proposta

21

4

Inferência tridimensional

26

4.1

Linha do horizonte . . . . . . . . . . . . . . . . . . . . . . . .

27

4.2

Distância focal

. . . . . . . . . . . . . . . . . . . . . . . . . .

30

4.3

Calibração da câmera . . . . . . . . . . . . . . . . . . . . . . .

31

4.4

Projeção inversa do corpo d’água . . . . . . . . . . . . . . . .

36

4.5

Determinando o domínio de simulação

. . . . . . . . . . . . .

37

vii

5

Construção do domínio de simulação

39

6

Simulação física

44

6.1

Resolução numérica . . . . . . . . . . . . . . . . . . . . . . . .

45

6.2

Considerações sobre os arquivos de entrada . . . . . . . . . . .

52

7

Projeção reversa e renderização

57

8

Resultados obtidos

61

8.1

Rio em movimento . . . . . . . . . . . . . . . . . . . . . . . .

63

8.2

Animação de fluxo em uma represa . . . . . . . . . . . . . . .

65

8.3

Vulcão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

8.4

Chuvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

8.5

Balanço natural . . . . . . . . . . . . . . . . . . . . . . . . . .

68

8.6

Transporte de textura

. . . . . . . . . . . . . . . . . . . . . .

70

8.7

Efeito Coriolis . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

8.8

Inserção de objetos . . . . . . . . . . . . . . . . . . . . . . . .

75

8.9

Comparações . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

9

Conclusão

83

Trabalhos Futuros

. . . . . . . . . . . . . . . . . . . . . . . . . . .

83

A Águas rasas

85

A.1 Características físicas das águas rasas . . . . . . . . . . . . . .

85

A.2 Equações de Navier-Stokes . . . . . . . . . . . . . . . . . . . .

86

A.3 Equacionamento do movimento das águas rasas . . . . . . . .

89

A.4 As equações de águas rasas . . . . . . . . . . . . . . . . . . . .

96

Referências bibliográficas

97

viii

Capítulo 1

Introdução

A manipulação de fotografias e pinturas tem sido objeto de grande inte-

resse em computação gráfica [Freeman, Adelson & Heeger 1991, Litwinowicz

& Williams 1994], estimulando uma grande quantidade de métodos para

edição [Barrett & Cheney 2002, Igarashi, Moscovich & Hughes 2005], ani-

mação [Hornung, Dekkers & Kobbelt 2007, Xu, Wan, Liu, Wong, Wang

& Leung 2008] e criação de efeitos atraentes [Chu, Hsu, Mitra, Cohen-Or,

Wong & Lee 2010, Shesh, Criminisi, Rother & Smyth 2009] a partir de ima-

gens. Entretanto, a animação realística de fenômenos naturais em imagens

permanece um desafio. As poucas técnicas existentes são muito complexas,

exigindo uma intensa e especializada intervenção do usuário [Okabe, Anjyo,

Igarashi & Seidel 2009], ou simula apenas fenômenos suaves, como o efeito

de um vento brando em um lago [Chuang, Goldman, Zheng, Curless, Sa-

lesin & Szeliski 2005]. Além disso, a maioria destas técnicas apoia-se em

síntese de texturas para simular fenômenos naturais, produzindo animações

nem sempre realísticas.

Uma das principais dificuldades dos métodos de animação de fenômenos

naturais em imagens, que utilizam modelos físicos, é a carência de informa-

1

ções sobre a estrutura tridimensional da cena. Sem as informações tridimen-

sionais dificilmente conseguiríamos simular ondas e o movimento de objetos

em harmonia com a cena retratada na imagem, resultando em efeitos não

convincentes.

Nesta tese, tratamos as dificuldades mencionadas com uma nova técnica

para animação de líquidos em imagens, a qual se baseia em modelos físicos. A

falta de informações tridimensionais é resolvida com um esquema simples de

calibração da câmera, o que permite o posicionamento, no espaço tridimen-

sional, do domínio de simulação. A técnica de traçado de raios é empregada

para projetar o resultado da simulação de volta ao espaço da imagem. Além

de fornecer um bom casamento entre a propagação da onda e a perspectiva

da cena, o mecanismo permite, naturalmente, recursos adicionais de renderi-

zação, como refração e iluminação, os quais são explorados para intensificar

o realismo e introduzir novos elementos à cena.

Nós utilizamos como modelo físico, no processo de animação, as equações

de águas rasas. Além de permitir animações realísticas, o modelo de águas

rasas fornece um conjunto de parâmetros que podem servir para modular efei-

tos específicos no fluido. Ademais, utilizamos camadas da imagem como um

mecanismo para definir os parâmetros envolvidos na simulação, permitindo

mudanças no comportamento do fluido e criando efeitos interessantes.

Contribuições

As principais contribuições deste trabalho podem ser resumidos em:

• Inferência tridimensional: um esquema simples de calibração de

câmera, conduzido pelo usuário, é empregado para inferir o domínio

tridimensional onde ocorrerá a simulação física.

2

• Animação fisicamente baseada: em contraste às técnicas de anima-

ção em imagens, nossa abordagem apoia-se fortemente em um modelo

físico (águas rasas) para gerar os efeitos de movimento, resultando em

animações realísticas.

• Projeção reversa via traçado de raios: o traçado de raios é uti-

lizado para projetar o resultado da simulação de volta ao espaço da

imagem, preservando a perspectiva da cena enquanto efeitos adicionais

são aplicados, tais como refração e iluminação. Até onde sabemos, esta

é a primeira vez que o traçado de raios é utilizado em animação de

imagens em conjunto com simulações físicas.

Para apresentar esta proposta ao leitor fazemos, no segundo capítulo, uma

breve análise dos trabalhos correlatos. Nos capítulos seguintes apresentamos

nossa proposta e em seguida uma amostra dos resultados obtidos. Fechamos

com um capítulo de conclusão, onde apresentamos algumas propostas de

trabalhos futuros.

Esta tese não tem a pretensão de ser um tratado sobre o movimento de

fluidos e nem mesmo do movimento de águas rasas. Os rigores matemáticos

e físicos de um tratado desta natureza podem ser encontrados em [Kinnmark

1984, Weiyan 1992, Galdi 1998a, Galdi 1998b]. Para manter o texto completo,

porém, fornecemos detalhes do modelo de águas rasas, bem como a estratégia

de discretização adotada.

3

Capítulo 2

Trabalhos correlatos

A admiração que o ser humano tem adquirido por pinturas e fotografias

artísticas ao longo de milênios de nossa evolução é fruto da capacidade de

abstrair o significado da cena, muitas vezes, pelo movimento intrínseco da

mesma.

Já não é de hoje que a Computação Gráfica gera movimento a partir

de duas ou mais imagens, seja na interpolação de quadros a partir de cria-

ções artísticas em tempos específicos da cena ou a partir de sequências de

imagens capturadas de uma cena real, seja nas famosas técnicas de meta-

morfose, iniciadas artisticamente por Georges Meliès1 no início do século2.

Técnica esta onde, a partir de duas imagens distintas, uma alomorfia entre

elas é gerada através de quadros que evoluem a partir de uma imagem em

direção a outra, utilizando técnicas de deformações em imagens [Gomes &

Velho 1994]. O artigo [Wolberg 1998] nos dá um panorama das técnicas de

metamorfose entre imagens desenvolvidas no século passado (veja também

www.visgraf.impa.br/morph).

1Ilusionista Francês, 1861-1938.

2Vídeo disponível em <w3.impa.br/˜morph/melies/melies.mov>.

4

CAPÍTULO 2. TRABALHOS CORRELATOS

5

Recentemente, o artigo [Bonilla, Velho, Nachbin & Nonato 2009] apre-

senta uma técnica de deformação de imagens, onde a imagem é considerada

um campo de densidades imerso em um fluido que, ao movimentar-se sob a

ação de forças externas, parâmetro informado pelo usuário, deforma a ima-

gem.

Mas animar uma imagem a partir do significado intrínseco que a mesma

passa aos nossos olhos é um grande desafio. A demanda prática é um tanto

óbvia, visto que gerar movimento a partir de uma imagem dada diminui

consideravelmente o custo de uma animação. Este desafio tem sido objeto

de estudo desde o fim da década de 70, quando uma técnica de variação de

cores na imagem foi proposta [Shoup 1979].

Para melhor contextualizar nosso trabalho, organizamos as técnicas de

animação de objetos em imagens pelo nível de informações tridimensionais

requeridas. Mais especificamente, agrupamos as técnicas em três categorias:

técnicas onde todo o processamento acontece no espaço bidimensional da

imagem, técnicas que utilizam vídeos preexistentes como exemplos, e métodos

apoiados em algum tipo de informação tridimensional.

2.1

Espaço da imagem

Técnicas que realizam o processo de animação no espaço da imagem abran-

gem desde ilusão de movimento baseado em filtragem [Freeman et al. 1991]

até métodos sofisticados de animação, envolvendo ciclos de movimento de

animais [Xu et al. 2008], as quais contam com ferramentas de manipulação

de imagem tais como manipulação de formas [Igarashi et al. 2005, Schae-

fer, McPhail & Warren 2006], edição [Barrett & Cheney 2002], e deformação

de imagens [Litwinowicz & Williams 1994]. Na realidade, as ferramentas

CAPÍTULO 2. TRABALHOS CORRELATOS

6

básicas de manipulação de imagem, juntamente com a utilização do canal

alfa [Sun, Jia, Tang & Shum 2004] e do retoque digital [Drori, Cohen-Or

& Yeshurun 2003] são fundamentais para a maioria dos métodos existentes.

Falemos sobre alguns destes trabalhos que tratam da geração de animação.

Na década de 90 o artigo [Freeman et al. 1991] apresenta a geração de

um vídeo a partir de uma imagem simples aplicando um filtro, com diferença

de fase de 90o, duas vezes na imagem e, a partir destas imagens chamadas

G e H, gera os quadros: Ft = cos(θt)G + sen(θt)H, onde θ = 2π e T é o

T

tempo total de um ciclo do vídeo (360o). Assim a imagem final é igual à

imagem inicial (G), gerando uma sequência circular de movimento, tendo

como imagens intermediárias H, −G e −H (respectivamente, θt = π , π e

2

3π ).

2

Ainda na mesma década, Peter Litwinowicz e Lance Williams [Litwinowicz

& Williams 1994], da Apple Computer, Inc apresentam uma técnica de ani-

mação em imagens onde, a partir de uma sequência de quadros tomado como

modelo e da imagem dada, gera os esboços dos quadros desta imagem e de-

forma cada um dos esboços, preservando a textura interna aos contornos,

gerando os respectivos quadros de animação. A sequência para a geração

desta animação pode ser acompanhada na figura 2.1:

1. a imagem no canto inferior esquerdo de 2.1b é a imagem dada, 2. a sequência de quadros na parte superior de 2.1a é o vídeo tomado como modelo,

3. o esboço no canto superior esquerdo de 2.1b foi extraído da imagem dada,

4. a sequência de esboços na parte inferior de 2.1a foi extraída do modelo,

index-14_1.jpg

index-14_2.jpg

CAPÍTULO 2. TRABALHOS CORRELATOS

7

CMA

c

(a)

CMA

c

(b)

Figura 2.1: Animação da imagem de um gato (canto inferior esquerdo) a partir dos con-

tornos do vídeo de uma pessoa (linha superior). [Litwinowicz & Williams 1994]

5. a sequência de esboços na parte superior de 2.1b foi gerada a partir dos esboços da imagem dada e do modelo,

6. finalmente, a sequência na parte inferior de 2.1b é o vídeo gerado.

Já no início deste século, é apresentada uma técnica que gera movimento

em uma imagem a partir da seleção de um ou mais objetos nesta imagem

e de suas segmentações automáticas. A partir desta segmentação o usuário

pode mudar a forma, o tamanho e a localização do objeto ou de parte deste

objeto [Barrett & Cheney 2002]. Um exemplo de aplicação da técnica pode

ser visto na figura 2.2, onde a imagem à esquerda é a imagem original, o objeto selecionado é o relógio e a imagem à direita é a imagem modificada.

Já uma técnica de manipulação de formas é apresentada na figura 2.3,

onde um objeto dado é coberto por uma malha triangular e manipulado pelo

usuário a partir de pontos arbitrários [Igarashi et al. 2005]. A técnica consiste

em, dada uma imagem com textura regular e um objeto de contorno fechado:

index-15_1.jpg

index-15_2.jpg

index-15_3.jpg

CAPÍTULO 2. TRABALHOS CORRELATOS

8

CMA

c

Figura 2.2: Relógio fluindo. [Barrett & Cheney 2002]

CMA

c

Figura 2.3: Visão geral de uma técnica de manipulação de formas. [Igarashi et al. 2005]

1. o objeto é coberto por uma malha triangular,

2. pontos de manipulação, ou de fixação, são selecionados pelo usuário e

os mesmos são atribuídos a vértices da malha,

3. o usuário, a partir dos pontos selecionados, manipula o objeto como se

manipula uma marionete,

4. a malha se adapta à manipulação deformando os triângulos e preser-

vando os vértices associados aos pontos selecionados,

5. em cada intervalo predeterminado, a textura original dos triângulos é

repintada e um quadro é gerado,

6. os quadros gerados formam a animação.

Outro interessante trabalho de animação a partir de imagens, proposto

em [Xu et al. 2008], consiste em, dada uma imagem como na figura 2.4a,

index-16_1.jpg

index-16_2.jpg

CAPÍTULO 2. TRABALHOS CORRELATOS

9

CMA

c

(a)

(b)

Figura 2.4: Seleção de objetos e inferência de movimento. [Xu et al. 2008]

os objetos são extraídos e ordenados, gerando uma sequência de movimento

inferido como apresentado na figura 2.4b, o fundo da imagem é retocado e a sequência de movimento é gerada, reinserindo os objetos na cena a partir de

sua posição original e, a cada quadro, inserindo os objetos na sequência do

movimento inferido.

Ainda que efetivas para a animação em certas classes de imagens, como

os cartoons e faces humanas, técnicas atuando apenas no espaço da imagem

não são adequadas para a modelagem de fenômenos naturais, como estamos

interessados.

2.2

Técnicas baseadas em vídeo

Vídeo textura e síntese de textura têm sido amplamente utilizados para sinte-

tizar sequências de vídeos. A maioria destas técnicas são capazes de estender

uma sequência de vídeo de maneira bastante convincente, mas elas são extre-

mamente restritivas em relação à intervenção do usuário. Métodos interativos

também foram propostos, tornando possível a geração de animações a partir

de esboços e fluxos definidos pelo usuário. Dividimos os métodos de síntese

de texturas baseados em vídeo, em três categorias:

• Métodos que propiciam ao usuário a expansão de um vídeo já existente:

CAPÍTULO 2. TRABALHOS CORRELATOS

10

– [Wei & Levoy 2000] propõem um algoritmo para síntese de volume

3D dinâmicos.

– [Bar-Joseph, El-Yaniv, Lischinski & Werman 2001] propõem um

algoritmo estocástico para síntese de sequências de vídeo utili-

zando análise de multirresolução.

– [Schödl, Szeliski, Salesin & Essa 2000] propõem um método de

texturização baseado em vídeo para concatenar apropriadamente

subsequências previamente escolhidas.

– [Doretto, Chiuso, Wu & Soatto 2003] propõem um método de

texturização dinâmica utilizando filtros autorregressivos.

• Métodos que propiciam a modificação de um vídeo preexistente, criando

uma nova animação de fluido:

– [Wang & Zhu 2003] analisam uma animação de fluidos e representa-

a com textons para sintetizar um sequência diferente de vídeo.

– [Bhat, Seitz, Hodgins & Khosla 2004] propõem um esboço de in-

terface e um algoritmo para sintetizar uma animação de fluidos a

partir de um vídeo modelo, onde o usuário pode mudar a aparência

do fluido.

– [Kwatra, Essa, Bobick & Kwatra 2005] propõem um método para

modelar a texturização da animação de um fluxo sobre um local

específico designado pelo usuário.

– [Narain, Kwatra, Lee, Kim, Carlson & Lin 2007] transferem as

texturas de um vídeo para uma superfície fluídica 3D ou outra

sequência de vídeo.

CAPÍTULO 2. TRABALHOS CORRELATOS

11

• Métodos que modificam a aparência de um vídeo utilizando uma ima-

gem simples como modelo:

– [Hertzmann, Jacobs, Oliver, Curless & Salesin 2001] utilizando

uma técnica de comparação de imagens.

– [Hashimoto, Johan & Nishita 2003] estende a técnica anterior para

filtragem de vídeo.

Mais relacionado ao problema de geração de animação a partir de ima-

gens, o trabalho [Hashimoto et al. 2003] sintetiza uma sequência de vídeo a

partir de imagens exemplo. O sistema de animação em [Lin, Wang, Wang,

Kang & Fang 2007] também faz uso de múltiplas imagens para gerar a ani-

mação. Já o problema de animação de fluidos em imagens, que retomaremos

na seção 2.4, foi bem abordado em [Okabe et al. 2009], tirando proveito de vídeos exemplos e traços definidas pelo usuário para sintetizar a animação.

Embora flexíveis, capazes de gerar diferentes tipos de animação, os mo-

delos carecem de fundamentos físicos, impedindo que as técnicas baseadas

em vídeo produzam efeitos realísticos em animações de fenômenos naturais

que envolvam fluxos ondulatórios.

2.3

Auxílio tridimensional

O uso de modelos tridimensionais no auxílio de animações bidimensionais,

como é o caso de nosso trabalho, tem sua origem no início da computação

gráfica, principalmente na animação de cartoons. A abordagem usual neste

contexto é a construção de modelos tridimensionais cujas silhuetas sejam

compatíveis com os traços e contornos delineados a mão, podendo ser defor-

CAPÍTULO 2. TRABALHOS CORRELATOS

12

mados e renderizados de acordo com o modelo tridimensional [Corrêa, Jensen,

Thayer & Finkelstein 1998, Ono, Chen & Nishita 2004, Rademacher 1999].

Observamos também manipulações a partir de imagens simples para exi-

bições virtuais, como em [Zhang, Pan, Ren & Wang 2007] ou em reconstru-

ções tridimensionais a partir de imagens, como em [Horry, Anjyo & Arai 1997,

Criminisi, Reid & Zisserman 2000, Oh, Chen, Dorsey & Durand 2001, Sun,

Liang, Wen & Shum 2007, Wu, Sun, Tang & Shum 2008, Shesh & Chen 2008].

Trabalhos mais recentes fazem uso de informações tridimensionais para

animar objetos em imagens. [Hornung et al. 2007], por exemplo, apresenta

um sistema de animação que utiliza um esqueleto bidimensional, especificado

pelo usuário, para determinar, aproximadamente, a posição da câmera e

procurar por um modelo de pose ideal em um banco de dados tridimensional

de movimentos.

Oclusões e partes faltantes são recortadas com técnicas

utilizando Poisson e preenchidas com técnicas de retoque digital.

Mais especificamente relacionado ao nosso trabalho, o sistema de ani-

mação proposto em [Chuang et al. 2005], que detalharemos na seção 2.4, é capaz de animar objetos como árvores e água, modelando as forças da natureza estocasticamente, evitando uma simulação baseada em modelos físicos.

Embora árvores e similares possam ser animadas utilizando apenas informa-

ções bidimensionais, a síntese do movimento da água requer a intervenção

do usuário para definir um plano no espaço tridimensional, para modelar

corretamente os efeitos de perspectiva.

Como não utilizam, ao contrário do nosso, modelos físicos para conduzir

a animação, torna-se difícil a geração de efeitos com comportamentos es-

pecíficos como ondas direcionais. Além disso, estes sistemas não suportam

refração e efeitos de iluminação.

CAPÍTULO 2. TRABALHOS CORRELATOS

13

2.4

Animando fluidos em imagens

A animação de fluidos em imagens estáticas é um grande desafio e poucos

o têm atacado. Apresentamos aqui dois artigos que geram movimentos em

imagens nos quais, apesar de não simularem fisicamente o movimento de

fluidos, a animação gerada é visualmente realística.

No primeiro, com “o objetivo de sintetizar um vídeo estocástico a partir

de uma simples imagem”, os autores propõem, para criar um “movimento

interessante, complexo e plausível”, a seguinte técnica de animação [Chuang

et al. 2005]:

1. Tome uma imagem I que passe a idéia de movimento que possa ser

reproduzido aleatoriamente.

2. Selecione os diversos objetos da imagem:

(a) Selecione os objetos da imagem I que estão totalmente visíveis.

(b) Identifique cada objeto como Oi, incrementando i sequencialmente

a partir da unidade.

(c) Crie uma nova imagem Li contendo o objeto Oi na mesma posição

da imagem I e vazia nas demais posições.

(d) Utilize uma técnica de Retoque Digital e remova os objetos sele-

cionados, reconstruindo o fundo da imagem I.

(e) Repita o processo até selecionar todos os objetos da imagem I.

3. Classifique os objetos Oi em:

(a) Árvore (movimento de oscilação).

(b) Água (movimento ondulatório).

CAPÍTULO 2. TRABALHOS CORRELATOS

14

(c) Barco (movimento de sacudimento).

(d) Nuvem (movimento de translação).

(e) Imóvel (sem movimento).

4. Uma função deslocamento di(p, t) é associada a cada imagem Li de

acordo com a classificação do objeto Oi. Esta função leva cada pixel p

da imagem Li ao deslocamento do objeto Oi no intervalo de tempo t.

5. Uma função Li(p) de reposicionamento de cada pixel do objeto Oi é

definida como sendo o valor do pixel antes do deslocamento, ou seja,

Li(p + di(p, t)) = Li(p), onde Li(p) ≡ Li.

6. A imagem é recomposta para cada instante t através do agrupamento

dos objetos, na ordem inversa de criação, ou seja,

(a) Im(p, t) = Lm(p+dl(p, t)), onde m é a quantidade total de objetos.

(b) Ii(p, t) = Ii+1(p, t) + Li(p + di(p, t)), para 0 ≤ i < m.

7. Sendo I a imagem no instante inicial, fazemos de I0(p, t) a imagem no

instante t, ou seja,

(a) I0 ≡ I.

(b) It ≡ I0(p, t).

8. A animação é obtida a partir da sequência de quadros It.

Esta sequência pode ser observada na figura 2.5.

Este método aborda o problema de animação em imagem que representem

fenômenos naturais e, em relação a movimentos fluídicos, apenas oscila a

superfície da água com ondulações estocásticas.

index-22_1.jpg

index-22_2.jpg

CAPÍTULO 2. TRABALHOS CORRELATOS

15

CMA

c

Figura 2.5:

Sequência de animação de imagem utilizando movimentos estocásticos.

[Chuang et al. 2005]

CAPÍTULO 2. TRABALHOS CORRELATOS

16

Uma outra técnica de animação de imagens utilizando vídeos pré-sele-

cionados é proposta por [Okabe et al. 2009]. A técnica consiste em, dada

uma imagem contendo uma cena de fluido em movimento implícito, ou seja,

uma cena estática que da idéia de movimento, e admitindo seu fluxo em

regime permanente, o usuário escolhe um vídeo, realístico ou não, que será

tomado como modelo na animação (figura 2.6). Este vídeo é subdividido nas seguintes partes:

imagem média: é a média pixel a pixel dos quadros do vídeo tomado como

modelo.

vídeo diferença: é gerado a partir das diferenças entre cada quadro e a

imagem média.

fluxo ótico: é o ‘vídeo’ formado por ‘quadros deslocamento’ obtidos pela

diferença euclidiana entre os vetores posição de um pixel em um quadro

do vídeo diferença e o quadro seguinte.

imagem média do fluxo ótico: é a média vetorial, pixel a pixel, dos qua-

dros do fluxo ótico.

vídeo residual: é o vídeo obtido pelo ‘erro’ entre a indicação de movimento

da imagem média do fluxo ótico em cada quadro do vídeo diferença e

o quadro seguinte.

A geração do vídeo a partir da imagem é efetuada pelo processo inverso

ao descrito acima, admitindo a imagem média como sendo a imagem dada

inicialmente e o fluxo ajustado pelo usuário (figura 2.7). Alguns resultados podem ser observados no sítio de Makoto Okade3.

3<www.mpi-inf.mpg.de/˜mokabe/AnimePicFluid>.

index-24_1.jpg

CAPÍTULO 2. TRABALHOS CORRELATOS

17

eidelS

&

Igarashi

o,

Anjy,e

ab

Ok

c

Figura 2.6: Animação de fluido a partir de um modelo. [Okabe et al. 2009]

Como pudemos observar, nosso objeto de estudo difere substancialmente

dos trabalhos apresentados, mas compartilham alguns aspectos, o que nos

possibilitou um indicativo de contexto de nosso trabalho.

2.5

Animação baseada em águas rasas

A revisão bibliográfica apresentada mostra que nenhuma técnica de animação

de imagens se baseia em um modelo físico para criar animações realísticas de

fluidos. O método proposto nesta tese se baseia em um modelo físico para

conduzir a simulação, resultando em animações realísticas e convincentes.

Além disso, a projeção reversa baseada no traçado de raios, presente em

nosso processo de animação, flexibiliza grandemente a implementação das

técnicas descritas.

Para conduzir o processo físico de nosso modelo, utilizaremos o equaciona-

mento de águas rasas, cujo modelo se baseia em um ambiente bidimensional

que nos dá informações sobre as alterações (ondulações) ocorridas na super-

fície do fluido. Águas rasas são fluidos cujo equacionamento pode ser consi-

derado uma simplificação das equações do movimento de fluidos, utilizando

algumas hipóteses com relação à geometria do problema. Esta simplificação

é apresentada no apêndice A.

index-25_1.jpg

index-25_2.jpg

CAPÍTULO 2. TRABALHOS CORRELATOS

18

eidelS

&

Igarashi

o,

Anjy,e

ab

Ok

c

Figura 2.7: Processo de geração de animação em imagem a partir de um modelo. [Okabe

et al. 2009]

CAPÍTULO 2. TRABALHOS CORRELATOS

19

Em 1990, Michael Kass e Gavin Miller apresentaram as equações de águas

rasas à comunidade de Computação Gráfica em uma simulação de chuva,

obtendo resultados “encorajadoramente realísticos” [Kass & Miller 1990].

Desde então, vários autores apresentaram simulações baseadas em águas

rasas:

• [Layton & van de Panne 2002] apresentam, após um survey dos modelos

de simulação de fluidos baseados nas equações de Navier-Stokes, um

modelo que é baseado nas equações de águas rasas e que, segundo

os autores, simula eficientemente movimentos suaves, superposição de

ondas, objetos sendo levados pela correnteza, obstáculos variados e

fronteiras de várias formas.

• [Hagen, Hjelmervik, Lie, Natvig & Henriksen 2005] simulam áreas com

topografia não trivial sendo alagadas e escoadas. A simulação é efetu-

ada diretamente na GPU, obtendo resultados rápidos.

• [Wang, Miller & Turk 2007] simulam uma variedade de efeitos aquá-

ticos, inclusive acoplamento de corpos rígidos flutuantes, de maneira

rápida e estável.

• [Drasek III, Bookout & Lake 2009] simulam ondas oceânicas em tempo

real possibilitando a iteração do usuário na modificação de parâme-

tros dinamicamente, produzindo uma variedade de formas de ondas em

águas oceânicas rasas.

Modelos híbridos têm sido utilizados para simular o movimento de águas,

como em [Irving, Guendelman, Losasso & Fedkiw 2006], que resolve as equa-

ções de Navier-Stokes em células regulares em volta da superfície da água

e, abaixo desta superfície, utiliza uma malha não uniforme, evitando o mo-

CAPÍTULO 2. TRABALHOS CORRELATOS

20

delo de águas rasas para capturar detalhes que o modelo não simula, como

respingos.

Estas animações são totalmente ambientadas tridimensionalmente, o que

não é nosso interesse pois nosso ambiente original é uma imagem estática.

index-28_1.jpg

Capítulo 3

Abordagem proposta

Nossa técnica assume como entrada uma imagem decomposta em várias par-

tes ou camadas, algumas das quais definem as partes da imagem a serem

animadas (figura 3.1 - esquerda). Como ilustrado na figura 3.1, a sequência proposta para animação é composta de quatro passos principais, quais

sejam: (1) estimativa da posição da câmera, (2) construção do domínio de

simulação, (3) simulação de águas rasas e (4) projeção reversa utilizando o

traçador de raios.

Figura 3.1: Visão geral do método.

21

index-29_1.jpg

CAPÍTULO 3. ABORDAGEM PROPOSTA

22

Figura 3.2: Pontos R e S no infinito obtidos a partir do quadrilátero em azul. A reta em vermelho é a linha do horizonte.

A estimativa da posição da câmera é necessária para o correto posici-

onamento do domínio de simulação no espaço tridimensional, de forma a

considerar os efeitos de perspectiva. A posição da câmera é estimada por um

mecanismo, assistido pelo usuário, baseado em pontos no infinito (cap. 4).

Mais especificamente, o usuário desenha um quadrilátero na imagem original

(quadro em vermelho na figura 3.1, acima à esquerda), através do qual são calculados alguns dos parâmetros da câmera.

O usuário pode utilizar como referência para desenhar o quadrilátero,

estruturas da imagem conhecidamente formadas por retas paralelas. Por

exemplo, a figura 3.2 mostra o quadrilátero alternativo ao apresentado na figura 3.1, em azul, e os pontos no infinito correspondentes, obtidos pela extensão dos segmentos de reta do quadrilátero.

Uma vez que a posição da câmera está bem determinada, utilizamos as

transformações de perspectiva para projetar as camadas a serem animadas

no plano horizontal, no espaço tridimensional (figura 3.1 central acima). O

index-30_1.jpg

index-30_2.jpg

index-30_3.jpg

CAPÍTULO 3. ABORDAGEM PROPOSTA

23

(a)

(b)

(c)

Figura 3.3: (a) imagem original, (b) projeção no plano do objeto e (c) domínio de simulação.

quadrilátero projetado é convertido em um paralelogramo, determinando o

domínio de simulação (figura 3.1 centro inferior e figura 3.3). Detalhes do processo são apresentados no próximo capítulo.

A simulação do fluxo, representada na figura 3.4 baseado nas equações de águas rasas, detalhada no capítulo 6, é executada em uma malha retilí-

nea. O comportamento do fluxo é controlado pelas condições de fronteira e

parâmetros, informações estas contidas nas camadas da imagem, definidas

pelo usuário. Estas camadas são delimitações, na imagem, da localização do

objeto líquido a ser animado, bem como suas fronteiras. Outras partições

possíveis, opcionalmente inseridas pelo usuário, são o relevo do leito do ob-

jeto líquido e o coeficiente de Chezzy, indicando o atrito em cada ponto do

leito, a partir de informações em tons de cinza, na posição equivalente da

imagem.

Finalmente, as informações de altura resultantes da simulação são mape-

adas (distorcidas) na camada correspondente (figura 3.1, no alto à direita) que é projetada de volta ao espaço da imagem via traçador de raios (figura

3.1, abaixo à direita). Efeitos de refração e iluminação são também incor-porados durante o estágio da projeção reversa, para aumentar o realismo,

index-31_1.jpg

CAPÍTULO 3. ABORDAGEM PROPOSTA

24

Figura 3.4: Simulação do fluxo a partir das equações de águas rasas.

index-32_1.jpg

CAPÍTULO 3. ABORDAGEM PROPOSTA

25

Figura 3.5: Quadro resultante da aplicação do modelo proposto.

como discutido no capítulo 7. A figura 3.5 mostra o resultado da aplicação do modelo proposto.

Nos próximos capítulos, discutimos detalhadamente cada um dos passos

apresentados aqui.

Capítulo 4

Inferência tridimensional

Chamamos de inferência tridimensional a caracterização do corpo d’água em

seu plano original com relação ao plano da imagem dada. Esta caracterização

é obtida a partir de algumas informações intrínsecas à imagem dada, quais

sejam:

• linha do horizonte,

• inclinação frontal da câmera e

• inclinação lateral da câmera.

Inicialmente, vamos posicionar a imagem em um ambiente tridimensional,

com relação ao corpo d’água e à câmera. Assumiremos aqui que o corpo

d’água está no plano xy de nosso ambiente tridimensional, a imagem está

localizada no plano α, que faz um ângulo θ com o plano xy e a câmera está a

uma distância df do centro da imagem. A figura 4.1 esquematiza o ambiente relatado. Assumimos ainda que a projeção do plano xy em α, gerada pela

câmera, é cônica.

26

index-34_1.jpg

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

27

Figura 4.1: Posicionamento tridimensional da imagem.

Nas seções seguintes vamos caminhar para a inferência do ambiente rela-

tado e, para isso, algumas definições e resultados tradicionais são adaptados

ao nosso modelo.

4.1

Linha do horizonte

Definição 4.1 (Projeção Cônica) Uma projeção cônica de um dado ob-

jeto κ, a partir de um ponto P , em um plano α entre κ e P , é o mapeamento

dos pontos deste objeto, interceptados pelo segmento de reta iniciado em P e

finalizado em κ, na interseção deste segmento com o plano α.

Teorema 4.1 Retas paralelas no plano xy, quando projetadas conicamente

em um plano α não paralelo a xy, a partir de um ponto fora de xy ∪ α, ou

se encontram em um único ponto de α ou são paralelas a xy ∩ α.

Prova. A prova deste teorema pode ser encontrada em [Hilbert & Cohn-

Vossen 1952].

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

28

A primeira etapa desta fase consiste na identificação manual (na imagem)

de dois pares de retas paralelas (em xy), com o objetivo de determinar a linha

do horizonte (que pode, alternativamente, ser definida pelo usuário), a qual

definiremos a seguir. Para isto o usuário deve desenhar, na imagem, quatro

segmentos de reta rα, rα, sα e sα, os quais são projeções de retas em xy que

1

2

1

2

chamaremos, respectivamente, de r1, r2, s1 e s2. Estas retas devem ser tais

que:

• rα

1 ∦ rα

2

• sα1 ∦ sα2

• r1

r2 ∦ s1

s2

Ou seja, o usuário deve identificar dois pares de retas, como indicado na

figura 4.2-esquerda, que, no corpo d’água (no plano xy), sejam paralelas com seus pares, mas não sejam paralelas quando tomadas de pares diferentes;

além disso, a projeção destes pares em α não deve originar retas paralelas.

Teorema 4.2 O conjunto de todos os pontos em α de intersecção de retas

correspondentemente paralelas em xy formam uma reta.

Prova. A prova deste teorema pode ser encontrada em [Hilbert & Cohn-

Vossen 1952].

Definição 4.2 (Linha do Horizonte) Linha do horizonte é a reta em α,

formada pelos pontos de interseção de retas correspondentemente paralelas

em xy.

index-36_1.jpg

index-36_2.jpg

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

29

(a)

(b)

Figura 4.2: Identificação, à esquerda, de dois pares de segmentos de retas paralelas no plano do objeto e, à direita, determinação da linha do horizonte a partir dos prolongamentos destes segmentos.

Nossa linha do horizonte, então, é a reta que passa pelos pontos de in-

tersecção dos prolongamentos de rα e rα e dos prolongamentos de sα e sα.

1

2

1

2

Ou seja as retas rα, rα, sα e sα são prolongadas e a reta P

1

2

1

2

r Ps, formada pelos

pontos Pr = rα ∩ rα e P

∩ sα, é chamada de linha do horizonte. Veja

1

2

s = sα

1

2

a ilustração na figura 4.2-direita.

Observe que a linha do horizonte não tem correspondente na projeção em

xy e todo o plano xy é projetado “abaixo" da linha do horizonte em α.

Se a linha do horizonte, que chamaremos de , for paralela à linha longitu-

dinal1 da imagem, dizemos que a imagem não está inclinada. Caso contrário, o ângulo θ1 entre a linha do horizonte e o prolongamento da linha longitudinal

da imagem nos dá a inclinação da imagem (figura 4.3).

1Linha que corta a imagem de lado a lado, perpendicular à altura.

index-37_1.jpg

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

30

Figura 4.3: Ângulo de inclinação lateral da câmera.

4.2

Distância focal

Definição 4.3 (Eixo focal) O eixo do cone de projeção, em uma projeção

cônica, é chamado de eixo focal.

Definição 4.4 (Ponto focal) O ponto de intersecção do eixo focal com o

plano de projeção é chamado de ponto focal.

Definição 4.5 (Distância focal) A distância da câmera ao ponto focal é

chamada de distância focal.

Concluímos, então, que distância focal é a distância da câmera ao ponto

do plano da imagem para o qual a câmera está “olhando”.

Assumiremos, neste trabalho, que a câmera “olha” para o centro da ima-

gem, sempre na direção perpendicular ao plano da imagem. Ora, como as-

sumimos que a câmera está a uma distância df do centro da image, df é a

distância focal e a reta que liga o centro da imagem e a câmera é o eixo focal.

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

31

4.3

Calibração da câmera

Dizemos que uma câmera está calibrada quando temos, em um ambiente

tridimensional, bem determinados, o ponto de observação, os eixos ótico e de

inclinação, a distância focal e a tela virtual. Vejamos:

• o ponto de observação é o ponto onde se localiza a câmera virtual,

• o eixo ótico, ou eixo focal, é a reta perpendicular ao plano de projeção

(plano da imagem) e que passa pela câmera,

• o eixo de inclinação é a reta paralela ao plano da imagem, no sentido

longitudinal, e que passa pela câmera,

• a distância focal é a distância da câmera ao plano de projeção e

• a tela virtual é o retângulo no plano de projeção, com centro no eixo

ótico, correspondente à imagem original.

Para facilitar nosso trabalho, consideraremos três referenciais cartesianos

ortonormais tridimensionais:

• o referencial do corpo d’água, dado por (E, {e1, e2, e3}),

• o referencial da câmera, dado por (O, {o, v, l}) e

• o referencial da imagem, dado por (C, {i, j, k}),

onde:

(E, {e1, e2, e3}) é o referencial cartesiano,

O é a posição da câmera,

o é o vetor unitário associado ao eixo ótico, com direção da câmera para o

plano de projeção α,

index-39_1.jpg

index-39_2.jpg

index-39_3.jpg

index-39_4.jpg

index-39_5.jpg

index-39_6.jpg

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

32

Figura 4.4: Referenciais cartesianos ortonormais, da esquerda para a direita, referencial do corpo d’água, referencial da câmera e referencial da imagem.

l é o vetor unitário associado ao eixo de inclinação, também chamado eixo

lateral, com direção da câmera para a direita da imagem à frente da

câmera,

v = l × o,

C é o canto superior esquerdo da imagem, no plano α,

i é o vetor unitário associado à lateral da imagem, com direção de cima para

baixo,

j é o vetor unitário associado à longitude da imagem, com direção da es-

querda para a direita e

k = i × j.

A figura 4.4 dá uma idéia esquemática dos três referenciais.

index-40_1.jpg

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

33

Figura 4.5: Ângulo de inclinação frontal da câmera.

Precisamos agora posicionar os referenciais da câmara e da imagem em

relação ao referencial do objeto. Faremos esta inferência posicionando os

referenciais, da câmara e da imagem, “encaixados" no referencial do objeto

e, através de translações e rotações específicas, obteremos os valores de O,

C, o, v, l, i, j e k.

Antes de prosseguirmos, falta calcularmos duas importantes inclinações,

quais sejam, as inclinações lateral e frontal da câmara. A inclinação lateral

da câmera é a inclinação da imagem, ou seja, é dada pelo ângulo θ1 (figura

4.3) entre

e j, obtido, por definição, de j para

na direção de j. A inclinação

frontal da câmera é obtida admitindo-se que a câmara está de frente para o

plano da imagem, ou seja o

k com a inclinação lateral dada anteriormente,

ou seja, v

. O ângulo θ2 (figura 4.5) entre o eixo ótico e a reta passando por O e perpendicular a

é a inclinação frontal da câmara. Observemos que,

dado que conhecemos

e df então conhecemos também θ1 e θ2.

Passemos então à calibração da câmara, inicialmente posicionando o re-

ferencial da câmara coincidente com o referencial do objeto e, em seguida,

index-41_1.jpg

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

34

Figura 4.6: Sequência de rotações para calibração da câmera.

conforme o resumo esquemático na figura 4.6, rotacionando a câmara −90o em torno do eixo e1, ou seja, uma rotação de 90o no sentido de e3 para e2.

Esta rotação é obtida pela matriz de transformação, cuja dedução pode ser

encontrada em [Foley, van Dam, Feiner & Hughes 1996]:

1

0

0

0

1

0

0 0

 0

cos(− π )

−sen(− π ) 0 

 0

0

1 0 

R

2

2

o = 

 = 

 .

 0 sen(− π )

cos(− π )

0 

 0 −1 0 0 

2

2

0

0

0

1

0

0

0 1

Em seguida, uma rotação em torno do eixo ótico é necessária. Esta ro-

tação inclina a câmera de tal maneira que a linha do horizonte fique na

inclinação inferida anteriormente, ou seja, de um ângulo de θ1. Observe que,

inclinar a linha do horizonte para a direita ou para a esquerda, é equivalente

a inclinar a câmera, na mesma intensidade, para a esquerda ou para a direita,

respectivamente. Assim, devemos rotacionar a câmera de −θ1 em torno do

CAPÍTULO 4. INFERÊNCIA TRIDIMENSIONAL

35

eixo e1, o que obtemos a partir da matriz:

1

0

0

0

1

0

0

0