Introdução à Multimídia Profª.:Judith Kelner – [email protected]

67
1 Introdução à Multimídia Profª.: Judith Kelner – [email protected] Equipe: Aline Cristina Arruda de Medeiros - [email protected] Breno Neil Felix Bezerra - [email protected] Dayse Danielle Soares da Rocha - [email protected] João Victor Guimarães de Lemos - [email protected]

description

Introdução à Multimídia Profª.:Judith Kelner – [email protected] Equipe:Aline Cristina Arruda de Medeiros - [email protected] Breno Neil Felix Bezerra - [email protected] Dayse Danielle Soares da Rocha - [email protected] João Victor Guimarães de Lemos - [email protected]. Motivação. - PowerPoint PPT Presentation

Transcript of Introdução à Multimídia Profª.:Judith Kelner – [email protected]

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

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]

Page 2: Introdução à Multimídia Profª.:Judith Kelner –  jk@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

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

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

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

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

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

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

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

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

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

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

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

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

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

9

Objetos complexosVeículosPortasMovimento de personagens

Física: Juntas e molas

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

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

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

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

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

12

Física: Sistema de partículas(2)

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

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

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

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

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

15

Física avançada em jogos (2)

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

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

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

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

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

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

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

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

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

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)

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

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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Arquitetura do PhysX Engine

30

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

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”

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

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()

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

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

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

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

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

Arquitetura do PhysX Engine:Scene(3)

35

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

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

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

Arquitetura do PhysX Engine: SHAPES

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

Arquitetura do PhysX Engine: MATERIAL

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

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

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

Spherical

Revolute

Joints

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

Prismatic

Cylindrical

Joints

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

Fixed

Distance

Joints

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

Point in plane

Point on line

Joints

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

Pulley

Joints

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

Conceitos AdicionaisJoint LimitsBreakable JointsJoint MotorJoint Spring

Joints

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

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

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

PhysX nos Jogos - Vídeos

Cell FactorExplosões

UnrealColiões e poeiraFluidos

RAW 2

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

Cena sem PhysX

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

Cena com PhysX

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

Ferramentas de desenvolvimento

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

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

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

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

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

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

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

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

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

Ferramentas de desenvolvimento

NVIDIA APEX

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

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

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

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

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

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

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

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

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

Rápido em tempo de execuçãoNa presença de uma PPU PhysX

Código base estável

Vantagens

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

Benefícios exclusivos para máquinas com a PhysX PPU

Diferentes formatos de arquivo para Max e Maya

Desvantagens

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

Microsoft Xbox 360 Linux Sony Playstation 3 Nintendo Wii PC

Plataformas compatíveis

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

Havok SDKPrincipal concorrente do PhysXDesenvolvido por uma companhia

irlandesa desde 2000Utilizado em mais de 150 jogos

• Half-life 2

• Deadrising

Concorrentes

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

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

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

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

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

Referências

Wikipedia - http://pt.wikipedia.org NVidia - http://www.nvidia.com Tutorial AGEIA PHYSX – GPRT/UFPE

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

Dúvidas