Introdução à Multimídia Profª.:Judith Kelner – jk@cin.ufpe.br

Post on 09-Jan-2016

35 views 2 download

description

Introdução à Multimídia Profª.:Judith Kelner – jk@cin.ufpe.br Equipe:Aline Cristina Arruda de Medeiros - acam@cin.ufpe.br Breno Neil Felix Bezerra - bnfb@cin.ufpe.br Dayse Danielle Soares da Rocha - ddsr@cin.ufpe.br João Victor Guimarães de Lemos - jvgl@cin.ufpe.br. Motivação. - PowerPoint PPT Presentation

Transcript of Introdução à Multimídia Profª.:Judith Kelner – jk@cin.ufpe.br

1

Introdução à MultimídiaProfª.: Judith Kelner – jk@cin.ufpe.br

Equipe: Aline Cristina Arruda de Medeiros - acam@cin.ufpe.brBreno Neil Felix Bezerra - bnfb@cin.ufpe.brDayse Danielle Soares da Rocha - ddsr@cin.ufpe.brJoão Victor Guimarães de Lemos - jvgl@cin.ufpe.br

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