PhysX

physx sigma www sigmaco org
71 / 100

PhysX é um middleware proprietário de engenharia de simulação computadorizada de física newtoniana e detecção de (e resposta à) colisão agora sendo desenvolvido pela NVIDIA como parte do kit NVIDIA GameWorks.

A ampla implementação do PhysX, além da razão comum a qual seria isentar o desenvolvedor de criar seu próprio engenho de física, é um mérito ao seu pioneirismo em tecnologia de aceleração de cálculos físicos por GPU, principalmente através da tecnologia CUDA, que está presente exclusivamente nas VGAs da NVIDIA.

Atualmente PhysX é distribuído em código aberto para qualquer um, sob a cláusula 3 da licença BSD, para a maioria das plataformas. O nome “PhysX” foi empregado pela NVIDIA após aquisição do Novodex, nome anterior atribuído pela AGEIA, sua proprietária anterior. Ainda antes de se chamar Novodex, PhysX era denominado originalmente Meqon, antes da aquisição deste último pela AGEIA.

Tecnologia

PhysX é um middleware para representação matemática de mundos tridimensionais feitos de entidades discretas nomeadas atores, as quais podem ser compostas de múltiplas formas, podendo-as ser simples ou complexas.

Com PhysX, o desenvolvedor pode criar e destruir tais entidades, e trilhar suas interações explícitas ou aproximadas. Entidades podem ser estáticas, podem ser movidas ao redor duma posição pelo agente simulador, ou podem ser movidas pelo PhysX acordando às leis da mecânica clássica.

A capacidade de simulação dinâmica de PhysX inclui suporte a colisão, juntas e atuação usando coordenadas máximas e/ou reduzidas. Mais além, o mundo pode ser indagado pelo usuário usando um número de diferentes ferramentas abrangendo desde simples projeções de raios a testes de varredura e sobreposição.

PhysX provém de extensões para funcionalidade de propósito especial, como simulação de condução veicular, por exemplo. PhysX é designado para ser robusto, de alto desempenho, escalável, portável, bem como fácil de integrar e usar. Estas capacidades tornam PhysX adequável como uma tecnologia de fundação para engenhos de game e outros sistemas de simulação em tempo real.

É importante lembrar que PhysX não executa qualquer código nas GPUs. Assim sendo, PhysX pode ser configurado para tomar vantagem da tecnologia CUDA dos GPUs da NVIDIA — filha-da-putagem, deveria ser o nome —, a qual provém benefício de desempenho proporcional à complexidade aritmética duma cena.

Extensões de aceleração por GPU são providas como uma DLL binária opcional. No entanto, mesmo sem aceleração por GPU, PhysX é totalmente adequado e acelerado por instruções SIMD para tomar vantagem máxima das modernas CPUs multinucleares. Nem sempre foi assim, criminosamente graças a NVIDIA, então cabe ponderações.

Introspecção

Em resumo, podemos destacar os seguintes fatores:

  • Código aberto;
  • Simulação multithreaded;
  • Gestão de uso de memória;
  • Suporte para diferentes unidades e escalas de medição;
  • Múltiplos algorítimos de colisão de fase ampla;
  • Detecção de formas primitivas, de malhas trianguladas e de malhas convexas;
  • Instanciamento e escalação de malha;
  • Detecção discreta e contínua de colisão; e
  • Sistema avançado de solicitação de cena;

Mídia

PhysX com extensões para simulação de líquidos e têxteis.

Postagens relacionadas

Comentários