A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1

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

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

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

5 Sem PhysX Engine

6 Com PhysX Engine

7 Imersão Cell Factor: Revolution

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

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

10 Advanced Gaming Physics Fidelidade Escala Interação Sofisticação

11

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

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

14 AGEIA PPU

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

16 Arquitetura

17 Performance com a PPU

18 Aplicações Jogos, jogos e mais jogos!

19 Cell Factor: Revolution

20 Monster Truck Maniax

21 Gothic 3

22 Demonstração //executar demo da AGEIA

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

24 Inicializando o PhysX void 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) }

25 Loop do PhysX void loopPhysics(){ // recebe a variação do tempo em relação à última chamada da função float gDeltaTime = UpdateTime(); // chama a simulação do PhysX passando como parâmetro a variação //do tempo gScene->simulate(gDeltaTime); gScene->flushStream(); }

26 Criando uma Esfera NxActor* CreateSphere(const NxVec3& pos){ NxActorDesc actorDesc; NxBodyDesc bodyDesc; // O ator tem somente um shape(forma), a esfera NxSphereShapeDesc sphereDesc; // setando o raio da esfera sphereDesc.radius = 1; actorDesc.shapes.pushBack(&sphereDesc); actorDesc.body = &bodyDesc; //configurando a densidade do corpo do ator actorDesc.density = 5; //setando a posição global do ator actorDesc.globalPose.t = pos; return gScene->createActor(actorDesc); }

27 Criando uma Cápsula NxActor* 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ápsula capsuleDesc.height = height; capsuleDesc.radius = radius; // Setando a posição local da cápsula para que ela inicie no plano capsuleDesc.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 ator actorDesc.globalPose.t = pos; return gScene->createActor(actorDesc); }

28 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

29 Dúvidas?


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google