Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros

Preview:

DESCRIPTION

Prof.ª Judith Kelner Alunos:. Davi Barbosa Leonardo Batista Marcelo Almeida Wagner Barros. [dbb, lbs3, maa, wbas]@cin.ufpe.br. Sumário. Introdução Características Hardware Software Exemplos Referências. Introdução. O que é PhysX ? - PowerPoint PPT Presentation

Citation preview

Davi BarbosaLeonardo BatistaMarcelo AlmeidaWagner Barros

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

Prof.ª Judith KelnerAlunos:

Introdução

Características◦ Hardware◦ Software

Exemplos

Referências

O que é PhysX ?

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

Proprietário

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

Leis de NewtonoPrimeira Lei de Newton (inércia)

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

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

SDK disponível e livre de cobrança.

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

Exemplo de um processador produzido pela AGEIA

PhysX 100M

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

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

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

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.

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.

Fabricantes de GPU

INTEL

NVIDIA

ATI

Exemplo de um processador, desenvolvido pela NVIDIA.

GEFORCE 6600 GT

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

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

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”

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

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

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

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

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

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

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

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

Recommended