davi barbosa leonardo batista marcelo almeida wagner barros
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 PresentationTRANSCRIPT
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