Posicionamento Autom´atico de Cˆamera
em Ambientes Virtuais Dinˆamicos
Rodrigo Hermann, Waldemar Celes
Tecgraf - Departamento de Inform´atica, PUC-Rio
{hermann,celes}@tecgraf.puc-rio.br
Abstract
Os jogos eletrˆonicos mais sofisticados tentam realizar tomadas de cenas baseadas em princ´ıpios da cinematografia, aumen-tando a imers˜ao experimentada pelos usu´arios (jogadores e espectadores). Existem dois grandes desafios na adaptac¸˜ao dos princ´ıpios da cinematografia em jogos: as linguagens cinematogr´aficas s˜ao subjetivas, n˜ao sendo diretamente mapea-das para um programa de computador; al´em disso, os ambientes virtuais s˜ao dinˆamicos e as ac¸˜oes s˜ao imprevis´ıveis, n˜ao sendo poss´ıvel definir a priori os posicionamentos de cˆamera adequados para cada cena. Sistemas de controle de cˆamera em ambientes virtuais podem ser estruturados em trˆes m´odulos: roteirista, respons´avel por identificar o que est´a ocor-rendo; diretor/editor, respons´avel por definir as melhores tomadas para a cena em quest˜ao; e cinegrafista, respons´avel por posicionar a cˆamera no ambiente virtual segundo as regras cinematogr´aficas estabelecidas. Neste trabalho, propomos a implementac¸˜ao de um m´odulo cinegrafista descrevendo a cˆamera por um modelo f´ısico submetido a restric¸˜oes. As restric¸˜oes s˜ao tratadas de forma independente e satisfeitas atrav´es do m´etodo de relaxac¸˜ao. Desta forma, podemos realizar tomadas de cena usualmente encontradas na cinematografia atrav´es da composic¸˜ao de restric¸˜oes simples. Resultados demonstram a eficiˆencia, robustez e estabilidade do sistema proposto para o posicionamento autom´atico de cˆamera em ambientes virtu-ais dinˆamicos. Propomos ainda um mecanismo de validac¸˜ao da configurac¸˜ao de cˆamera obtida, permitindo que o m´odulo externo (diretor/editor) possa validar e, se for o caso, optar por um corte e a especificac¸˜ao de uma nova tomada de cena.
1
Introduc¸˜ao
O cinema desenvolveu t´ecnicas espec´ıficas com o obje-tivo de melhorar nossa interpretac¸˜ao dos filmes. A cine-matografia procura explorar a dramaticidade das cenas, au-mentando a imers˜ao do espectador. Com o passar dos anos, aprendemos a interpretar os filmes segundo as linguagens cinematogr´aficas. Da mesma forma, os jogos eletrˆonicos mais sofisticados tˆem procurado explorar a cinematografia para obter melhores tomadas de cena. O principal objetivo ´e usar a cinematografia para melhor explorar as emoc¸˜oes das cenas, tornando os jogos mais atrativos. O uso da cinema-tografia em jogos torna-se ainda mais interessante quando consideramos o n´umero crescente de espectadores de jogos. Num futuro pr´oximo, provavelmente teremos sess˜oes de jo-gos eletrˆonicos sendo transmitidas para um grande n´umero de espectadores. Para que a transmiss˜ao destes eventos seja de interesse do p´ublico, ´e necess´ario apresentar o desenro-lar do jogo com posicionamentos de cˆamera que explorem a dramaticidade das cenas.
A adaptac¸˜ao das t´ecnicas cinematogr´aficas em jogos
(ambientes virtuais) n˜ao se d´a de forma direta. Podemos identificar duas dificuldades principais. A primeira diz res-peito `a subjetividade com que ´e tratada a cinematografia. N˜ao existe um conjunto de regras r´ıgidas que pode ser apli-cado diretamente por um programa de computador. A se-gunda dificuldade ´e o car´ater dinˆamico e imprevis´ıvel das cenas. No cinema, o diretor tem o conhecimento pr´evio do roteiro e a liberdade de experimentar diferentes tomadas de cena; no entanto, em um ambiente interativo, n˜ao sabe-mos a priori o que ir´a acontecer e o que deve ser capturado. Portanto, o sistema de controle da cˆamera deve ser capaz de coletar informac¸˜oes `a medida que os fatos acontecem e conseguir realizar a tomada da cena de forma adequada, num curto espac¸o de tempo para n˜ao comprometer o de-sempenho da aplicac¸˜ao. A dificuldade aumenta se tamb´em quisermos aplicar os princ´ıpios da cinematografia para fazer o posicionamento da cˆamera que ´e utilizada pelo jogador, pois a jogabilidade n˜ao pode ser prejudicada.
Para a adaptac¸˜ao da cinematografia em jogos, Hawkins [5] prop˜oe a estruturac¸˜ao do sistema em trˆes m´odulos: ro-teirista, diretor/editor e cinegrafista. O m´odulo roteirista ´e 1
respons´avel por identificar o que est´a ocorrendo no ambi-ente, definir o que deve ser mostrado e qual linguagem ci-nematogr´afica ´e mais adequada para a cena. O m´odulo dire-tor/editor ´e respons´avel por definir, a partir das informac¸˜oes recebidas do roteirista, quais s˜ao as melhores tomadas para capturar a cena. Por fim, o m´odulo cinegrafista ´e res-pons´avel por posicionar a cˆamera no ambiente dinˆamico para melhor atender `as demandas do m´odulo diretor/editor. Na pr´atica, o m´odulo diretor/editor traduz a tomada de cˆamera desejada num conjunto de regras (restric¸˜oes) que devem ser atendidas pelo m´odulo cinegrafista (Figura 1).
Figura 1. Estruturac¸ ˜ao do sistema para adaptac¸ ˜ao da cinematografia para ambientes virtuais
Este trabalho prop˜oe a implementac¸˜ao de um m´odulo cinegrafista capaz de posicionar uma cˆamera automatica-mente a partir de regras cinematogr´aficas especificadas por um m´odulo externo. As regras s˜ao expressas atrav´es de um conjunto de restric¸˜oes que devem ser atendidas pelo modelo de cˆamera. Cada restric¸˜ao atua sem se valer do conheci-mento da existˆencia de outras restric¸˜oes e possui um grau de prioridade de atendimento que a torna flex´ıvel quanto `a sua importˆancia na resoluc¸˜ao do sistema. O m´odulo pro-posto descreve a cˆamera atrav´es de um modelo f´ısico ba-seado em um sistema de part´ıculas e usando o m´etodo de integrac¸˜ao Verlet. O m´etodo de relaxac¸˜ao ´e utilizado para a convergˆencia do sistema a fim de atender `as restric¸˜oes impostas. Como estas podem ser conflitantes ou invi´aveis, propomos ainda uma m´etrica que retorna ao m´odulo externo uma resposta informando o quanto as restric¸˜oes impostas ao sistema est˜ao sendo satisfeitas. Com base nesta informac¸˜ao, o m´odulo externo (diretor/editor) pode optar por um corte e a especificac¸˜ao de uma nova tomada de cena. Experimen-tos computacionais demonstram a robustez e eficiˆencia do m´odulo proposto. Tomadas de cena usualmente utilizadas em linguagens cinematogr´aficas s˜ao conseguidas atrav´es da especificac¸˜ao de um conjunto de restric¸˜oes simples.
O restante deste artigo est´a organizado da seguinte forma. Na pr´oxima sec¸˜ao s˜ao apresentados os trabalhos re-lacionados. Na sec¸˜ao seguinte propomos o m´odulo cinegra-fista, detalhando o modelo f´ısico de cˆamera e as restric¸˜oes
desenvolvidas para a obtenc¸˜ao das tomadas de cena. A se-guir, descrevemos a interface externa do m´odulo proposto. Na sec¸˜ao 5 s˜ao apresentados os resultados obtidos com o m´odulo, exemplificando a obtenc¸˜ao de tomadas de cena ins-piradas na cinematografia com o uso do m´odulo proposto. Por fim, na sec¸˜ao 6, apresentamos nossas conclus˜oes.
2
Trabalhos Relacionados
Otten [9] e Druker et al. [2] analisaram a viabilidade de se explorar a transmiss˜ao de jogos eletrˆonicos da mesma forma que s˜ao transmitidos eventos esportivos, identifi-cando a existˆencia dos espectadores de jogos, definindo a infra-estrutura necess´aria e o apelo comercial destas trans-miss˜oes.
Para a adaptac¸˜ao da linguagem cinematogr´afica em am-bientes virtuais dinˆamicos, podemos identificar duas li-nhas de pesquisa distintas. Na primeira, utiliza-se um conjunto pr´e-definido de linguagens cinematogr´aficas que determinam o posicionamento das cˆameras, tais como as linguagens utilizadas em di´alogos entre dois personagens, aproximac¸˜ao de personagens, perseguic¸˜oes de carro, etc. Para cada uma destas linguagens, prevˆe-se a utilizac¸˜ao de um determinado n´umero de cˆameras com posicionamento pr´e-estabelecido. Em tempo real, o sistema identifica a lin-guagem cinematogr´afica a ser utilizada e tenta posicionar as cˆameras especificadas. He et al. [6] organizaram as linguagens cinematogr´aficas como n´os de uma ´arvore, em que cada linguagem funciona como uma m´aquina de estado. Amerson e Kime [1] desenvolveram a linguagem FILM que tamb´em se utiliza de uma ´arvore para descrever as lingua-gens cinematogr´aficas. Apesar de conseguir dar um melhor aspecto cinematogr´afico `a cena por utilizar uma linguagem com a qual o espectador j´a est´a acostumado, os modelos propostos se mostram muito r´ıgidos quanto ao posiciona-mento de cˆamera, muitas vezes n˜ao conseguindo encontrar um posicionamento satisfat´orio que atenda `as exigˆencias da linguagem cinematogr´afica em uso.
Na segunda linha de pesquisa, encontram-se os trabalhos que buscam utilizar apenas os conceitos b´asicos da cine-matografia, em vez de linguagens nas quais a seq¨uˆencia de tomadas j´a est´a pr´e-estabelecida. Drucker [3] define uma s´erie de restric¸˜oes ligadas a conceitos da cinematografia e tenta posicionar a cˆamera de forma que as restric¸˜oes im-postas sejam atendidas. Halper et al. [4] utilizam uma metodologia similar, procurando explorar a coerˆencia entre quadros consecutivos. Estas propostas tendem a ser mais flex´ıveis pois n˜ao se pr´e-estabelece o posicionamento de cˆamera. As restric¸˜oes guiam a cˆamera para uma tomada de acordo com a cinematografia respeitando o ambiente vir-tual da cena. No entanto, o sistema proposto por Halper et al. n˜ao ´e extens´ıvel, sendo dif´ıcil a inclus˜ao de novos tipos de restric¸˜oes, e o sistema proposto por Drucker apresenta
instabilidade no posicionamento da cˆamera.
Neste trabalho, optamos por seguir esta segunda linha de pesquisa e propomos o uso de um modelo f´ısico para representar a cˆamera. Todas as restric¸˜oes s˜ao tratadas de forma independente dentro do mesmo modelo f´ısico, sendo poss´ıvel a inserc¸˜ao de novos tipos de restric¸˜oes e a livre composic¸˜ao de restric¸˜oes para a realizac¸˜ao de uma tomada de cˆamera. A estabilidade do sistema ´e alcanc¸ada com o uso do m´etodo de relaxac¸˜ao para a atender `as restric¸˜oes im-postas ao modelo.
3
M´odulo cinegrafista
O m´odulo proposto neste trabalho parte do conceito apresentado por Drucker [3] sobre o uso de restric¸˜oes que, agrupadas, conseguem produzir o posicionamento e o mo-vimento de cˆamera esperado. Assim como Halper et al. [4], assumimos que a aplicac¸˜ao ter´a uma alta taxa de quadros por segundo e que a soluc¸˜ao para o sistema n˜ao precisa ser ´otima, mas apenas satisfat´oria. A cˆamera ´e modelada por um sistema de part´ıculas com restric¸˜oes. Inspirados pelo trabalho de Jakobsen [8], utilizamos o m´etodo de integrac¸˜ao Verlet [11] para evoluir o sistema e o m´etodo de relaxac¸˜ao [10] para satisfazer as restric¸˜oes. Uma vez encontrado o novo estado da cˆamera, as restric¸˜oes s˜ao avaliadas quanto a seu atendimento e os parˆametros da cˆamera s˜ao atualizados de acordo com o novo estado do modelo f´ısico. A Figura 2 ilustra o funcionamento do m´odulo cinegrafista proposto.
Figura 2. Funcionamento do m ´odulo cinegra-fista
3.1
Modelo de cˆamera
A cˆamera ´e descrita por um conjunto de part´ıculas co-nectadas por barras r´ıgidas. O sistema evolui submetido a um conjunto de restric¸˜oes, podendo-se aplicar forc¸as exter-nas. O uso de um modelo f´ısico para descrever a cˆamera n˜ao
significa simular o comportamento de uma cˆamera real, mas se valer dos princ´ıpios da f´ısica para ajudar na resoluc¸˜ao do sistema. O uso de um modelo f´ısico para a definic¸˜ao dos parˆametros da cˆamera torna o sistema mais vers´atil, por permitir a adic¸˜ao de forc¸as externas que alterem o com-portamento da cˆamera (por exemplo, forc¸as gravitacionais, forc¸as de amortecimento e forc¸as de atrito).
Uma cˆamera virtual possui sete parˆametros de configurac¸˜ao: posic¸˜ao, direc¸˜ao, up, fovy, aspect, znear e zfar. O modelo de cˆamera proposto ´e composto por cinco part´ıculas conectadas por barras r´ıgidas. Cinco dos parˆametros da cˆamera, excetuando-se os parˆametros znear e zfar, s˜ao extra´ıdos a partir do posicionamento das part´ıculas. Um valor dist ´e passado ao modelo de cˆamera como a distˆancia 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 ˜ao frontal, lateral e sob perspec-tiva do modelo de c ˆamera.
A traduc¸˜ao do posicionamento das part´ıculas para os parˆametros de uma cˆamera virtual se d´a de acordo com as equac¸˜oes abaixo: ~ pos = ~p0 (1) ~ up = ( ~ p4 + ~p3 2 ) − ( ~ p2 + ~p1 2 ), up =c ~ up k ~upk (2) ~ dx = (p2 + ~~ p4 2 ) − ( ~ p1 + ~p3 2 ), dx =c ~ dx k ~dxk c dir =up × cc dx (3) f ovy = arctan( k ~dxk 2 · znear) (4) aspect = k ~dxk k ~upk (5)
3.2
Restric¸˜oes
Cada restric¸˜ao inserida no sistema ´e satisfeita de forma independente, alterando apenas o posicionamento das part´ıculas diretamente relacionadas com a restric¸˜ao em quest˜ao. Isso significa que uma restric¸˜ao altera o modelo da cˆamera sem se preocupar com a qualidade do sistema como um todo, mas buscando apenas satisfazer a si pr´opria. O uso de restric¸˜oes que atuem de forma simples e inde-pendente se traduz num sistema eficiente e flex´ıvel, pois novas restric¸˜oes podem ser adicionadas livremente ao sis-tema. A convergˆencia do sistema se d´a atrav´es do m´etodo de relaxac¸˜ao: o conjunto de restric¸˜oes aplicadas ao modelo, incluindo suas restric¸˜oes de barras r´ıgidas impl´ıcitas, s˜ao satisfeitas por um processo iterativo. A alta taxa de quadros da aplicac¸˜ao assegura a convergˆencia do sistema como um todo.
Atrav´es da composic¸˜ao de restric¸˜oes simples, consegue-se a criac¸˜ao de uma grande variedade de movimentos de cˆamera. Algumas das restric¸˜oes j´a incorporadas ao sistema s˜ao descritas a seguir.
Barra R´ıgida A restric¸˜ao de barra r´ıgida define uma distˆancia m´ınima e m´axima entre duas part´ıculas. O pr´oprio modelo f´ısico da cˆamera utiliza esta restric¸˜ao para definir os espac¸amentos entre as part´ıculas (com valores m´ınimos e m´aximos iguais).
Uma barra r´ıgida conecta duas part´ıculas, cada uma possuindo uma massa. Se as part´ıculas estiverem fora da distˆancia exigida, elas s˜ao aproximadas ou afasta-das proporcionalmente `a sua massa a fim de atender a restric¸˜ao. A Figura 4 ilustra o procedimento de aten-dimento `a restric¸˜ao de uma barra formada por duas part´ıculas de massas iguais.
(a) (b) (c)
Figura 4. Restric¸ ˜ao de barra r´ıgida: (a) barra n ˜ao atendendo `a restric¸ ˜ao; (b) transformac¸ ˜ao do estado inv ´alido da barra para o estado v ´alido; (c) restric¸ ˜ao satisfeita
Posicionamento em um volume A restric¸˜ao de posiciona-mento em um volume fixa uma part´ıcula dentro de um volume. Quando aplicada `a part´ıcula p0 do modelo de cˆamera, forc¸a a cˆamera a atuar sempre posicionada dentro de um volume, ´area ou ponto espec´ıfico do am-biente.
O funcionamento da restric¸˜ao verifica se a part´ıcula p0 do modelo de cˆamera est´a dentro do volume especi-ficado e, se n˜ao estiver, a part´ıcula ´e arrastada para a borda mais pr´oxima do volume. A Figura 5 ilustra o modelo de cˆamera atendendo `a restric¸˜ao. Note que o posicionamento das demais part´ıculas ´e inalterado, devido `a independˆencia no tratamento das restric¸˜oes. As restric¸˜oes de barra r´ıgida contidas no modelo de cˆamera se responsabilizam por tornar v´alido o estado final do modelo.
(a) (b) (c)
Figura 5. Restric¸ ˜ao de posicionamento em vo-lume: (a) c ˆamera n ˜ao atendendo `a restric¸ ˜ao; (b) transformac¸ ˜ao do estado inv ´alido para o estado v ´alido; (c) c ˆamera com a restric¸ ˜ao sa-tisfeita.
Enquadramento A restric¸˜ao de enquadramento posiciona um objeto em uma ´area espec´ıfica da tela rotacionando o modelo de cˆamera em torno de um eixo escolhido. A escolha do eixo de rotac¸˜ao permite que dois objetos sejam enquadrados simultaneamente na tela.
Para enquadrar um primeiro objeto na ´area da tela, ro-tacionamos o modelo em torno da part´ıcula p0. Para conseguir o enquadramento de um segundo objeto sem perder o enquadramento do primeiro, o modelo ´e rota-cionado em relac¸˜ao `a posic¸˜ao do primeiro objeto. Direc¸˜ao de um objeto A restric¸˜ao de direc¸˜ao de um
ob-jeto posiciona a cˆamera em relac¸˜ao `a direc¸˜ao para a qual um objeto est´a voltado. Dessa forma ´e poss´ıvel, por exemplo, colocar a cˆamera atr´as de um objeto. A restric¸˜ao ´e atendida arrastando a part´ıcula p0 para uma ´area que satisfac¸a a restric¸˜ao.
Colis˜ao A restric¸˜ao de colis˜ao impede que a cˆamera co-lida com o cen´ario. A cˆamera possui um volume en-volvente definido por uma esfera centrada na posic¸˜ao
p0 + cdir · znear. O diˆametro da esfera ´e definido
a partir dos planos do frustum de vis˜ao (up, bottom,
lef t, right, znear e zf ar) e ´e formado pela diagonal
do quadril´atero extra´ıdo da intersec¸˜ao do plano znear com os planos up, bottom, lef t e right. A detecc¸˜ao de colis˜ao define o quanto e em que direc¸˜ao houve a colis˜ao, e a reac¸˜ao `a colis˜ao arrasta as part´ıculas do modelo de cˆamera na direc¸˜ao contr´aria `a direc¸˜ao de colis˜ao.
Visibilidade A restric¸˜ao de visibilidade impede que o vo-lume envolvente de um objeto fique encoberto pelo cen´ario, desviando a cˆamera quando o cen´ario impede a visualizac¸˜ao do objeto de interesse.
Para encontrar uma soluc¸˜ao que satisfac¸a a restric¸˜ao de visibilidade, s˜ao lanc¸ados raios em direc¸˜ao ao ob-jeto de interesse a partir da posic¸˜ao da part´ıcula p0 do modelo de cˆamera. Primeiro, lanc¸am-se raios conside-rando apenas o objeto de interesse. A seguir, os mesmo raios s˜ao lanc¸ados considerando o cen´ario sem o ob-jeto de interesse. Os raios retornam a distˆancia entre a part´ıcula e o objeto de interesse ou a cena. A partir des-sas duas distˆancias, ´e poss´ıvel determinar se o ponto do objeto de interesse atingido pelo raio est´a vis´ıvel pela cˆamera.
Considerando-se apenas os raios interceptados pelo cen´ario, calcula-se o centro geom´etrico dos pontos de intersec¸˜ao (raio contra cen´ario). A restric¸˜ao de visi-bilidade opta por mover a part´ıcula p0 do modelo de cˆamera na menor distˆancia poss´ıvel para tirar esse cen-tro geom´etrico da ´area visualizada do objeto de inte-resse. A restric¸˜ao tende a ser satisfeita repetindo este procedimento diversas vezes.
Al´em das restric¸˜oes citadas, foram incorporadas ao sis-tema proposto restric¸˜oes de posicionamento em segmento de reta, orientac¸˜ao, fov, velocidade de translac¸˜ao, veloci-dade de rotac¸˜ao, velociveloci-dade do fov, distˆancia de um objeto, tamanho na tela e respeito `a linha de ac¸˜ao. Detalhes quanto ao funcionamento das restric¸˜oes podem ser encontrados em [7].
4
Interface externa
A configurac¸˜ao de um comportamento de cˆamera ´e feita atrav´es do agrupamento de restric¸˜oes de acordo com a ne-cessidade do m´odulo diretor/editor. Dois parˆametros s˜ao comuns a todas as restric¸˜oes: prioridade, respons´avel por estabelecer uma relac¸˜ao de importˆancia entre as restric¸˜oes; e valor de referˆencia, respons´avel por definir uma margem de tolerˆancia quanto ao atendimento da restric¸˜ao, possibili-tando que o m´odulo cinegrafista analise o quanto a restric¸˜ao est´a sendo atendida.
4.1
Prioridade
Ao agrupar as restric¸˜oes em busca de uma determinada configurac¸˜ao de cˆamera, certas restric¸˜oes possuem um grau de importˆancia maior que outras. Por exemplo, as barras r´ıgidas que formam o modelo da cˆamera devem ter uma pri-oridade de atendimento maior do que restric¸˜oes como de enquadramento, uma vez que se n˜ao forem satisfeitas o mo-delo de cˆamera se tornar´a inv´alido.
O valor de prioridade cria uma relac¸˜ao entre as restric¸˜oes, e seu uso se d´a da seguinte forma: uma vez cal-culado o quanto a restric¸˜ao dever´a alterar o estado do mo-delo, esse valor ´e multiplicado pelo valor da prioridade da restric¸˜ao, que varia de 0 a 1. Dessa forma, restric¸˜oes de baixa prioridade levam um n´umero maior de iterac¸˜oes para serem satisfeitas, enquanto restric¸˜oes com altos valores de prioridade s˜ao atendidas em poucas iterac¸˜oes. Valores de prioridade mais baixos tamb´em suavizam o movimento da cˆamera, enquanto valores mais altos tornam os movimentos mais bruscos.
4.2
Valor de referˆencia
O m´odulo cinegrafista precisa ser capaz de analisar o atendimento `as restric¸˜oes impostas, repassando essa informac¸˜ao ao diretor/editor. Dessa forma, o m´odulo dire-tor/editor consegue avaliar se as restric¸˜oes definidas por ele devem permanecer como est˜ao ou se a configurac¸˜ao atual deve ser alterada.
A utilizac¸˜ao de um valor de referˆencia permite que o m´odulo cinegrafista dˆe uma resposta linear (0 a 1) quanto ao atendimento da restric¸˜ao. O valor 1 indica que a restric¸˜ao foi atendida; o valor 0 indica que a restric¸˜ao n˜ao foi aten-dida mesmo considerando a tolerˆancia definida pelo valor de referˆencia.
Al´em do valor de resposta de cada restric¸˜ao, ´e retornado ao m´odulo diretor/editor um valor de resposta global, base-ado nas respostas de todas as restric¸˜oes. Esse valor ´e cal-culado atrav´es de uma m´edia ponderada que se utiliza da prioridade de cada uma das restric¸˜oes impostas.
5
Resultados
Nesta sec¸˜ao, analisaremos o funcionamento do m´odulo cinegrafista proposto. Foram realizados dois tipos de testes para a avaliac¸˜ao do m´odulo cinegrafista. O primeiro corres-ponde a uma an´alise do custo computacional de cada uma das restric¸˜oes, assim como uma an´alise da variac¸˜ao do custo computacional total referente `a adic¸˜ao de restric¸˜oes no sis-tema. O segundo teste consiste em verificar se o m´odulo cinegrafista ´e capaz de posicionar a cˆamera de maneira sa-tisfat´oria e se as restric¸˜oes implementadas conseguem criar, atrav´es de seus agrupamentos, os movimentos de cˆamera es-perados. A seguir, ´e explicado como cada um desses testes foi desenvolvido.
5.1
An´alise de Desempenho
O c´alculo do custo computacional do m´odulo cinegra-fista n˜ao pode ser feito a partir de uma configurac¸˜ao es-pec´ıfica. Como o m´odulo ´e configurado a partir de uma
composic¸˜ao qualquer de restric¸˜oes, primeiramente propo-mos uma an´alise de desempenho do pior caso para cada restric¸˜ao em separado. O pior caso de uma restric¸˜ao ocorre quando a cˆamera n˜ao atende `as definic¸˜oes da restric¸˜ao, isto ´e, a restric¸˜ao forc¸a um reposicionamento da cˆamera.
A Figura 6 apresenta um gr´afico do custo computaci-onal m´edio em milissegundos de cada restric¸˜ao. Para a obtenc¸˜ao dos valores, foi utilizado um computador Pentium IV 2.4Ghz com 512Mb de mem´oria RAM e retirada a m´edia do tempo gasto para a restric¸˜ao atuar dez mil vezes em seu pior caso. Salientamos que o custo das restric¸˜oes de oclus˜ao e colis˜ao depende da complexidade do sistema. Neste ex-perimento computacional, o ambiente externo utilizado foi muito simples, definido apenas por duas esferas. O gr´afico demonstra o alto custo relativo destas restric¸˜oes em relac¸˜ao `as demais.
Figura 6. Custo individual de cada restric¸ ˜ao A partir do custo m´edio por iterac¸˜ao de cada restric¸˜ao, ´e poss´ıvel avaliar um custo aproximado do m´odulo como um todo. A func¸˜ao de custo se baseia no n´umero de iterac¸˜oes do sistema (nItr), no custo de cada uma das restric¸˜oes adi-cionadas (ri) e no custo das dez restric¸˜oes de barras r´ıgidas
que pertencem ao modelo f´ısico (stick) da cˆamera. Como os custos utilizados correspondem ao custo de pior caso, a func¸˜ao do custo do m´odulo tamb´em se refere ao seu pior caso. A equac¸˜ao 6 permite calcular um valor m´aximo do custo computacional total esperado do m´odulo com dife-rentes restric¸˜oes.
custo = nItr · (10 · stick +
k
X
i=1
ri) (6)
Com o objetivo de validar a f´ormula acima, foi realizado um experimento comparando o custo calculado com o custo
real. O custo real foi calculado posicionando a cˆamera em um estado no qual nenhuma restric¸˜ao estivesse sendo aten-dida, e a partir da´ı foi calculado o custo computacional da execuc¸˜ao das nItr iterac¸˜oes. A Figura 7 permite observar que o custo real acompanha o crescimento do custo cal-culado `a medida que novas restric¸˜oes s˜ao adicionadas ao m´odulo. Dessa forma, ´e poss´ıvel fazer uma aproximac¸˜ao do custo computacional real do m´odulo a partir do conheci-mento dos custos individuais das restric¸˜oes e do n´umero to-tal de iterac¸˜oes do sistema. Com isto, pode-se prever um li-mite m´aximo do tempo necess´ario para posicionar a cˆamera no ambiente virtual seguindo as regras impostas.
Figura 7. Comparac¸ ˜ao entre custo real e custo calculado
A partir dos desempenhos constatados, podemos con-cluir que, para a cena com baixa complexidade utilizada no experimento, o posicionamento da cˆamera pode ser feito de forma eficiente.
5.2
Exemplos de configurac¸˜oes de cˆamera
Para exemplificar o uso do m´odulo cinegrafista pro-posto, foram criados modelos de movimentac¸˜ao de cˆamera. O resultado alcanc¸ado demonstra que a composic¸˜ao de restric¸˜oes simples ´e capaz de realizar configurac¸˜oes de cˆamera usualmente encontradas na cinematografia e nos jo-gos eletrˆonicos.
Fixa Este experimento consiste em posicionar a cˆamera em um local fixo na cena e enquadrar um determinado ob-jeto no centro da tela.
Para criar esta configurac¸˜ao foi adicionada uma restric¸˜ao de Posicionamento em um volume com pri-oridade 1.0 que fixa a cˆamera em uma posic¸˜ao, uma restric¸˜ao de Enquadramento com prioridade 0.05 que forc¸a o objeto a aparecer sempre no meio da tela, e uma restric¸˜ao de Orientac¸˜ao com prioridade 0.9 que fixa o up da cˆamera. O uso de uma baixa prioridade para a
restric¸˜ao de enquadramento permitiu que a cˆamera as-sumisse um movimento mais suave, criando um atraso na rotac¸˜ao da cˆamera em relac¸˜ao `a movimentac¸˜ao do objeto.
Sobre trilhos Esta configurac¸˜ao posiciona a cˆamera sobre uma linha, procurando manter uma distˆancia m´ınima de um objeto que deve sempre ser enquadrado no centro da tela. Movimentos como este s˜ao utiliza-dos quando se procura seguir um determinado objeto, como em transmiss˜oes de determinados jogos esporti-vos, como o futebol (Figura 8).
Este movimento foi realizado adicionando uma restric¸˜ao de Posicionamento em segmento de reta(prioridade 0.5) al´em de restric¸˜oes quanto `a Velocidade de translac¸˜ao(0.9), Orientac¸˜ao(0.9), Velocidade de rotac¸˜ao(0.2), Enquadramento(0.1), Visibilidade(0.5) e Distˆancia de um objeto(0.2).
(a)
(b)
Figura 8. Posicionamento de c ˆamera sobre trilho: `a esquerda a vista da c ˆamera e `a direita uma vista superior incluindo a representac¸ ˜ao gr ´afica do frustum de vis ˜ao. Note que nas extremidades do segmento de reta que re-presenta o trilho a c ˆamera ´e rotacionada para enquadrar o personagem
Sobre os ombros A cˆamera sobre os ombros ´e muito uti-lizada em jogos com visualizac¸˜ao de terceira pessoa. Consiste em posicionar a cˆamera sempre atr´as de um
objeto, deixando-o levemente deslocado do centro da tela. A Figura 9 ilustra uma tomada de cena com esta configurac¸˜ao.
Esta configurac¸˜ao foi conseguida atrav´es da adic¸˜ao de restric¸˜oes de Orientac¸˜ao(0.9), para n˜ao alterar a direc¸˜ao up da cˆamera; Distˆancia de um objeto(0.1), para a cˆamera seguir o objeto; Direc¸˜ao de um ob-jeto(0.01), para manter a cˆamera atr´as do objeto; En-quadramento(0.5), para enquadrar o objeto deslocado do centro da tela; e Colis˜ao(0.05), para evitar que a cˆamera colida com a cena. O uso de uma esfera envol-vente na restric¸˜ao de colis˜ao permite detectar a colis˜ao antes do plano de projec¸˜ao da cˆamera (znear) entrar em colis˜ao com o cen´ario. Isto permite que valores mais baixos de prioridade sejam utilizados na restric¸˜ao de colis˜ao, criando uma desacelerac¸˜ao da cˆamera `a me-dida que esta se aproxima de um obst´aculo.
(a)
(b)
Figura 9. Posicionamento de c ˆamera sobre os ombros: `a esquerda a vista da c ˆamera e `a direita uma vista superior incluindo a representac¸ ˜ao gr ´afica do frustum de vis ˜ao.
6
Conclus˜oes
O m´odulo cinegrafista proposto neste trabalho permi-tiu o posicionamento autom´atico de cˆamera em ambi-entes virtuais dinˆamicos. A utilizac¸˜ao de um modelo
f´ısico para descrever a cˆamera, com o uso do m´etodo de integrac¸˜ao Verlet e da t´ecnica de relaxac¸˜ao, se mos-trou adequada ao problema, resultando num sistema eficiente, eficaz e est´avel. O uso de restric¸˜oes indepen-dentes se relacionando atrav´es de valores de priorida-des permitiu a obtenc¸˜ao de diversas configurac¸˜oes de cˆamera baseada em agrupamentos de restric¸˜oes sim-ples. Resultados experimentais demonstram a capa-cidade do modelo proposto de simular diversas toma-das de cenas com base na cinematografia, para cˆameras voltadas tanto para os jogadores quanto para os espec-tadores.
7
Agradecimentos
Durante o desenvolvimento desta pesquisa, o pri-meiro autor recebeu aux´ılio financeiro da CAPES (Coordenac¸˜ao de Aperfeic¸oamento de Pessoal de N´ıvel Superior).
Referˆencias
[1] Amerson, Daniel and Kime, Shaun Real-time Ci-nematic Camera Control for Interactive Narrati-ves, American Association for Artificial Intellin-gence, pp. 1-4, 2000.
[2] Drucker, Steven and He, Li and Cohen, Michael and Wong, Curtis and Gupta, Anoop Specta-tor Games: A New Entertainment Modality For Networked Multiplayer Games, Microsoft Rese-arch, 2002.
[3] Drucker, Steven Intelligent Camera Control for Graphical Environments, PhD Thesis, MIT Me-dia Lab, 1994.
[4] Halper, Niclas and Helbing, Ralf and Strothotte, Thomas A Camera Engine for Computer Ga-mes: Managing the Trade-off Between Cons-traint Satisfaction and Frame Coherence, In Pro-ceedings of EUROGRAPHICS, Vol. 20, pp. 174-183, 2001.
[5] Hawkins, Brian Creating an event-driven cine-matic 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 Direc-ting, In Proceedings of SIGGRAPH ’96, pp. 217-224, 1996.
[7] Hermann, Rodrigo Controle Autom´atico de Cˆamera em Ambientes Virtuais Dinˆamicos,
Dissertac¸˜ao de Mestrado, Departamento de In-form´atica, 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 classi-cal fluids. I. Thermodynamiclassi-cal properties of Lennard-Jones molecules, Phys. Rev., Vol. 159. pp. 98-105, 1967.