Nvidia lança PhysX SDK 3.0 após 3 anos de programação totalmente reformulada do zero

PhysX SDK 3.0 foi lançado!

nvidia-physx-300x106.jpg

Não, seus olhos não estão te enganando. Após três anos de desenvolvimento, a NVIDIA lançou nova versão da engine de física PhysX – PhysX SDK 3.0.

Atualmente, a versão binária sem PhysX SDK 3.0 está disponível apenas para PC (32-bit e 64-bit, Mac e Linux são prometidos para serem entregues mais tarde). SDK 3.0 pode ser baixado do suporte Developer Center. Agora vamos dar uma olhada nas caracteristicas do PhysX SDK 3:

2.x PhysX SDK foi originalmente desenvolvido como uma engine de física só para PC, que posteriormente foi portado para consoles de jogos a ser desenvolvido pela Sony (PS3) e Microsoft (Xbox 360). O port para PS3 foi desenvolvido de forma independente e tem sido mantido em uma base de código separado desde o seu desenvolvimento, assim como mais tarde os ports para o Linux e Mac OSX. O crescimento pesado durante a vigência do SDK e bases de código separado contribuíram para a complexidade considerável de manutenção e atualização de versões sucessivas do SDK PhysX no momento em que mais rápido e compactas engines são necessárias para apoiar eficazmente os celulares e tablets.

PhysX SDK 3.0 representa uma significativa reconfiguração do motor PhysX.

Esta reescrita envolveu grandes mudanças na API que efetivamente resulta em uma engine PhysX nova em vez de uma carta de alterações com base em sua versão antecessora. As versões em diversas plataformas são geradas a partir de uma base de código unificada, ainda diferenciada da versão 2.x. Além de um novo design modular, uma desorganização considerável deixada como legado foi removida. Coletivamente, essas alterações resultaram em uma SDK de física projetada para facilitar o curso de manutenção, tendo ports mais simples às novas plataformas de jogos, e a adição de novas funcionalidades e capacidades.

Focada nos consoles e nas emergentes plataformas de jogos.

PhysX SDK 3.0 foi projetada para ser competitiva na atual geração consoles e antecipa dispositivos com ainda menos recursos do sistema. Essas mudanças arquitetônicas incluem uma melhor gestão de memória geral, melhorias de eficiência de cache, implementações SIMD de plataforma cruzada, uso inteligente SPU para a PS3, multi-threading em vários núcleos, e otimizações AltiVec / VMX na Xbox 360.

Melhoria do Threading.

PhysX SDK 3.0 novos recursos Task Manager que suporta dois dependentes (para PC CPU e GPU dependentes estão disponíveis), que são responsáveis por gerenciar as dependências de tarefas e distribuindo tarefas entre os segmentos de trabalho como muitos dos desenvolvedores definem. Este recurso permite ao desenvolvedor equilibrar a mistura adequada de recursos para alcançar o nível de desempenho desejado.

SDK_3-multithread.jpg

PhysX SDK 3.0 também incorpora um SolverBatch que suporta vários segmentos de corpos rígidos e Deformáveis que são usados para formarem diversas ilhas diferentes. Além disso, a estreita fase de computação pode usar esse recurso para executar em múltiplos núcleos de processamento.

As partículas e partículas de fluidos pipeline, atualmente fornecem tarefas a executar em paralelo (PC / Xbox 360):

Várias instâncias do sistema de partículas (para as fases de colisão e SPH)

Várias unidades de trabalho para a colisão de partículas, por exemplo, sistema

Várias unidades de trabalho para a SPH, por exemplo partículas de fluido

Para PS3 há paralelização adicionais disponíveis para a geração de forma, que ainda não está implementada para PC / Xbox 360. No entanto, ele não fornece o paralelismo entre várias instâncias de sistema de partículas.

PC mais GPU oferece mais paralelização, mas no geral estruturada de forma diferente.

Veículos.

Um modelo de veículo reformulado agora inclui componentes como motor, embreagem, engrenagens, cambio automático, diferencial, rodas, pneus, suspensões e chassis, em comparação com a suspensão simplificada / roda / pneu na classe NXWheelShape PhysX SDK 2.x. Um dos aspectos interessantes do novo modelo é a capacidade de criar tipos de pneus, tipos de superfície dirigível, e especificar o atrito utilizado no simulador de veículo a combinar pneus em diferentes tipos de superfície e dirigíveis.

SDK_3-vehicles.jpg

Como PhysX SDK 2.x, o modelo do veículo existe fora do núcleo PhysX e por isso não precisa ser compilado em um jogo, para reduzir o tamanho do executável, se não for necessário. O código fonte é fornecido para facilitar a personalização do desenvolvedor.

Nova Serialização API.

Serialização (o processo pelo qual os objetos SDK são salvos na memória para o disco) no SDK 3.0 é muito mais poderoso e muito mais eficiente que nas versões anteriores do SDK. Ele suporta todos os objetos SDK, e desterilizes-los “no lugar” – sem qualquer cópia dos dados e alocação de memória extra, permitindo que eles sejam carregados o mais rapidamente possível. Serialização e cooking não são mutuamente excludentes. A biblioteca de cooking ainda está disponível – e obrigatória – no PhysX SDK 3.0. Na verdade, não se pode serializar uma malha convexa ou triângulo sem realizar o cooking primeiro.

Agregados & Clustering Broadphase.

Em 2.x PhysX SDK cada NxShape foi representado por um AABB separado no broadphase. Isso causava um problema de desempenho significativo em grandes cenas, principalmente quando a adição e remoção de formas de cena.

Em PhysX SDK 3.0, os desenvolvedores podem combinar um conjunto de atores em um agregado que pode ser gerido como uma entidade única em uma estrutura de dados broadphase, meramente como um recurso de otimização. Por exemplo, a atribuição de várias partes do corpo de uma boneca de trapos para um agregado único irá resultar em diminuição do número de testes de sobreposição (enquanto limites das articulações já estão a impedir as partes do corpo mais a penetração de outro). Assim, no PhysX SDK 3.0, os agregados podem ser representados por um conjunto único na AABB broadphase, o que melhora a eficiência geral.

Double Buffering.

Isso permite que o aplicativo cliente leia e escreva para os atores e a cena enquanto a simulação está sendo executada em outro segmento.

Articulações.

Uma articulação em um só ator representa um sistema acíclico de atores articulados. Somente uma articulação anatômica (semelhante ao da junta esférica com limites de balanço e de torção) está atualmente disponível para as articulações. Articulações usam técnicas semelhantes para o Featherstone, embora, eles são mais robustos do que os conjuntos de atores articulados e têm modelos de passeio, que são mais fáceis de combinar com o movimento processual gerado. Eles também são muito mais expansivos em termos de tempo de processamento da CPU.

Deformações e campos de força.

Pano macio e órgãos foram re-organizados sob um experimental ator Deformável.

Campos de força não são mais necessários. Estavam inclusas em 2.x PhysX SDK principalmente porque a arquitetura impedia a execução eficiente de callbacks definidos pelo usuário para campos de força. No SDK PhysX 3,0 a implementação foi feita para dar liberdade extra permitido pelo buffer duplo e outras alterações na arquitetura, os usuários podem aplicar eficientemente as forças diretamente para os corpos rígidos e não há mais a necessidade de o mecanismo de campo de força. Esta abordagem proporciona maior flexibilidade e liberdade para os desenvolvedores.

Distância baseada na detecção de colisão.

Em PhysX SDK 3.0, as rotinas de colisão podem gerar contatos quando as formas estão separadas a uma pequena distância, mas não completamente ainda tocando o objeto. A vantagem é que os corpos podem agora descansar sem se preocupar com uma pequena sobreposição entre eles.

PhysX Visual Debugger Support (PVD).

SDK_3-PVD_profiler.jpg

Evento de perfil para todas as plataformas e gráficos de utilização de segmento dentro do PVD.

Mesh Scaling.

Agora é possível criar diferentes instâncias não-uniforme nas escalas de suas malhas e convexes sem duplicar a memória.

Non-Simulation Objects.

Permite aos programadores criar uma área de teste fora da simulação a partir de onde se pode adicionar coisas para a simulação em alta velocidade.

Driverless.

SDK 3.0 não exigem a instalação do PhysX System Software na máquina do cliente ou desenvolvedor – é totalmente driverless, como SDK 2.8.4.

O controlador não mudou muito desde da versão 2.8.4. Prevê-se no entanto, para melhorá-lo em lançamentos futuros.

GPU aceleração por hardware no SDK 3.0 está disponível apenas para partículas / líquido.

Nosso grande agradecimento para os engenheiros da NVIDIA PhysX, que ajudaram na preparação deste artigo.

Traduzido e revisado por Leo Strife.

Gostou? Nos ajude compartilhando!
Postado por
Notícias sobre games, jogos e tecnologia!
Siga em:
VEJA TAMBÉM
Assine nosso Newsletter
Assine nossa newsletter e receba nossa seleção de conteúdo sobre games e entretenimento diretamente em seu email.
DEIXE SEU COMENTÁRIO
Gostou? Discordou? Comente! Sua opinião vale ouro e nos ajuda a melhorar cada vez mais!
SELEÇÕES ESPECIAIS
Das pérolas escondidas aos grandes sucessos, confira nossas listas e descubra novos games!
Img de rastreio
Localize algo no site!