Animação de fluidos em imagens digitais por Marcos Aurélio Batista - Versão HTML
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
v
vi
1
4
Espaço da imagem . . . . . . . . . . . . . . . . . . . . . . . .
5
Técnicas baseadas em vídeo . . . . . . . . . . . . . . . . . . .
9
. . . . . . . . . . . . . . . . . . . . . .
11
Animando fluidos em imagens . . . . . . . . . . . . . . . . . .
13
Animação baseada em águas rasas . . . . . . . . . . . . . . . .
17
21
26
Linha do horizonte . . . . . . . . . . . . . . . . . . . . . . . .
27
. . . . . . . . . . . . . . . . . . . . . . . . . .
30
Calibração da câmera . . . . . . . . . . . . . . . . . . . . . . .
31
Projeção inversa do corpo d’água . . . . . . . . . . . . . . . .
36
Determinando o domínio de simulação
. . . . . . . . . . . . .
37
vii
Construção do domínio de simulação
39
44
Resolução numérica . . . . . . . . . . . . . . . . . . . . . . . .
45
Considerações sobre os arquivos de entrada . . . . . . . . . . .
52
Projeção reversa e renderização
57
61
Rio em movimento . . . . . . . . . . . . . . . . . . . . . . . .
63
Animação de fluxo em uma represa . . . . . . . . . . . . . . .
65
Vulcão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
Chuvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Balanço natural . . . . . . . . . . . . . . . . . . . . . . . . . .
68
. . . . . . . . . . . . . . . . . . . . . .
70
Efeito Coriolis . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
Inserção de objetos . . . . . . . . . . . . . . . . . . . . . . . .
75
Comparações . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
83
. . . . . . . . . . . . . . . . . . . . . . . . . . .
83
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
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,
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:
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,
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.
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>.
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.
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.
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
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
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,
CAPÍTULO 3. ABORDAGEM PROPOSTA
24
Figura 3.4: Simulação do fluxo a partir das equações de águas rasas.
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
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.
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.
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 α,
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.
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,
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