1
Introdução à MultimídiaProfª.: Judith Kelner – [email protected]
Equipe: Aline Cristina Arruda de Medeiros - [email protected] Neil Felix Bezerra - [email protected] Danielle Soares da Rocha - [email protected]ão Victor Guimarães de Lemos - [email protected]
2
Motivação
Física nos jogos tradicionaisObjetos e personagens se comportam
fisicamente de forma irreal• Animações seguindo scripts
• Movimentos familiares
Experiência de jogo não totalmente imersiva
• Falta de senso de realismo
3
Objetivo
Apresentar o conceito de Physics Processing Unit (PPU)
Ilustrar como uma engine de física pode aumentar significativamente o grau de realismo e imersão dos jogos modernos
4
Física em jogos
Como os objetos se movem, interagem e reagem ao ambiente em voltaIndependente de suas representações
gráficas Não é uma tarefa fácil
Ambiente com computação intensivaRequer uma imensa quantidade de
cálculos lógicos e matemáticos
5
Física em Jogos (2)
Propriedades dos materiais Leis de Newton Detecção de colisão Juntas e molas Fluidos Sistema de partículas Tecidos
6
FricçãoDirigir na chuvaPiso molhado
DurezaAmortecimento de impacto
• Tipos de quadra de tênis
Rompimento sob pressão ou tração Vídeo
Física: Propriedades dos materiais
7
Força aplicada e aceleraçãoEmpurrar uma pedraBola chutada por um jogador
Ação e reaçãoReação de um personagem ao levar um tiro
• Localização do ferimento
• Ragdoll physics
“Coice” da arma do atirador• Efeito quase nunca modelado
Física: Leis de Newton
8
Física: Detecção de colisão
Algoritmos para checar a interseção de posição de objetos
Implementação a posterioriSimples
Implementação a prioriConsidera a variável tempoEstável e fiel
9
Objetos complexosVeículosPortasMovimento de personagens
Física: Juntas e molas
10
Efeito particularmente complexo de modelar
Os efeitos precisam ser convicentes e rápidos
Exemplos:Movimento de nuvensSangueMovimento de rios e oceanos
Física: Fluidos
11
Simular um fenômeno expressivo através da simulação de componentes individuais
O número de partículas simuláveis é função do poder computacional
Exemplos:FumaçaCorrentes, cachoeirasExplosões
Física: Sistema de partículas
12
Física: Sistema de partículas(2)
13
Fenômeno varia de acordo com o tipo de tecidoMaterialMais leve, mais pesado
Tecidos que rasgam e envelhecem naturalmente
Vídeo
Física: Tecidos
14
A visão da Ageia do que é física em jogos Quatro partes distintas que devem ser
resolvidas por hardware, software ou ambosFidelidadeEscalabilidadeInteratividadeSofisticação
Física avançada em jogos
15
Física avançada em jogos (2)
16
Representar com precisão o mundo real, com o maior nível possível de detalhes
Deve ser feito usando um modelo matemático preciso
Física avançada em jogos: Fidelidade
17
A solução deve suportar um grande número de objetos físicos simultaneamente
Exemplos:• Num mundo totalmente destrutível, o número
de objetos para rastrear aumenta exponencialmente
• Pingos de chuva interagindo com pessoas e vento
• Peças de um automóvel batendo
Física avançada: Escalabilidade
18
Cada objeto deve poder agir e reagir sobre qualquer outro objeto existente no ambiente
Exemplos:Partículas voando numa explosãoTecidos rasgandoVidro se partindo ao sofrer impacto
Física avançada: Interação
19
Simular uma grande quantidade de fenômenos do mundo real
Com um bom nível de detalhe Feito matematicamente ao invés de
animações pré-moldadas Exemplos:
Gravidade Deformações e elasticidade de objetos Atrito
Física avançada: Sofisticação
Exemplo de física em jogos: Corrida
20
Atrito com a pista (materiais)
Colisão com outros carros e cenário (física newtoniana)
Trabalho de suspensão (juntas)
Aerodinâmica (fluidos)
Problema x Solução
Jogos com simulações físicas requerem cálculos de alta complexidade
Elevado tempo de processamento para os cálculos
Solução: Processador dedicado!
CPU – Unidade Central de Processamento
Divisão do processador entre diferentes tarefasIA e lógica
Processamento paralelo insuficiente dos diversos objetos físicosEscalabilidade + Interação
Algoritmos extremamente otimizados
GPU - Unidade de Processamento Gráfico
Faz a tarefa de renderização de gráficos
Incorpora as funções de iluminação e transformação de vértices
Liberou a CPU para outras funções
GPU - Unidade de Processamento Gráfico
Banda de memória limitadaLimita o número de objetos na cena
Pipeline específico para gráficosDificulta o mapeamento de algoritmos
físicos
PPU – Unidade de processamento Físico
Processador dedicado à física Processa colisão, simulações de
corpos rígidos, cabelos, grama, roupas e fluídos/líquidos de uma maneira 10/100 vezes mais rápida
Ageia PhysX PPU NVIDA comprou a AGEIA
26
Alta velocidade interna – 2 Tbits/s Hardware preparado para tipos de
dados e algoritmos específicos de cálculos físicos
MulticoreParalelismo
PhysX PPU
AGEIA PhysX SDK
Middleware físico Criação de ambientes físicos dinâmicos
nas principais plataformas de jogo 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
28
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 cenasDirectXOpenGL
29
Utilizando o PhysX SDK
Duas formas de funcionamentoUtilizando 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
Arquitetura do PhysX Engine
30
Arquitetura do PhysX Engine(2)
31
PhysX SDK implementado em C++ Organizado como uma hierarquia de
classes Cada classe contendo alguma
funcionalidade acessível pelo usuário implementa uma interfaceNomes de interfaces sempre
começam com “Nx”
Arquitetura do PhysX Engine:World
32
Classe usada para instanciar objetos e setar parâmetros globais que afetam todas as cenas
Para obter uma instância dessa clase, deve-se chamar o método NxCreatePhysicsSDK()
Arquitetura do PhysX Engine:Scene
33
Conjunto de corpos, restrições e efeitos
Interação só entre objetos de mesma cena
Um World engloba várias Scenes
Arquitetura do PhysX Engine:Scene(2)
34
Exemplo de criação de uma cena Criando uma instância de Cena
Criando um material para inserir possíveis objetos na cena
Criando o chão, para que objetos atraídos pela gravidade caiam e não desapareçam
Arquitetura do PhysX Engine:Scene(3)
35
Arquitetura do PhysX Engine:Actor
36
Entidade criada por uma cena e pertencente a ela
Atores estáticosElementos de paisagem: Prédios, árvores...Não possuem atributos físicosDetecção de colisão
Atores dinâmicosChamados de corposPossuem um conjunto de propriedades físicas
Arquitetura do PhysX Engine: SHAPES
Arquitetura do PhysX Engine: MATERIAL
Conexões entre corpos rígidos Ponto em comum
RotaçãoTransação
São classificados em diversas categorias: Esférica, Cilíndrica, Prismática, Ponto no plano, Ponto na linha...
Arquitetura do PhysX Engine:JOINTS
Spherical
Revolute
Joints
Prismatic
Cylindrical
Joints
Fixed
Distance
Joints
Point in plane
Point on line
Joints
Pulley
Joints
Conceitos AdicionaisJoint LimitsBreakable JointsJoint MotorJoint Spring
Joints
PhysX nos Jogos
Principal uso do physX Movimentação dos objetos de forma
mais real Explosões, colisões e movimentação
de objetos geram poera e resíduos Fluidos com física bem elaborada Tecidos e vegetações interagem com
o jogador e ambiente
PhysX nos Jogos - Vídeos
Cell FactorExplosões
UnrealColiões e poeiraFluidos
RAW 2
Cena sem PhysX
Cena com PhysX
Ferramentas de desenvolvimento
Ferramentas de desenvolvimento
PhysX CreateInclui plugins para 3DS Max e MayaAdiciona física aos objetosCriação e edição avançada de rag-
dollAdiciona efeitos nos panos
Ferramentas de desenvolvimento
PhysX VRDDebugger visual e remoto em tempo
realReproduz a simulação PhysX para
debug interativoPode parar em qualquer ponto a
simulaçãoConexão via TCP/IP para PC, Xbox
360, e PS3 runtime
Ferramentas de desenvolvimento
PhysX RocketVisualização e ajusteModular e extensível, permitindo aos
desenvolvedores customizar para adequar às suas próprias necessidades
Criação, visualização e ajuste de modelos para componentes mais complexos, como fluidos e veículos
Ferramentas de desenvolvimento
NVIDIA APEXAdaptive Physics ExtensionsPlataforma de desenvolvimento
baseada na plataforma da AgeiaImplementações mais fáceisFísica mais real, robusta e imersivaMétodo simplificado para adicionar
interações físicas
Ferramentas de desenvolvimento
NVIDIA APEX
Ferramentas de desenvolvimento
NVIDIA APEXPipeline Offload
• Modificações na engine física
• Otimização no código em execução no jogo
• Melhoramento dos recursos computacionais
• Objetiva uma melhor Perfomance
Ferramentas de desenvolvimento
NVIDIA APEXVerticals
• São cenários pré-projetados de simulações físicas
• Objetivam facilitar a integração com as novidades do mercado
Ferramentas de desenvolvimento
NVIDIA APEXScaling Level of Detail
• Unidade que permite a aplicação se adaptar ao nível de detalhamento e efeitos de acordo com a capacidade do sistema
• Um único evento pode ter seus detalhes ajustados sem nenhuma necessidade adicional de implementação
Free SDK Package: Most Current PC Binary Commercial & non-commercial use on PC
Available for Windows & Linux No PhysX hardware optimization requirement
PS3 platform (through Sony pre-purchase)
Licensed (Source Code): US$50K individual application Xbox 360 Source PC Source
Custo de desenvolvimento
Rápido em tempo de execuçãoNa presença de uma PPU PhysX
Código base estável
Vantagens
Benefícios exclusivos para máquinas com a PhysX PPU
Diferentes formatos de arquivo para Max e Maya
Desvantagens
Microsoft Xbox 360 Linux Sony Playstation 3 Nintendo Wii PC
Plataformas compatíveis
Havok SDKPrincipal concorrente do PhysXDesenvolvido por uma companhia
irlandesa desde 2000Utilizado em mais de 150 jogos
• Half-life 2
• Deadrising
Concorrentes
NVIDIA GeForce 8 Series GPU com unidade PPU acoplada Quantum Effects Technology
• Nova tecnologia aceleradora de física Newtoniana
GigaThread PureVideo HD API CUDA
• Compute Unified Device Architecture
• Programação em C ou alternativamente Assembly
Concorrentes
Empresas líderes em desenvolvimento de jogos têm se especializado na utilização do NVIDIA PhysX SDK
Crescente número de jogos utilizando a engine
Aquisicao da Ageia pela NVIDIA • Promessa de processadores GeForce
aptos para PhysX
Mercado
Referências
Wikipedia - http://pt.wikipedia.org NVidia - http://www.nvidia.com Tutorial AGEIA PHYSX – GPRT/UFPE
Dúvidas
Top Related