Animação baseada fisicamente - Physically based animation

A animação com base física é uma área de interesse dentro da computação gráfica preocupada com a simulação de comportamentos fisicamente plausíveis em taxas interativas. Os avanços na animação com base física são frequentemente motivados pela necessidade de incluir comportamentos complexos e inspirados fisicamente em videogames, simulações interativas e filmes. Embora existam métodos de simulação off-line para resolver a maioria dos problemas estudados na animação baseada em física, esses métodos são destinados a aplicativos que requerem precisão física e cálculos lentos e detalhados. Em contraste com os métodos comuns na simulação off-line, as técnicas de animação com base física estão preocupadas com a plausibilidade física, estabilidade numérica e apelo visual sobre a precisão física. A animação com base física costuma ser limitada a aproximações vagas de comportamentos físicos, devido às rígidas restrições de tempo impostas por aplicativos interativos. A taxa de quadros alvo para aplicativos interativos, como jogos e simulações, é frequentemente de 25-60 hertz , com apenas uma pequena fração do tempo alocado para um quadro individual restante para simulação física. Modelos simplificados de comportamentos físicos são geralmente preferidos se forem mais eficientes, mais fáceis de acelerar (por meio de pré-cálculo, estruturas de dados inteligentes ou SIMD / GPGPU ) ou satisfizerem propriedades matemáticas desejáveis ​​(como estabilidade incondicional ou conservação de volume quando um corpo mole sofre deformação). Os detalhes finos não são importantes quando o objetivo primordial de uma visualização é o apelo estético ou a manutenção da imersão do jogador, uma vez que esses detalhes são frequentemente difíceis de serem notados pelos humanos ou impossíveis de distinguir em escalas humanas.

História

A animação de base física agora é comum em filmes e videogames, e muitas técnicas foram pioneiras durante o desenvolvimento das primeiras cenas de efeitos especiais e motores de jogos. Star Trek II: The Wrath of Khan é famoso por usar sistemas de partículas na cena da explosão do Gênesis para criar o efeito visual de uma onda de choque em chamas envolvendo um planeta. Apesar de ter sido lançado antes que os motores de física fossem uma característica comum em jogos, System Shock incorporou física de corpo rígido em seu motor e foi amplamente considerado inovador por esse recurso e pelo novo senso de interação que proporcionava aos jogadores. Posteriormente, a Valve desenvolveu o Half-Life e usou a física do corpo rígido para criar quebra-cabeças ambientais para o jogador, como obstáculos que não poderiam ser alcançados sem empilhar caixas. O Half-Life 2 apresentou um mecanismo de física mais avançado que incorporou sistemas restritos, como polias ou alavancas, com mais quebra-cabeças ambientais para mostrar esses recursos. Os motores de física são agora muito mais comuns em jogos e seu aparecimento frequente tem motivado pesquisas em animação baseada em física por empresas como a Nvidia .

Animação baseada fisicamente em jogos e simulações

Animação de base física é comum em jogos e simulações onde os usuários têm a expectativa de interação com o ambiente. Mecanismos de física como Havok , PhysX e Bullet existem como produtos desenvolvidos separadamente para serem licenciados e incluídos nos jogos. Em jogos como Angry Birds ou World of Goo , a animação baseada em física é a mecânica principal do jogo e os jogadores devem interagir ou criar sistemas simulados fisicamente para atingir seus objetivos. Aspectos de jogos de quebra-cabeça de física existem em muitos jogos que pertencem a outros gêneros, mas apresentam simulação baseada em física. Permitir a interação física com o ambiente por meio de animação baseada em física promove soluções não lineares para os quebra-cabeças dos jogadores e pode, às vezes, resultar em soluções para problemas apresentados em jogos que não foram incluídos deliberadamente pelos designers de nível. Simulações utilizadas para fins diferentes do entretenimento, como simulações militares, também fazem uso de animação de base física para retratar situações realistas e manter a imersão dos usuários. Muitas técnicas de animação com base física são projetadas com implementações de GPGPU em mente ou podem ser estendidas para se beneficiar do hardware gráfico, que pode ser usado para fazer simulações com base física rápidas o suficiente para jogos. O tempo da GPU geralmente é reservado para renderização, no entanto, e as transferências frequentes de dados entre o host e o dispositivo podem facilmente se tornar um gargalo para o desempenho.

Animação de base física em filmes

As simulações podem ser realizadas offline (independentemente de quando são visualizadas) no desenvolvimento de efeitos especiais para filmes. A velocidade, portanto, não é estritamente uma necessidade na produção de efeitos especiais, mas ainda é desejável para um feedback razoavelmente responsivo e porque o hardware necessário para métodos mais lentos é mais caro. No entanto, a animação com base física ainda é preferida porque métodos mais lentos e precisos podem ser caros e limitantes. A precisão física de pequenos detalhes em um efeito especial não é significativa para seu apelo visual, restringe a quantidade de controle que artistas e diretores podem exercer sobre o comportamento e aumenta o custo monetário e o tempo necessário para atingir os resultados. É necessário ser capaz de ditar o comportamento de alto nível dos efeitos inspirados fisicamente em filmes para atingir uma direção artística desejada, mas roteirizar comportamentos físicos no nível de pequenos detalhes pode ser inviável quando fluidos, fumaça ou muitos objetos individuais são envolvidos. A animação com base física geralmente oferece mais controle do artista sobre a aparência dos resultados simulados e também é mais conveniente quando os efeitos desejados podem distorcer ou desafiar a física.

Subtópicos

Simulação de corpo rígido

A física simplificada do corpo rígido é relativamente barata e fácil de implementar, razão pela qual apareceu em jogos interativos e simulações antes da maioria das outras técnicas. Assume-se que os corpos rígidos não sofrem nenhuma deformação durante a simulação, de modo que o movimento do corpo rígido entre as etapas de tempo pode ser descrito como uma translação e rotação, tradicionalmente usando transformações afins armazenadas como matrizes 4x4. Alternativamente, quatérnions podem ser usados ​​para armazenar rotações e vetores podem ser usados ​​para armazenar os objetos deslocados da origem. Os aspectos computacionalmente mais caros da dinâmica do corpo rígido são a detecção de colisão , a correção da interpenetração entre os corpos e o ambiente e o manuseio do contato de repouso. Corpos rígidos são comumente simulados iterativamente, com rastreamento posterior para corrigir erros usando etapas de tempo menores. O contato em repouso entre vários corpos rígidos (como é o caso quando os corpos rígidos caem em pilhas ou são empilhados) pode ser particularmente difícil de manusear de forma eficiente e pode exigir contato complexo e gráficos de propagação de choque, a fim de resolver usando métodos baseados em impulso. Ao simular um grande número de corpos rígidos, geometrias simplificadas ou cascos convexos são frequentemente usados ​​para representar seus limites com o propósito de detecção de colisão e resposta (uma vez que este é geralmente o gargalo na simulação).

Simulação de corpo macio

Corpos macios podem ser facilmente implementados usando sistemas de malha de mola. Os sistemas de malha de mola são compostos de partículas simuladas individualmente que são atraídas umas às outras por forças de mola simuladas e experimentam resistência de amortecedores simulados. Geometrias arbitrárias podem ser simuladas mais facilmente aplicando forças de mola e amortecedor aos nós de uma rede e deformando o objeto com a rede. No entanto, soluções explícitas para esses sistemas não são numericamente estáveis ​​e são extremamente difíceis de controlar o comportamento dos parâmetros de mola. Técnicas que permitem corpos macios fisicamente plausíveis e visualmente atraentes, são numericamente estáveis ​​e podem ser bem configuradas por artistas eram proibitivamente caras no início da história dos jogos, razão pela qual corpos macios não eram tão comuns quanto corpos rígidos. A integração usando métodos Runge-Kutta pode ser usada para aumentar a estabilidade numérica de técnicas instáveis, como malhas de mola ou etapas de tempo mais finas, podem ser usadas para simulação (embora isso seja mais caro e não possa tornar as malhas de mola estáveis ​​para forças arbitrariamente grandes). Técnicas como correspondência de forma e dinâmica baseada em posição tratam desses problemas com jogos interativos e simulações em mente. A dinâmica baseada em posição é usada em motores de jogo convencionais, como Bullet (software) , Havok e PhysX . Estabilidade incondicional e facilidade de configuração são propriedades particularmente desejáveis ​​de simulações de corpo mole que podem ser difíceis de alcançar com sistemas de malha de mola, embora ainda sejam frequentemente usados ​​em jogos por causa de sua simplicidade e velocidade.

Simulação de Fluido

A dinâmica de fluidos computacional pode ser cara e as interações entre vários corpos fluidos ou com objetos / forças externas podem exigir lógica complexa para avaliação. A simulação de fluidos é geralmente obtida em videogames simulando apenas a altura de corpos d'água para criar o efeito de ondas, ondulações ou outras características da superfície. Para corpos de líquido relativamente livres, métodos Lagrangianos ou semilagrangianos são freqüentemente usados ​​para acelerar a simulação tratando as partículas como elementos finitos de fluido (ou portadores de propriedades físicas) e aproximando as equações de Navier-Stokes . É incomum simular corpos de fluido em jogos, embora recursos de superfície possam ser simulados usando métodos semelhantes e simulações de fluido possam ser usadas para gerar texturas ou campos de altura para renderizar água em tempo real sem simulação em tempo real (isso é comumente feito para grandes massas de água em jogos). As simulações de fluidos podem ser calculadas usando hardware gráfico de commodity por meio de GPGPU , e os campos de altura podem ser calculados de forma eficiente, resultando em comportamento de onda usando métodos Lattice Boltzmann . Alternativamente, recursos de superfície e ondas podem ser simulados como partículas e um campo de altura gerado a partir das partículas simuladas em tempo real. Isso também permite uma interação bidirecional eficiente entre os objetos fluidos e flutuantes.

Sistemas de Partículas

Os sistemas de partículas são uma técnica extremamente popular para a criação de efeitos visuais em filmes e jogos devido à sua facilidade de implementação, eficiência, extensibilidade e controle do artista. O ciclo de atualização de sistemas de partículas geralmente consiste em três fases: geração, simulação e extinção. Essas fases consistem, respectivamente, na introdução de novas partículas, simulando-as no próximo passo de tempo e removendo as partículas que excederam seu tempo de vida. Os atributos físicos e visuais das partículas são geralmente randomizados na geração com o alcance e distribuição dos atributos controlados pelo artista. Os sistemas de partículas podem ainda ser feitos para gerar os próprios sistemas de partículas para criar efeitos mais complexos e dinâmicos, e seu comportamento de alto nível pode ser coreografado por meio de uma estrutura de operadores como no artigo canônico do Sims. Os primeiros jogos que renderizavam sistemas de partículas sofriam de artefatos de recorte quando as partículas cruzavam parcialmente a geometria no ambiente, e esse artefato era especialmente perceptível para partículas grandes (que costumavam ser usadas para substituir a fumaça). As partículas suaves tratam desses artefatos por meio de sombreamento cuidadoso e manipulação da transparência das partículas, de forma que as partículas se tornem mais transparentes à medida que se aproximam das superfícies.

Reunindo-se

Na animação de base física, flocking se refere a uma técnica que modela o comportamento complexo de pássaros, cardumes de peixes e enxames de insetos usando forças virtuais. Essas forças virtuais simulam a tendência dos bandos de centralizar suas velocidades, evitar colisões e aglomeração e se mover em direção ao grupo. Nessas simulações, os membros individuais do bando (às vezes chamados de boids, abreviatura de bird-oid) agem sem colaboração, usando apenas informações sobre a posição e a velocidade de seus pares para criar a ilusão de comportamento de grupo sincronizado com eficiência. Flocking também pode ser usado para aproximar eficientemente o comportamento de multidões de humanos, e métodos baseados em flocking são freqüentemente usados ​​para multidões de NPCs em jogos. Unreal e Half-Life estiveram entre os primeiros jogos a implementar o flocking, que foi usado para modelar o comportamento de pássaros e criaturas voadoras presentes em níveis ao ar livre.

Animação de personagens com base física

Personagens em jogos e simulações são tradicionalmente animados por meio de métodos como keyframing, que definem animações por meio de composições de movimentos estáticos menores sequenciados para transmitir um comportamento mais complexo. Visualmente, esses métodos estáticos não podem transmitir facilmente interações complexas com o ambiente e dificultam o movimento realista dos personagens. As técnicas de animação de personagens com base física alcançam animações dinâmicas que respondem à interação do usuário, eventos externos e o ambiente, otimizando os movimentos em direção a objetivos específicos, dadas as restrições de base física, como a minimização de energia. A adoção de animação de personagens com base física, em oposição a métodos mais estáticos, tem sido lenta na indústria de jogos devido ao aumento de custo e complexidade associados ao seu uso. A animação de personagens com base física foi usada na série de videogames Skate (videogame) e no jogo de tiro em primeira pessoa StarForge, desenvolvido de forma independente .

Referências