Engine de Física

Grande parte da interatividade de um jogo se deve ao funcionamento de algumas leis da física sobre o mundo virtual criado. Assim, ao andar sobre um labirinto e bater numa parede o jogador não pode atravessá-la; ao dar um pulo, o jogador deve colidir com o chão e não continuar caindo para sempre; ao acelerar um carro, sua velocidade deverá ir crescendo gradualmente e não abruptamente.

Os cálculos de física básicos num jogo são:

– Colisão: Objetos 3D devem colidir com outros. Esta colisão não é trivial de ser realizada para um mundo virtual como é para o mundo real, já que em última instância corresponderia em verificar se cada um dos polígonos de um determinado objeto possui interseção com cada um dos polígonos do restante da cena. Existem inúmeras formas de otimizar estes cálculos (ver [EBE 03]), sendo a mais comum a técnica de bounding-boxes, que consiste em englobar cada objeto por uma caixa e calcular a colisão para a caixa e não para a malha completa do objeto;

– Resultante de forças: Os objetos se movimentam num mundo real devido a aplicação de diversas forças sobre o mesmo. Num ambiente virtual será necessário simular a aplicação de forças de diversas naturezas sobre os objetos, calculando a resultante a cada instante para verificar como será o seu movimento. Para mais detalhes, ver [BER 03].

A Open Dynamics Engine (ODE) é uma biblioteca livre para simulação de dinâmica de corpos rígidos, incluindo veículos, ambientes de realidade virtual e criaturas. É desenvolvida em C++ e pode ser facilmente integrada com uma engine, assim permitindo ser reusada facilmente. Para utilizar basta incluir a biblioteca no engine do jogo e utilizar as funções oferecidas por essa. Também é possível usar partes do código para desenvolver uma engine personalizada. É possível especificar um mundo com propriedades físicas com seus devidos objetos e a cada ciclo de atualização do jogo todas as forças físicas são aplicadas sob tais objetos considerando o tratamento de colisões. A própria Fly3D [FLY 05], um engine nacional adota a ODE. Outro exemplo de uso da ODE é o plug-in para o 3D Studio chamado Ornatrix que permite renderizar cabelos. Todo o modelo físico é baseado nesta biblioteca.

Outra alternativa é o projeto de código-aberto denominado ODF (Open Dynamics Framework) [ODF 05] cujo objetivo é criar simulações físicas em game engine. Entretanto o ODF executa somente a plataforma Windows, pois utiliza o DirectX.

ATIVIDADE DE FIXAÇÃO

Comentários

Postagens mais visitadas deste blog

Desenvolver um Jogo Plataforma

Uso de Modelos 3D

Game Design Document