570 likes | 801 Views
Introdução à Multimídia Profª.: Judith Kelner – jk@cin.ufpe.br Equipe: Caio Lira - ctal@cin.ufpe.br Guilherme Dantas - gamsd@cin.ufpe.br Hugo Calazans - htcrs@cin.ufpe.br Lauro Moura - lmmn@cin.ufpe.br Rodolfo Saturnino - rps@cin.ufpe.br. Motivação. Cenário dos jogos de hoje
E N D
Introdução à Multimídia Profª.: Judith Kelner – jk@cin.ufpe.br Equipe: Caio Lira - ctal@cin.ufpe.br Guilherme Dantas - gamsd@cin.ufpe.br Hugo Calazans - htcrs@cin.ufpe.br Lauro Moura - lmmn@cin.ufpe.br Rodolfo Saturnino - rps@cin.ufpe.br
Motivação • Cenário dos jogos de hoje • Objetos não se comportam de forma realista • Ação limitada a animações regidas por scripts • Exemplos: • Explosões grandiosas não provocam danos significativos ao cenário • Oponentes mortos caem de maneira similar e pouco natural
Objetivo • Apresentar o conceito de processador de física • Ilustrar como uma engine de física pode aumentar significativamente o grau de realismo e imersão dos jogos modernos
O que é a Física? • Como os objetos se movem e interagem • Em termos de movimento (posição + velocidade) e forma • Independe da representação gráfica • Uma quantidade tremenda de cálculos matemáticos e lógicos sobre grande quantidade de dados
Física em Jogos • Propriedades dos materiais • Dinâmica de corpos rígidos • Detecção de colisão • Juntas e molas • Fluidos • Sistema de partículas • Tecidos
Física: Propriedades dos materiais • Fricção • Dirigir na chuva • Piso molhado • Dureza • Amortecimento de impacto • Tipos de quadra de tênis • Rompimento sob pressão ou tração
Física: Dinâmica de corpos rígidos e detecção de colisão • Física Newtoniana • Colisão entre objetos • Cartuchos caindo após tiro • Caixas caindo • Avalanche de pedras
Física: Juntas e molas • Objetos complexos • Veículos • Portas • Movimento de personagens
Física: Fluidos • Uma das partes mais pesadas em termos de computação • Interage com objetos dinâmicos, empurrando-os e mudando de forma • Exemplos: • Água • Sangue...
Física: Sistema de partículas • Como fluidos, só que mais “inteligentes” • Interagem com outras características do ambiente • Fumaça sobe para o teto até encontrar uma saída
Física: Tecidos • Movimento de acordo com o tipo do tecido • Mais leve, mais pesado • Rasgar em pedaços de acordo com o tipo de tecido
Física avançada em jogos • Simulação em tempo real • Fidelidade • Escalabilidade • Interatividade • Sofisticação
Física avançada: Fidelidade • Representação visual de acordo com o que aconteceria na realidade • Modelo matemático preciso
Física avançada: Escalabilidade • Processamento de milhares de partículas interagindo entre si e outros objetos • Exemplos: • Poeira • Fumaça • Chuva • Peças de um veículo batendo
Física avançada: Interação • Ação e reação entre objetos na cena • Exemplos: • A água de um hidrante batendo contra um carro • Vidro quebrando ao cair no chão • Roupa se rasgando em pedaços
Física avançada: Sofisticação • Nível de detalhe alcançado pela simulação • Tipos de interação possíveis • Exemplos: • Deformações e fraturas • Juntas flexíveis • Atrito
Exemplo de física em jogos: Corrida • Atrito com a pista (materiais) • Colisão com outros carros e cenário (física newtoniana) • Trabalho de suspensão (juntas) • Aerodinâmica (fluidos)
Vídeo: Jogos de Caminhão • Boa física: Rigs of Rods • http://www.youtube.com/watch?v=TR9jqGv05H4 • Péssima física: Big Rigs • http://www.youtube.com/watch?v=mB1zWEhgrLs
Cenário Atual • Física calculada ainda através da CPU • 1/6 do tempo gasto com física • Tentativa de adaptação das GPU's
Abordagens – CPUs de propósito geral • Necessidade de algoritmos extremamente otimizados • Divisão do processador entre diferentes tarefas • IA e lógica • Processamento paralelo insuficiente dos diversos objetos físicos • Escalabilidade + Interação
Abordagens - GPUs • Banda de memória limitada • Limita o número de objetos na cena • Pipeline específico para gráficos • Dificulta o mapeamento de algoritmos físicos
Alternativa – Ageia PhysX PPU • Primeiro processador dedicado a física • Physics Processor Unit • AGEIA
AGEIA PhysX PPU • Foca especialização de cada unidade de processamento
PhysX PPU • Alta velocidade interna – 2 Tbits/s • Hardware preparado para tipos de dados e algoritmos específicos de cálculos físicos • Multicore • Paralelismo
O que é o PhysX SDK? • Uma engine para física de tempo-real em jogos • Utiliza variáveis como massa, velocidade, atrito e resistência do ar para cálculos físicos • Auxilia aplicações multimídia • Simula e prevê efeitos sob diferentes condições que se aproximam da vida real
O que o PhysX SDK não faz • Não é uma ferramenta de renderização • Não simula sons • Necessita de outra biblioteca para montar as cenas • DirectX • OpenGL
Utilizando o PhysX SDK • Duas formas de funcionamento • Utilizando apenas o processador do computador • Desempenho ruim • Emulação • Não suporta a totalidade dos efeitos • Utilizando a PPU PhysX • Bom desempenho • Suporta todos os efeitos
PhysX nos Jogos • Movimentação dos objetos mais real • Física dos fluidos melhor elaborada • Explosões geram poeira e resíduos • Personagens com geometria complexa e movimentação mais real • Vegetação e tecidos são elementos ativos e interagem com jogador e ambiente
Movimentação de Objetos Vídeo
Fluidos Vídeo 1 Vídeo 2 Vídeo 3
Poeira e Resíduos Vídeo
Vegetação e Tecidos Vídeo 1 Vídeo 2
Ambiente de desenvolvimento • PhysX Create • Inclui plugins para 3DS Max e Maya • Adiciona física aos objetos do jogo • Criação e edição avançada de rag-doll • Criação de efeitos nos panos
Ambiente de desenvolvimento • PhysX VRD • Debugger visual remoto em tempo real • Reproduz a simulação PhysX para debug interativo • Capaz de parar em qualquer ponto a simulação • Conexão via TCP/IP para PC, Xbox 360, e PS3 runtime
Ambiente de desenvolvimento • PhysX Rocket • Permite visualização e ajuste • Modular e extensível, permitindo aos desenvolvedores customizar para adequar às suas próprias necessidades • Ambiente ideal para a criação, visualização e ajuste de modelos para componentes complexos como fluidos e veículos por exemplo
Ambiente de desenvolvimento • AGEIA APEX • Adaptive Physics Extensions • Nova plataforma de desenvolvimento • Implementações mais fáceis • Física mais real, robusta e imersiva
Ambiente de desenvolvimento • AGEIA APEX
Ambiente de desenvolvimento • AGEIA APEX • Pipeline Offload • Conjunto de modificações na engine física • Otimização do código em execução no jogo • Melhor performance • Melhor uso dos recursos computacionais
Ambiente de desenvolvimento • AGEIA APEX • Verticals são exemplos de cenários pré-projetados de simulações físicas • Feitos para a fácil integração com as novidades do mercado • Exemplos: • Emissões de partículas e explosões customizáveis
Ambiente de desenvolvimento • AGEIA APEX • Scaling Level of Detail • Dimensionamento integrado que permite aos eventos físicos se adequarem à capacidade de processamento da plataforma • Um único evento físico (como a destruição de um vidro) pode ter seus detalhes ajustados sem nenhum esforço adicional de implementação
Custo de desenvolvimento • Preço • Caso seja dado suporte às placas PhysX da AGEIA • Free • Caso contrário • U$ 50,000 • Esforço para a integração • 2538 linhas de código
Vantagens • Rápido em tempo de execução • Na presença de uma PPU PhysX • Full featured • Código base estável
Desvantagens • Benefícios exclusivos para máquinas com a PhysX PPU • Diferentes formatos de arquivo para Max e Maya