Posicionamento Automático de Câmera em Ambientes Virtuais Dinâmicos

Documentos relacionados
4 Resultados. 4.1 Análise de desempenho

3 Módulo Cinegrafista Proposto

2 Linguagem cinematográfica em jogos

5 Resultados Experimentais

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2

6 Resultados Estratégias Consideradas

6 Estudos de Casos Porta Lógica OU de 4 Entradas

ESPECIFICAÇÃO DE SOFTWARE

5 Processo de Reificação e de Desenvolvimento com ACCA

5 Resultados Experimentais

INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Cálculo Numérico. Aula 6 Método das Secantes e Critérios de Parada /04/2014

6 Aplicações Detalhes da Implementação

5 Protótipo e Resultados Obtidos

5.1 Visualização da curva silhueta em R 4 Alguns exemplos de superfícies em R 4

5 Análise Experimental

5 Implementação da Metodologia

3 Sistema de Partículas na CPU

Os testes foram efetuados em um processador Intel i7 de 2.8 GHz com 12Gb de memória RAM utilizando uma Nvidia GeForce GTX 480.

Um Serviço Escalável e Robusto para Gerenciamento de Membros em Grades Computacionais de Grande Escala*

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Cálculo de Equivalentes Dinâmicos

2 Descrição do Sistema

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Modelagem e otimização de problemas utilizando ferramentas gráficas

Animação comportamental. Controlo de grupos de objectos. Sistemas de partículas Comportamento de grupos (Flocks, Herds, Schools) Agentes autónomos

MouseCam: aplicação de controle do mouse via câmera

Capítulo 10. Rotação. Copyright 2014 John Wiley & Sons, Inc. All rights reserved.

UTILIZANDO MORFOL PARA ANÁLISE DE CENAS ESPECIFICAÇÃO E IMPLEMENTAÇÃO

6 Resultados Análise de Desempenho

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)

4 Iluminando uma cena

CAPÍTULO 11 ROTAÇÕES E MOMENTO ANGULAR

Halliday & Resnick Fundamentos de Física

Um Middleware de Inteligência Artificial para Jogos Digitais 105

Emparelhamento de Objectos Representados em Imagens usando Técnicas de Optimização

Desenvolvimento de um modelo de ensino da Física

FORÇA e INTERAÇÕES. A unidade de força do SI é o newton A unidade de força do Sistema CGS é o Dine (dyn) ou Dina (Brasil)

5 Resultados e Aplicações

CAPÍTULO 7 Projeto usando o Lugar Geométrico das Raízes

5 VNS com Filtro e Reconexão por Caminhos

Prova Fundamentos Computação Gráfica

7 Definição da Trajetória via Controle Ótimo

XNA. Introdução ao XNA

1.1. Posicionamento e Motivação

4 Cálculo de Equivalentes Dinâmicos

2.1. Construção da Pista

4 Cálculo de Equivalentes Dinâmicos

Desde o surgimento dos primeiros jogos eletrônicos em meados dos anos 50, uma infinidade de aparatos eletrônicos foram desenvolvidos, principalmente

TRATAMENTO EFICIENTE DE VISIBILIDADE ATRAVÉS DE ÁRVORES DE VOLUMES ENVOLVENTES. Mauricio Hofmam

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

5 Simulação Numérica e Validação Experimental

Análise empírica de algoritmos de ordenação

O Pronome CREATOR 4.1. O objeto criador do objeto corrente

P P ref P ref = N/m 2

FORÇA e INTERAÇÕES. Forças de contacto Quando uma força envolve o contacto direto entre dois corpos

PROJETO MORFOL UMA FERRAMENTA PARA ANÁLISE LÓGICA DE CENAS

O usuário pode restringir dados a um determinado tipo, como números inteiros, números decimais ou texto, e definir limites para as entradas válidas.

1 Introdução. 1.1 Considerações Gerais

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

5 Sistema Proposto Simulação Integração Numérica

4.1. Validação da análise de fluxo e transporte de soluto no meio fraturado

Cálculo Numérico. Santos Alberto Enriquez-Remigio FAMAT-UFU 2015

STV 15 SET na figura acima a freqüência das variações do sinal de onda quadrada da câmera mostradas no topo do padrão xadrez é de 0,11 MHz

3.1 CRIAR A GEOMETRIA/MALHA;

Colisões. 1. Introdução

7 Conclusão. 7.1 Principais Contribuições Originais

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Técnicas de Programação Avançada Trabalho de implementação

Cinemática de Robôs Móveis

Cálculo Numérico BCC760 Raízes de equações algébricas e transcendentes

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

ESTUDO DA QUEDA DE CORPOS. Relatório

Sistema de Muitos Corpos

Aula 2 A distância no espaço

Figura 1.1: Um reservatório natural de petróleo típico: dificuldade para investigar áreas de interesse.

Processos de software

COMPUTAÇÃO GRÁFICA II E III. Posicionamento e edição de módulos

DISCLAIMER. Saiba mais sobre os planos da SmarttBot. Clique no ícone da estratégia em qualquer página do ebook para retornar ao sumário.

4 Impostores com Relevo

Figura 3.1 Diálogo principal do simulador 1D

ROBÓTICA PLANEJAMENTO DE TRAJETÓRIAS. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

Relatório Técnico Testes Comparativos entre Monitor On-line de Umidade MO Treetech e Análise de Teor de Água por Karl Fischer

de maior força, tanto na direção normal quanto na direção tangencial, está em uma posição no

Roteiro de Construção de Gráficos Análise de Experimentos Virtuais

Roteiro do experimento Colisões bidimensionais Parte 2

1. Justificativa. 2. Introdução

Análise e Processamento de Bio-Sinais. Mestrado Integrado em Engenharia Biomédica. Sinais e Sistemas. Licenciatura em Engenharia Física

SME Cálculo Numérico. Lista de Exercícios: Gabarito

Eng. Renato Daher Prof.Dr. Raphael Augusto de Souza Benedito

Manual de Utilização do Convert Video. Passo Fundo, abril de Av. Presidente Vargas, 1305 / Sala 201 Passo Fundo RS

Algoritmos Randomizados: Geometria Computacional

Tabela Dinâmica. Curso: Engenharia de Produção Disciplina: Informática Aplicada a Engenharia Professor: Rodrigo da Rocha

3 Aprendizado por reforço

Experimento: Movimento Retilíneo Uniforme

Roteiro para atividade sobre a equação de Gauss

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES

4 Implementação e Resultados

Laboratório de Física

Transcrição:

Posicionamento Automático de Câmera em Ambientes Virtuais Dinâmicos Rodrigo Hermann, Waldemar Celes Tecgraf - Departamento de Informática, PUC-Rio {hermann,celes}@tecgraf.puc-rio.br Abstract Os jogos eletrônicos mais sofisticados tentam realizar tomadas de cenas baseadas em princípios da cinematografia, aumentando a imersão experimentada pelos usuários (jogadores e espectadores). Existem dois grandes desafios na adaptação dos princípios da cinematografia em jogos: as linguagens cinematográficas são subjetivas, não sendo diretamente mapeadas para um programa de computador; além disso, os ambientes virtuais são dinâmicos e as ações são imprevisíveis, não sendo possível definir a priori os posicionamentos de câmera adequados para cada cena. Sistemas de controle de câmera em ambientes virtuais podem ser estruturados em três módulos: roteirista, responsável por identificar o que está ocorrendo; diretor/editor, responsável por definir as melhores tomadas para a cena em questão; e cinegrafista, responsável por posicionar a câmera no ambiente virtual segundo as regras cinematográficas estabelecidas. Neste trabalho, propomos a implementação de um módulo cinegrafista descrevendo a câmera por um modelo físico submetido a restrições. As restrições são tratadas de forma independente e satisfeitas através do método de relaxação. Desta forma, podemos realizar tomadas de cena usualmente encontradas na cinematografia através da composição de restrições simples. Resultados demonstram a eficiência, robustez e estabilidade do sistema proposto para o posicionamento automático de câmera em ambientes virtuais dinâmicos. Propomos ainda um mecanismo de validação da configuração de câmera obtida, permitindo que o módulo externo (diretor/editor) possa validar e, se for o caso, optar por um corte e a especificação de uma nova tomada de cena. 1 Introdução O cinema desenvolveu técnicas específicas com o objetivo de melhorar nossa interpretação dos filmes. A cinematografia procura explorar a dramaticidade das cenas, aumentando a imersão do espectador. Com o passar dos anos, aprendemos a interpretar os filmes segundo as linguagens cinematográficas. Da mesma forma, os jogos eletrônicos mais sofisticados têm procurado explorar a cinematografia para obter melhores tomadas de cena. O principal objetivo é usar a cinematografia para melhor explorar as emoções das cenas, tornando os jogos mais atrativos. O uso da cinematografia em jogos torna-se ainda mais interessante quando consideramos o número crescente de espectadores de jogos. Num futuro próximo, provavelmente teremos sessões de jogos eletrônicos sendo transmitidas para um grande número de espectadores. Para que a transmissão destes eventos seja de interesse do público, é necessário apresentar o desenrolar do jogo com posicionamentos de câmera que explorem a dramaticidade das cenas. A adaptação das técnicas cinematográficas em jogos (ambientes virtuais) não se dá de forma direta. Podemos identificar duas dificuldades principais. A primeira diz respeito à subjetividade com que é tratada a cinematografia. Não existe um conjunto de regras rígidas que pode ser aplicado diretamente por um programa de computador. A segunda dificuldade é o caráter dinâmico e imprevisível das cenas. No cinema, o diretor tem o conhecimento prévio do roteiro e a liberdade de experimentar diferentes tomadas de cena; no entanto, em um ambiente interativo, não sabemos a priori o que irá acontecer e o que deve ser capturado. Portanto, o sistema de controle da câmera deve ser capaz de coletar informações à medida que os fatos acontecem e conseguir realizar a tomada da cena de forma adequada, num curto espaço de tempo para não comprometer o desempenho da aplicação. A dificuldade aumenta se também quisermos aplicar os princípios da cinematografia para fazer o posicionamento da câmera que é utilizada pelo jogador, pois a jogabilidade não pode ser prejudicada. Para a adaptação da cinematografia em jogos, Hawkins [5] propõe a estruturação do sistema em três módulos: roteirista, diretor/editor e cinegrafista. O módulo roteirista é 1

responsável por identificar o que está ocorrendo no ambiente, definir o que deve ser mostrado e qual linguagem cinematográfica é mais adequada para a cena. O módulo diretor/editor é responsável por definir, a partir das informações recebidas do roteirista, quais são as melhores tomadas para capturar a cena. Por fim, o módulo cinegrafista é responsável por posicionar a câmera no ambiente dinâmico para melhor atender às demandas do módulo diretor/editor. Na prática, o módulo diretor/editor traduz a tomada de câmera desejada num conjunto de regras (restrições) que devem ser atendidas pelo módulo cinegrafista (Figura 1). Figura 1. Estruturação do sistema para adaptação da cinematografia para ambientes virtuais Este trabalho propõe a implementação de um módulo cinegrafista capaz de posicionar uma câmera automaticamente a partir de regras cinematográficas especificadas por um módulo externo. As regras são expressas através de um conjunto de restrições que devem ser atendidas pelo modelo de câmera. Cada restrição atua sem se valer do conhecimento da existência de outras restrições e possui um grau de prioridade de atendimento que a torna flexível quanto à sua importância na resolução do sistema. O módulo proposto descreve a câmera através de um modelo físico baseado em um sistema de partículas e usando o método de integração Verlet. O método de relaxação é utilizado para a convergência do sistema a fim de atender às restrições impostas. Como estas podem ser conflitantes ou inviáveis, propomos ainda uma métrica que retorna ao módulo externo uma resposta informando o quanto as restrições impostas ao sistema estão sendo satisfeitas. Com base nesta informação, o módulo externo (diretor/editor) pode optar por um corte e a especificação de uma nova tomada de cena. Experimentos computacionais demonstram a robustez e eficiência do módulo proposto. Tomadas de cena usualmente utilizadas em linguagens cinematográficas são conseguidas através da especificação de um conjunto de restrições simples. O restante deste artigo está organizado da seguinte forma. Na próxima seção são apresentados os trabalhos relacionados. Na seção seguinte propomos o módulo cinegrafista, detalhando o modelo físico de câmera e as restrições desenvolvidas para a obtenção das tomadas de cena. A seguir, descrevemos a interface externa do módulo proposto. Na seção 5 são apresentados os resultados obtidos com o módulo, exemplificando a obtenção de tomadas de cena inspiradas na cinematografia com o uso do módulo proposto. Por fim, na seção 6, apresentamos nossas conclusões. 2 Trabalhos Relacionados Otten [9] e Druker et al. [2] analisaram a viabilidade de se explorar a transmissão de jogos eletrônicos da mesma forma que são transmitidos eventos esportivos, identificando a existência dos espectadores de jogos, definindo a infra-estrutura necessária e o apelo comercial destas transmissões. Para a adaptação da linguagem cinematográfica em ambientes virtuais dinâmicos, podemos identificar duas linhas de pesquisa distintas. Na primeira, utiliza-se um conjunto pré-definido de linguagens cinematográficas que determinam o posicionamento das câmeras, tais como as linguagens utilizadas em diálogos entre dois personagens, aproximação de personagens, perseguições de carro, etc. Para cada uma destas linguagens, prevê-se a utilização de um determinado número de câmeras com posicionamento pré-estabelecido. Em tempo real, o sistema identifica a linguagem cinematográfica a ser utilizada e tenta posicionar as câmeras especificadas. He et al. [6] organizaram as linguagens cinematográficas como nós de uma árvore, em que cada linguagem funciona como uma máquina de estado. Amerson e Kime [1] desenvolveram a linguagem FILM que também se utiliza de uma árvore para descrever as linguagens cinematográficas. Apesar de conseguir dar um melhor aspecto cinematográfico à cena por utilizar uma linguagem com a qual o espectador já está acostumado, os modelos propostos se mostram muito rígidos quanto ao posicionamento de câmera, muitas vezes não conseguindo encontrar um posicionamento satisfatório que atenda às exigências da linguagem cinematográfica em uso. Na segunda linha de pesquisa, encontram-se os trabalhos que buscam utilizar apenas os conceitos básicos da cinematografia, em vez de linguagens nas quais a seqüência de tomadas já está pré-estabelecida. Drucker [3] define uma série de restrições ligadas a conceitos da cinematografia e tenta posicionar a câmera de forma que as restrições impostas sejam atendidas. Halper et al. [4] utilizam uma metodologia similar, procurando explorar a coerência entre quadros consecutivos. Estas propostas tendem a ser mais flexíveis pois não se pré-estabelece o posicionamento de câmera. As restrições guiam a câmera para uma tomada de acordo com a cinematografia respeitando o ambiente virtual da cena. No entanto, o sistema proposto por Halper et al. não é extensível, sendo difícil a inclusão de novos tipos de restrições, e o sistema proposto por Drucker apresenta

instabilidade no posicionamento da câmera. Neste trabalho, optamos por seguir esta segunda linha de pesquisa e propomos o uso de um modelo físico para representar a câmera. Todas as restrições são tratadas de forma independente dentro do mesmo modelo físico, sendo possível a inserção de novos tipos de restrições e a livre composição de restrições para a realização de uma tomada de câmera. A estabilidade do sistema é alcançada com o uso do método de relaxação para a atender às restrições impostas ao modelo. 3 Módulo cinegrafista O módulo proposto neste trabalho parte do conceito apresentado por Drucker [3] sobre o uso de restrições que, agrupadas, conseguem produzir o posicionamento e o movimento de câmera esperado. Assim como Halper et al. [4], assumimos que a aplicação terá uma alta taxa de quadros por segundo e que a solução para o sistema não precisa ser ótima, mas apenas satisfatória. A câmera é modelada por um sistema de partículas com restrições. Inspirados pelo trabalho de Jakobsen [8], utilizamos o método de integração Verlet [11] para evoluir o sistema e o método de relaxação [10] para satisfazer as restrições. Uma vez encontrado o novo estado da câmera, as restrições são avaliadas quanto a seu atendimento e os parâmetros da câmera são atualizados de acordo com o novo estado do modelo físico. A Figura 2 ilustra o funcionamento do módulo cinegrafista proposto. significa simular o comportamento de uma câmera real, mas se valer dos princípios da física para ajudar na resolução do sistema. O uso de um modelo físico para a definição dos parâmetros da câmera torna o sistema mais versátil, por permitir a adição de forças externas que alterem o comportamento da câmera (por exemplo, forças gravitacionais, forças de amortecimento e forças de atrito). Uma câmera virtual possui sete parâmetros de configuração: posição, direção, up, fovy, aspect, znear e zfar. O modelo de câmera proposto é composto por cinco partículas conectadas por barras rígidas. Cinco dos parâmetros da câmera, excetuando-se os parâmetros znear e zfar, são extraídos a partir do posicionamento das partículas. Um valor dist é passado ao modelo de câmera como a distância da partícula p0 ao centro do plano formado pelas partículas p1, p2, p3 e p4. A Figura 3 ilustra o modelo físico proposto. Figura 3. Visão frontal, lateral e sob perspectiva do modelo de câmera. A tradução do posicionamento das partículas para os parâmetros de uma câmera virtual se dá de acordo com as equações abaixo: pos = p0 (1) up = ( p4 + p3 2 p2 ) ( + p1 ), ûp = up 2 up (2) Figura 2. Funcionamento do módulo cinegrafista dx = ( p2 + p4 2 p1 ) ( + p3 dx ), dx = 2 dx dir = ûp dx (3) 3.1 Modelo de câmera A câmera é descrita por um conjunto de partículas conectadas por barras rígidas. O sistema evolui submetido a um conjunto de restrições, podendo-se aplicar forças externas. O uso de um modelo físico para descrever a câmera não dx fovy = arctan( 2 znear ) (4) aspect = dx up (5)

3.2 Restrições Cada restrição inserida no sistema é satisfeita de forma independente, alterando apenas o posicionamento das partículas diretamente relacionadas com a restrição em questão. Isso significa que uma restrição altera o modelo da câmera sem se preocupar com a qualidade do sistema como um todo, mas buscando apenas satisfazer a si própria. O uso de restrições que atuem de forma simples e independente se traduz num sistema eficiente e flexível, pois novas restrições podem ser adicionadas livremente ao sistema. A convergência do sistema se dá através do método de relaxação: o conjunto de restrições aplicadas ao modelo, incluindo suas restrições de barras rígidas implícitas, são satisfeitas por um processo iterativo. A alta taxa de quadros da aplicação assegura a convergência do sistema como um todo. Através da composição de restrições simples, conseguese a criação de uma grande variedade de movimentos de câmera. Algumas das restrições já incorporadas ao sistema são descritas a seguir. Barra Rígida A restrição de barra rígida define uma distância mínima e máxima entre duas partículas. O próprio modelo físico da câmera utiliza esta restrição para definir os espaçamentos entre as partículas (com valores mínimos e máximos iguais). Uma barra rígida conecta duas partículas, cada uma possuindo uma massa. Se as partículas estiverem fora da distância exigida, elas são aproximadas ou afastadas proporcionalmente à sua massa a fim de atender a restrição. A Figura 4 ilustra o procedimento de atendimento à restrição de uma barra formada por duas partículas de massas iguais. (a) (b) (c) Figura 4. Restrição de barra rígida: (a) barra não atendendo à restrição; (b) transformação do estado inválido da barra para o estado válido; (c) restrição satisfeita Posicionamento em um volume A restrição de posicionamento em um volume fixa uma partícula dentro de um volume. Quando aplicada à partícula p0 do modelo de câmera, força a câmera a atuar sempre posicionada dentro de um volume, área ou ponto específico do ambiente. O funcionamento da restrição verifica se a partícula p0 do modelo de câmera está dentro do volume especificado e, se não estiver, a partícula é arrastada para a borda mais próxima do volume. A Figura 5 ilustra o modelo de câmera atendendo à restrição. Note que o posicionamento das demais partículas é inalterado, devido à independência no tratamento das restrições. As restrições de barra rígida contidas no modelo de câmera se responsabilizam por tornar válido o estado final do modelo. (a) (b) (c) Figura 5. Restrição de posicionamento em volume: (a) câmera não atendendo à restrição; (b) transformação do estado inválido para o estado válido; (c) câmera com a restrição satisfeita. Enquadramento A restrição de enquadramento posiciona um objeto em uma área específica da tela rotacionando o modelo de câmera em torno de um eixo escolhido. A escolha do eixo de rotação permite que dois objetos sejam enquadrados simultaneamente na tela. Para enquadrar um primeiro objeto na área da tela, rotacionamos o modelo em torno da partícula p0. Para conseguir o enquadramento de um segundo objeto sem perder o enquadramento do primeiro, o modelo é rotacionado em relação à posição do primeiro objeto. Direção de um objeto A restrição de direção de um objeto posiciona a câmera em relação à direção para a qual um objeto está voltado. Dessa forma é possível, por exemplo, colocar a câmera atrás de um objeto. A restrição é atendida arrastando a partícula p0 para uma área que satisfaça a restrição. Colisão A restrição de colisão impede que a câmera colida com o cenário. A câmera possui um volume envolvente definido por uma esfera centrada na posição p0 + dir znear. O diâmetro da esfera é definido a partir dos planos do frustum de visão (up, bottom, left, right, znear e zfar) e é formado pela diagonal do quadrilátero extraído da interseção do plano znear com os planos up, bottom, left e right. A detecção de colisão define o quanto e em que direção houve a colisão, e a reação à colisão arrasta as partículas do modelo de câmera na direção contrária à direção de colisão.

Visibilidade A restrição de visibilidade impede que o volume envolvente de um objeto fique encoberto pelo cenário, desviando a câmera quando o cenário impede a visualização do objeto de interesse. Para encontrar uma solução que satisfaça a restrição de visibilidade, são lançados raios em direção ao objeto de interesse a partir da posição da partícula p0 do modelo de câmera. Primeiro, lançam-se raios considerando apenas o objeto de interesse. A seguir, os mesmo raios são lançados considerando o cenário sem o objeto de interesse. Os raios retornam a distância entre a partícula e o objeto de interesse ou a cena. A partir dessas duas distâncias, é possível determinar se o ponto do objeto de interesse atingido pelo raio está visível pela câmera. Considerando-se apenas os raios interceptados pelo cenário, calcula-se o centro geométrico dos pontos de interseção (raio contra cenário). A restrição de visibilidade opta por mover a partícula p0 do modelo de câmera na menor distância possível para tirar esse centro geométrico da área visualizada do objeto de interesse. A restrição tende a ser satisfeita repetindo este procedimento diversas vezes. Além das restrições citadas, foram incorporadas ao sistema proposto restrições de posicionamento em segmento de reta, orientação, fov, velocidade de translação, velocidade de rotação, velocidade do fov, distância de um objeto, tamanho na tela e respeito à linha de ação. Detalhes quanto ao funcionamento das restrições podem ser encontrados em [7]. 4 Interface externa A configuração de um comportamento de câmera é feita através do agrupamento de restrições de acordo com a necessidade do módulo diretor/editor. Dois parâmetros são comuns a todas as restrições: prioridade, responsável por estabelecer uma relação de importância entre as restrições; e valor de referência, responsável por definir uma margem de tolerância quanto ao atendimento da restrição, possibilitando que o módulo cinegrafista analise o quanto a restrição está sendo atendida. 4.1 Prioridade Ao agrupar as restrições em busca de uma determinada configuração de câmera, certas restrições possuem um grau de importância maior que outras. Por exemplo, as barras rígidas que formam o modelo da câmera devem ter uma prioridade de atendimento maior do que restrições como de enquadramento, uma vez que se não forem satisfeitas o modelo de câmera se tornará inválido. O valor de prioridade cria uma relação entre as restrições, e seu uso se dá da seguinte forma: uma vez calculado o quanto a restrição deverá alterar o estado do modelo, esse valor é multiplicado pelo valor da prioridade da restrição, que varia de 0 a 1. Dessa forma, restrições de baixa prioridade levam um número maior de iterações para serem satisfeitas, enquanto restrições com altos valores de prioridade são atendidas em poucas iterações. Valores de prioridade mais baixos também suavizam o movimento da câmera, enquanto valores mais altos tornam os movimentos mais bruscos. 4.2 Valor de referência O módulo cinegrafista precisa ser capaz de analisar o atendimento às restrições impostas, repassando essa informação ao diretor/editor. Dessa forma, o módulo diretor/editor consegue avaliar se as restrições definidas por ele devem permanecer como estão ou se a configuração atual deve ser alterada. A utilização de um valor de referência permite que o módulo cinegrafista dê uma resposta linear (0 a 1) quanto ao atendimento da restrição. O valor 1 indica que a restrição foi atendida; o valor 0 indica que a restrição não foi atendida mesmo considerando a tolerância definida pelo valor de referência. Além do valor de resposta de cada restrição, é retornado ao módulo diretor/editor um valor de resposta global, baseado nas respostas de todas as restrições. Esse valor é calculado através de uma média ponderada que se utiliza da prioridade de cada uma das restrições impostas. 5 Resultados Nesta seção, analisaremos o funcionamento do módulo cinegrafista proposto. Foram realizados dois tipos de testes para a avaliação do módulo cinegrafista. O primeiro corresponde a uma análise do custo computacional de cada uma das restrições, assim como uma análise da variação do custo computacional total referente à adição de restrições no sistema. O segundo teste consiste em verificar se o módulo cinegrafista é capaz de posicionar a câmera de maneira satisfatória e se as restrições implementadas conseguem criar, através de seus agrupamentos, os movimentos de câmera esperados. A seguir, é explicado como cada um desses testes foi desenvolvido. 5.1 Análise de Desempenho O cálculo do custo computacional do módulo cinegrafista não pode ser feito a partir de uma configuração específica. Como o módulo é configurado a partir de uma

composição qualquer de restrições, primeiramente propomos uma análise de desempenho do pior caso para cada restrição em separado. O pior caso de uma restrição ocorre quando a câmera não atende às definições da restrição, isto é, a restrição força um reposicionamento da câmera. A Figura 6 apresenta um gráfico do custo computacional médio em milissegundos de cada restrição. Para a obtenção dos valores, foi utilizado um computador Pentium IV 2.4Ghz com 512Mb de memória RAM e retirada a média do tempo gasto para a restrição atuar dez mil vezes em seu pior caso. Salientamos que o custo das restrições de oclusão e colisão depende da complexidade do sistema. Neste experimento computacional, o ambiente externo utilizado foi muito simples, definido apenas por duas esferas. O gráfico demonstra o alto custo relativo destas restrições em relação às demais. real. O custo real foi calculado posicionando a câmera em um estado no qual nenhuma restrição estivesse sendo atendida, e a partir daí foi calculado o custo computacional da execução das nitr iterações. A Figura 7 permite observar que o custo real acompanha o crescimento do custo calculado à medida que novas restrições são adicionadas ao módulo. Dessa forma, é possível fazer uma aproximação do custo computacional real do módulo a partir do conhecimento dos custos individuais das restrições e do número total de iterações do sistema. Com isto, pode-se prever um limite máximo do tempo necessário para posicionar a câmera no ambiente virtual seguindo as regras impostas. Figura 7. Comparação entre custo real e custo calculado A partir dos desempenhos constatados, podemos concluir que, para a cena com baixa complexidade utilizada no experimento, o posicionamento da câmera pode ser feito de forma eficiente. Figura 6. Custo individual de cada restrição A partir do custo médio por iteração de cada restrição, é possível avaliar um custo aproximado do módulo como um todo. A função de custo se baseia no número de iterações do sistema (nitr), no custo de cada uma das restrições adicionadas (r i ) e no custo das dez restrições de barras rígidas que pertencem ao modelo físico (stick) da câmera. Como os custos utilizados correspondem ao custo de pior caso, a função do custo do módulo também se refere ao seu pior caso. A equação 6 permite calcular um valor máximo do custo computacional total esperado do módulo com diferentes restrições. custo = nitr (10 stick + k r i ) (6) i=1 Com o objetivo de validar a fórmula acima, foi realizado um experimento comparando o custo calculado com o custo 5.2 Exemplos de configurações de câmera Para exemplificar o uso do módulo cinegrafista proposto, foram criados modelos de movimentação de câmera. O resultado alcançado demonstra que a composição de restrições simples é capaz de realizar configurações de câmera usualmente encontradas na cinematografia e nos jogos eletrônicos. Fixa Este experimento consiste em posicionar a câmera em um local fixo na cena e enquadrar um determinado objeto no centro da tela. Para criar esta configuração foi adicionada uma restrição de Posicionamento em um volume com prioridade 1.0 que fixa a câmera em uma posição, uma restrição de Enquadramento com prioridade 0.05 que força o objeto a aparecer sempre no meio da tela, e uma restrição de Orientação com prioridade 0.9 que fixa o up da câmera. O uso de uma baixa prioridade para a

restric a o de enquadramento permitiu que a ca mera assumisse um movimento mais suave, criando um atraso na rotac a o da ca mera em relac a o a movimentac a o do objeto. Sobre trilhos Esta configurac a o posiciona a ca mera sobre uma linha, procurando manter uma dista ncia mı nima de um objeto que deve sempre ser enquadrado no centro da tela. Movimentos como este sa o utilizados quando se procura seguir um determinado objeto, como em transmisso es de determinados jogos esportivos, como o futebol (Figura 8). Este movimento foi realizado adicionando uma restric a o de Posicionamento em segmento de reta(prioridade 0.5) ale m de restric o es quanto a Velocidade de translac a o(0.9), Orientac a o(0.9), Velocidade de rotac a o(0.2), Enquadramento(0.1), Visibilidade(0.5) e Dista ncia de um objeto(0.2). objeto, deixando-o levemente deslocado do centro da tela. A Figura 9 ilustra uma tomada de cena com esta configurac a o. Esta configurac a o foi conseguida atrave s da adic a o de restric o es de Orientac a o(0.9), para na o alterar a direc a o up da ca mera; Dista ncia de um objeto(0.1), para a ca mera seguir o objeto; Direc a o de um objeto(0.01), para manter a ca mera atra s do objeto; Enquadramento(0.5), para enquadrar o objeto deslocado do centro da tela; e Colisa o(0.05), para evitar que a ca mera colida com a cena. O uso de uma esfera envolvente na restric a o de colisa o permite detectar a colisa o antes do plano de projec a o da ca mera (znear) entrar em colisa o com o cena rio. Isto permite que valores mais baixos de prioridade sejam utilizados na restric a o de colisa o, criando uma desacelerac a o da ca mera a medida que esta se aproxima de um obsta culo. (a) (a) (b) (b) Figura 8. Posicionamento de ca mera sobre trilho: a esquerda a vista da ca mera e a direita uma vista superior incluindo a representac a o gra fica do frustum de visa o. Note que nas extremidades do segmento de reta que representa o trilho a ca mera e rotacionada para enquadrar o personagem Sobre os ombros A ca mera sobre os ombros e muito utilizada em jogos com visualizac a o de terceira pessoa. Consiste em posicionar a ca mera sempre atra s de um Figura 9. Posicionamento de ca mera sobre os ombros: a esquerda a vista da ca mera e a direita uma vista superior incluindo a representac a o gra fica do frustum de visa o. 6 Concluso es O mo dulo cinegrafista proposto neste trabalho permitiu o posicionamento automa tico de ca mera em ambientes virtuais dina micos. A utilizac a o de um modelo

físico para descrever a câmera, com o uso do método de integração Verlet e da técnica de relaxação, se mostrou adequada ao problema, resultando num sistema eficiente, eficaz e estável. O uso de restrições independentes se relacionando através de valores de prioridades permitiu a obtenção de diversas configurações de câmera baseada em agrupamentos de restrições simples. Resultados experimentais demonstram a capacidade do modelo proposto de simular diversas tomadas de cenas com base na cinematografia, para câmeras voltadas tanto para os jogadores quanto para os espectadores. 7 Agradecimentos Dissertação de Mestrado, Departamento de Informática, PUC-Rio, 2005. [8] Jakobsen, Thomas Advanced Character Physics In Proceedings of Game Developers Conference, pp. 383-401, 2001. [9] Otten, Martin Broadcasting Virtual Games in the Internet, 2001. [10] Press, William and Teukolsky, Saul Numerical Recipes, Comput. Phys., Vol. 3, pp. 91-94, 1993. [11] Verlet, L. Computer experiments on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules, Phys. Rev., Vol. 159. pp. 98-105, 1967. Durante o desenvolvimento desta pesquisa, o primeiro autor recebeu auxílio financeiro da CAPES (Coordenação de Aperfeiçoamento de Pessoal de Nível Superior). Referências [1] Amerson, Daniel and Kime, Shaun Real-time Cinematic Camera Control for Interactive Narratives, American Association for Artificial Intellingence, pp. 1-4, 2000. [2] Drucker, Steven and He, Li and Cohen, Michael and Wong, Curtis and Gupta, Anoop Spectator Games: A New Entertainment Modality For Networked Multiplayer Games, Microsoft Research, 2002. [3] Drucker, Steven Intelligent Camera Control for Graphical Environments, PhD Thesis, MIT Media Lab, 1994. [4] Halper, Niclas and Helbing, Ralf and Strothotte, Thomas A Camera Engine for Computer Games: Managing the Trade-off Between Constraint Satisfaction and Frame Coherence, In Proceedings of EUROGRAPHICS, Vol. 20, pp. 174-183, 2001. [5] Hawkins, Brian Creating an event-driven cinematic camera, In Game Developer Magazine, Sep/Nov, 2002. [6] He, Li and Cohen, Michael and Salesin, David The Virtual Cinematographer: A Paradigm for Automatic Real-Time Camera Control and Directing, In Proceedings of SIGGRAPH 96, pp. 217-224, 1996. [7] Hermann, Rodrigo Controle Automático de Câmera em Ambientes Virtuais Dinâmicos,