Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br...

29
Davi Barbosa Leonardo Batista Marcelo Almeida [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Transcript of Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br...

Page 1: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Davi BarbosaLeonardo BatistaMarcelo AlmeidaWagner Barros

[dbb, lbs3, maa, wbas]@cin.ufpe.br

Prof.ª Judith KelnerAlunos:

Page 2: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Introdução

Características◦ Hardware◦ Software

Exemplos

Referências

Page 3: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

O que é PhysX ?

PhysX é uma unidade de processamento física, primeiramente projetada pela .

Page 4: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Proprietário

Page 5: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Leis de Newton

oPrimeira Lei de Newton (inércia);

oSegunda Lei de Newton (relação força-mov.);

oTerceira Lei de Newton (ação e reação).

Page 6: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Leis de NewtonoPrimeira Lei de Newton (inércia)

Page 7: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Leis de NewtonoSegunda Lei de Newton (relação força-mov.)

Page 8: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Leis de NewtonoTerceira Lei de Newton (ação e reação)

Page 9: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

SDK disponível e livre de cobrança.

Page 10: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

AGEIA PhysX

Primeiro processador dedicado apenas para à aceleração de hardware para jogos de PC

Placa de extensão de acelerador Produção de movimentos e iteração dinâmicos

Page 11: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Exemplo de um processador produzido pela AGEIA

PhysX 100M

Page 12: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

A importância de Física para os Jogos

Efeitos de Animação pré-fabricados

Evolução dos Jogos

Melhor Interação e Reação com o Ambiente

Page 13: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Como os Jogos ficam otimizados com o PhysX ?

Criação de recursos físicos Criação de recursos para aceleração de

hardware Estabilidade Funcionalidade Desempenho

Page 14: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

A NVIDIA oferece aos desenvolvedores de jogos o PhysXPhysX SDKSDK (Software Development Kit)

É aceito por quase todas as ferramentas de desenvolvimento

Oferece suporte direto em várias plataformas

Microsoft Xbox 360 PlayStation 3

Page 15: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

ProcessadorProcessador

GPUs (Graphics Processing Unit) da Nvidia

Basicamente, é um processador produzido especificamente para realizar cálculos e tarefas relacionadas ao Processamento de Gráficos em tempo real.

Page 16: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Por que a GPU é boa para processamento da física ?

O mecanismo PhysX multiencadeado foi projetado especificamente para aceleração de hardware em ambientes de intensa computação paralela.

Page 17: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Fabricantes de GPU

INTEL

NVIDIA

ATI

Page 18: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Exemplo de um processador, desenvolvido pela NVIDIA.

GEFORCE 6600 GT

Page 19: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Contribuição do PhysX para GPU ?

As GPUs da NVIDIA baseadas na CUDA, estão sendo habilitadas com a tecnologia NVIDIA PhysX.

Combinação entre elementos gráficos e físicos

Maior aproveitamento para desenvolvedores

Melhor Interação entre o usuário e o ambiente virtual

Page 20: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

O que é CUDA ? É uma arquitetura de computação paralela projetada

para tirar melhor aproveitamento dos mecanismos de computação paralela das unidades de processamento gráfico (GPUs) NVIDIA

Page 21: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Algoritmo de colisão, posicionamento espacial, etc.

PhysX SDK implementado em c++ Organizado como uma hierarquia de classes Cada classe contendo alguma

funcionalidade acessível pelo usuário implementa uma interface

Nomes de interface sempre começam com “Nx”

Page 22: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Classe usada para instanciar objetos e setar parâmetros globais que afetam todas as cenas

Método NxCreatePhysicsSDK() é usado para obter uma instância desta classe

Exemplo: NxPhysicsSDK *myworld = NxCreatePhysicsSDK(NX_PHYSICS_SDK_VERSION);

Page 23: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Conjunto de corpos, restrições e efeitos Simula comportamento de objetos de acordo

com sua interação, com as interações só ocorrendo entre objetos de uma mesma cena

Pode manipular elementos de ambiente, como por exemplo a gravidade

Exemplo: NxSceneDesc sceneDesc; sceneDesc.gravity = NxVec3(0.0f, -9.81f,

0.0f); //Define a gravidade da cena gScene = gPhysicsSDK-

>createScene(sceneDesc);

Page 24: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Principal objeto de simulação, sendo criado por uma cena e pertencente à mesma

Pode ser estático ou dinâmico No caso de ator estático, definem-se como elementos de

paisagens, não possuem atributos físicos e são utilizados habitualmente na detecção de colisões

Atores dinâmicos são corpos e possuem um conjunto de propriedades físicas

Exemplo abaixo cria um ator estáticoNxPlaneShapeDesc planeDesc;

NxActorDesc actorDesc;actorDesc.shapes.pushBack(&planeDesc);NxActor *staticActor = gScene-

>createActor(actorDesc);

Page 25: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Modelam o objeto Utilizados para o controle e detecção de

colisões Podem assumir vários tipos, tais como

caixa, esfera, cápsula, cubo, entre outros No exemplo abaixo, modelamos um cubo de

1m de arestaNxBoxShapeDesc boxDesc;

boxDesc.dimensions.set(0.5f,0.5f,0.5f); NxBoxShape *boxShape=actor-

>createShape(boxDesc)->isBox();

Page 26: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

São conexões entre corpos rígidos, ou seja, entre atores Necessita sempre de pelo menos 2 atores Possuem pontos em comum que tanto podem ser de rotação como de translação Classificados em diversas categorias, tais como, esférica, prismática, ponto no plano, ponto

na reta, etc Define como se dá a movimentação dos atores sobre o ponto de junta Exemplo NxVec3 globalAnchor = NxVec3(0,5,0); NxVec3 globalAxis = NxVec3(0,1,0); NxSphericalJointDesc sphericalDesc; sphericalDesc.actor[0] = a0; sphericalDesc.actor[1] = a1; sphericalDesc.setGlobalAnchor(globalAnchor); sphericalDesc.setGlobalAxis(globalAxis); sphericalDesc.flags |= NX_SJF_SWING_LIMIT_ENABLED; sphericalDesc.swingLimit.value = 0.3*NxPi; sphericalDesc.flags |= NX_SJF_TWIST_LIMIT_ENABLED; sphericalDesc.twistLimit.low.value = -0.05*NxPi; sphericalDesc.twistLimit.high.value = 0.05*NxPi; NxSphericalJoint *j = (NxSphericalJoint*)gScene->createJoint(sphericalDesc);

Page 27: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

Descreve as propriedades da superfície Pode ser anisotrópica, ou seja, propriedade física pode variar

com a direção Exemplo abaixo cria um material anisotrópico, definindo

também o seu atrito anisotrópico:

NxMaterialDesc material; material.restitution = 0.0f; material.staticFriction = 0.1f; material.dynamicFriction = 0.1f; material.dynamicFrictionV = 0.8f; material.staticFrictionV = 1.0f; material.dirOfAnisotropy.set(0,0,1); material.flags = NX_MF_ANISOTROPIC; NxMaterial *anisoMaterial = gScene->createMaterial(material);

Page 28: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

lista de jogos : http://nzone.com/object/nzone_physxgames_home.html

Page 29: Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros [dbb, lbs3, maa, wbas]@cin.ufpe.br Prof.ª Judith Kelner Alunos:

http://pt.wikipedia.org/wiki/PhysX http://www.nvidia.com/object/nvidia_physx.html http://www.infomaniaco.com.br/games/physx-o-que-

e-e-o-que-ele-muda-nos-jogos/ http://www.nvmania.com.br/forum/ultimas-

noticias/513-nvidia-compra-ageia-e-seu-physx.html http://www.forumpcs.com.br/noticia.php?b=217951 http://www.nvidia.com.br/object/

physx_accelerator_br.html