29

Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Embed Size (px)

Citation preview

Page 1: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU
Page 2: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Motivação Até agora, apenas limitados programas de física tem sido

integrados nos jogos.

Isto significa que computação física vem sendo tratada por CPU de propósito geral, o que já é bastante limitado, pois a demanda de jogos avançados incluem Lógica e Inteligência Artificial (IA).

Como resultado, a física nos jogos está limitada a poucos objetos numa cena, efeitos repetidos ou cenas que apenas iludem o usuário com uma imitação da física real.

Page 3: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Objetivo

Introduzir a ferramenta de simulação PhysX, como meio para aumentar a imersão do usuário enquanto utiliza jogos de computadores.

Page 4: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Física aplicada à multimídia Não é apenas como os objetos e cenas se parecem,

mas como eles se comportam.

Na grande maioria dos jogos atuais, os objetos simplesmente não parecem agir do jeito que você gostaria ou espera.

A maior parte da ação é limitada a animações pré-produzidas. Poderosas armas deixam pouco mais do que marcas nas paredes mais finas e todo oponente que você elimina parece cair de um jeito estranhamente familiar.

Page 5: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Sem PhysX Engine

Page 6: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Com PhysX Engine

Page 7: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

ImersãoCell Factor: Revolution

Page 8: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

O que é o PhysX?

PhysX é uma ferramenta que auxilia aplicações multimídias.

Sua função é simular o modelo da física de Newton. Utiliza variáveis tais como a massa, velocidade, atrito e

resistência do ar.

Simula e prevê efeitos sob diferentes condições que se aproximam da vida real.

Page 9: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Efeitos Corpos rígidos Corpos moles Fluídos Tecidos Explosões Fumaça e neblina densas Colisões

Page 10: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Advanced Gaming Physics

Fidelidade

Escala

Interação

Sofisticação

Page 11: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU
Page 12: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Formas de funcionamento A PhysX Engine pode funcionar de duas maneiras:

Através do SDK do PhysX, apenas utilizando o próprio processador do computador° Todos os cálculos feitos na CPU do computador.Obs. Não suporta a simulação de efeitos de fluídos!

Através do SDK do PhysX, utilizando a PPU° Todos os cálculos feitos na PPU.Obs. Suporta a simulação de todos os tipos de efeitos.

Page 13: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Physics Processing Unit (PPU) Empregar os conceitos da física em um jogo exige

uma quantidade tremenda de cálculos matemáticos e lógicos, com uma utilização massiva de memória.

Isto requer a utilização de um processador altamente especializado para fornecer um rico ambiente imersivo com características como: Explosões que causam poeira e efeitos colaterais; Personagens com uma geometria mais complexa, que

permitem uma interação e movimentação mais realista; As armas apresentam novos efeitos não previsíveis; Densa fumaça e neblina que circundam os objetos em

movimento;

Page 14: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

AGEIA PPU

Page 15: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Como funciona? A ferramenta PhysX não é um

software de renderização.

Não trata da simulação de sons.

Necessita de outra ferramenta para construir a cena. Por exemplo: OpenGL, OGRE.

Page 16: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Arquitetura

Page 17: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Performance com a PPU

Page 18: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Aplicações

Jogos, jogos e mais jogos!

Page 19: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Cell Factor: Revolution

Cell Factor: Revolution

Page 20: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Monster Truck Maniax

Page 21: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Gothic 3

Page 22: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Demonstração //executar demo da AGEIA

Page 23: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Questão Teórica

Baseando-se nos conceitos de multimídia, qual a principal vantagem da utilização da ferramenta PhysX?

Page 24: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Inicializando o PhysXvoid InitNx() { // Inicializando o SDK gPhysicsSDK = NxCreatePhysicsSDK(NX_PHYSICS_SDK_VERSION); if (!gPhysicsSDK) return;

// Criando a cena NxSceneDesc sceneDesc; sceneDesc.simType = NX_SIMULATION_SW; sceneDesc.gravity = NxVec3(0,-9.81,0); gScene = gPhysicsSDK->createScene(sceneDesc);

// Criando o material padrão NxMaterial* defaultMaterial = gScene->getMaterialFromIndex(0); defaultMaterial->setRestitution(0.5); defaultMaterial->setStaticFriction(0.5); defaultMaterial->setDynamicFriction(0.5);

// Criando os objetos na cena groundPlane = CreateGroundPlane(); actor = CreateBox(); // criar uma esfera iniciando na posicao (0,5,0)}

Page 25: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Loop do PhysXvoid loopPhysics(){

// recebe a variação do tempo em relação à última chamada da funçãofloat gDeltaTime = UpdateTime();

// chama a simulação do PhysX passando como parâmetro a variação //do tempo

gScene->simulate(gDeltaTime);gScene->flushStream();

}

Page 26: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Criando uma EsferaNxActor* CreateSphere(const NxVec3& pos){

NxActorDesc actorDesc;NxBodyDesc bodyDesc;

// O ator tem somente um shape(forma), a esferaNxSphereShapeDesc sphereDesc;

// setando o raio da esferasphereDesc.radius = 1;actorDesc.shapes.pushBack(&sphereDesc);

actorDesc.body = &bodyDesc;//configurando a densidade do corpo do atoractorDesc.density = 5;//setando a posição global do atoractorDesc.globalPose.t = pos;return gScene->createActor(actorDesc);

}

Page 27: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Criando uma CápsulaNxActor* CreateCapsule(const NxVec3& pos, const NxReal height, const NxReal radius, const NxReal

density){

NxActorDesc actorDesc;NxBodyDesc bodyDesc;

// O ator tem somente um shape(forma), a cápsula NxCapsuleShapeDesc capsuleDesc;// Setando a altura e o raio da cápsulacapsuleDesc.height = height;capsuleDesc.radius = radius;// Setando a posição local da cápsula para que ela inicie no planocapsuleDesc.localPose.t = NxVec3(0,radius+0.5*height,0);actorDesc.shapes.pushBack(&capsuleDesc);

actorDesc.body = &bodyDesc;actorDesc.density = density;// Setando a posição global do atoractorDesc.globalPose.t = pos;return gScene->createActor(actorDesc);

}

Page 28: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Questões Práticas Exercício 1: Modifique Exercicio1.cpp, de forma que ao invés de se ter

uma cena com um cubo, tenha uma cena com uma esfera. Utilize a função CreateSphere demonstranda anteriormente

Exercício 2: Modifique Exercicio2.cpp de forma que se adicione uma esfera e uma cápsula à cena. A esfera deve ser inicializada na posição (-5,0,5), raio 1 e densidade 10, enquanto que a cápsula estará na posição (0,0,0), altura 2, raio 0.5 e densidade 10

Page 29: Motivação Até agora, apenas limitados programas de física tem sido integrados nos jogos. Isto significa que computação física vem sendo tratada por CPU

Dúvidas?