Les prochaines versions du moteur physique PhysX de NVIDIA se concentreront sur la précision de la simulation,
Plutôt que sur la simple rapidité

Le , par dourouc05

0PARTAGES

10  0 
PhysX est le moteur physique développé par NVIDIA. Il est utilisé dans un très grand nombre de jeux, depuis le début de son développement par NovodeX puis Ageia. L’une de ses caractéristiques principales est l’accélération matérielle, d’abord sur une carte spécifique (PPU), puis désormais sur une carte graphique (GPU).

Jusqu’à présent, le moteur s’est focalisé sur la performance de la simulation : obtenir des résultats physiquement plausibles très rapidement, en utilisant toute la puissance de calcul disponible. Ainsi, les solveurs et la gestion des contacts n’a pas beaucoup évolué ces dernières années. Cependant, cet objectif ne correspond pas à toutes les applications : le moteur est strictement inutilisable pour des simulations de robotique, car pas assez précis. Le futur des jeux semble aussi requérir une plus grande précision : pour des jeux en réalité virtuelle, un gain de précision sera le bienvenu. C’est pourquoi les prochaines versions se concentreront plus sur une fidélité de la simulation que la simple rapidité.

Du côté technique, les détails actuellement disponibles indiquent qu’un nouveau solveur sera utilisé. Il sera non linéaire et itératif, mais proposera une performance similaire au solveur actuel. Il devrait amoindrir les besoins de trucs et astuces pour rendre les simulations plus réalistes (des projections sans sens physique, des ratios de masse peu réalistes, etc.). Ces améliorations se verront notamment pour les ratios de masse élevés, pour les petits objets, pour les chaînes longues et pour les vitesses angulaires élevées. NVIDIA a d’ailleurs proposé une petite démo pour comparer les résultats de simulation avec le nouveau solveur dans le cas de chaînes longues avec un haut ratio de masses (un gros cube très lourd et une série de petites boules).


De plus, les articulations seront retravaillées : de nouveaux modèles seront ajoutés, avec une validation de la précision par rapport à des modèles analytiques (exacts), principalement pour la robotique. Également, PhysX devrait voir venir un nouveau solveur de dynamique inverse (par exemple, en robotique, pour une position donnée d’un bras du robot, il s’agit de calculer l’angle à donner à chaque articulation).


Toutes ces nouveautés devraient arriver dès PhysX 3.5, même si aucune date n’est pour le moment prévue.

(Les nouvelles versions devaient arriver tous les six mois, même s’il a fallu bien plus longtemps — pas loin de deux ans — entre la 3.3 et la 3.4…).

Source : GDC 2018 : new PhysX SDK will focus on simulation accuracy.

Et vous ?

Qu'en pensez-vous ?
Quelles sont les améliorations que vous souhaiteriez voir ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de
https://www.developpez.com
Le 09/04/2018 à 17:52
On ne parle pas de mesure et modélisation mais belle et bien de modélisation à "comportement plausible" (comme dans un musée). Le côté précision est juste se rapprocher au plus proche du réel. Encore les jeux vidéos violents qui vont avoir des images ultra réaliste violente.

Ou le simulateur de l'école de conduire ou unité de médecine qui pourra stimuler plus facilement la " crainte cognitive ".
Avatar de dourouc05
Responsable Qt & Livres https://www.developpez.com
Le 03/12/2018 à 21:54
PhysX est le moteur physique de NVIDIA. Il a commencé son histoire comme NovodeX, en 2002, en Suède, avant d'être racheté par Ageia en 2004 : l'objectif était de fournir un accélérateur pour les calculs physiques (une carte PCI à intégrer dans son ordinateur), ce qui libère les autres processeurs lors de l'exécution d'un jeu. NVIDIA a alors racheté Ageia en 2008 : les accélérateurs physiques ont alors été remplacés par les cartes graphiques, devenues plus puissantes et plus programmables.

En 2015, NVIDIA a ouvert le code source de PhysX sur GitHub. Il fallait s'enregistrer sur le site de NVIDIA pour avoir accès au code sous une licence propriétaire. Depuis hier, ce code est vraiment libre : il est disponible sous licence BSD sans condition, toujours sur GitHub. Certes, le dépôt public n'est pas celui de développement, mais la situation s'améliore franchement d'un point de vue libriste. Les autres modules physiques de GameWorks (comme NvCloth, Blast ou Flow) ne sont pas concernés : ils restent sous une licence propriétaire, même s'il suffit de s'enregistrer pour y avoir accès. De même, le code pour les consoles (Xbox One, PS 4 et Switch) n'est pas libéré.

PhysX 4.0 sera aussi concerné par cette libération du code, lors de sa sortie (prévue le 20 décembre). Comme annoncé lors de la GDC 2018, cette version se focalise sur la précision de la simulation, de telle sorte que le moteur physique ne soit pas qu'utile dans les jeux. Dans les nouvelles fonctionnalités, on compte un nouveau solveur, TGS (temporal Gauss-Seidel), pour toutes les articulations et jointures. La robustesse de cette méthode est notamment due au fait que les contraintes sont recalculées à chaque itération. Toujours dans les jointures, l'adjonction des coordonnées réduites augmente fortement la stabilité numérique.

Au niveau de la performance, de nouvelles méthodes de filtrage ont été introduites pour la cinématique et la statique. Une nouvelle hiérarchie de volumes englobants sert à accélérer les requêtes dans les scènes qui comportent un grand nombre d'objets simulés.
NVIDIA a aussi produit une vidéo qui démontre les prouesses de cette nouvelle version, notamment en la comparant à PhysX 3.4. La scène sur le jeu d'échecs vaut le détour : on y voit un bras robotisé simulé par PhysX 4 parfaitement déplacer des pièces, tandis que celui simulé par PhysX 3.4 renverse un grand nombre de pièces, à cause du manque de stabilité de sa simulation.


Source : NVIDIA announces PhysX SDK 4.0, makes engine open-source under BSD-3 license, NVIDIA Extends PhysX for High Fidelity Simulations, Goes Open Source.
Avatar de darklinux
Membre habitué https://www.developpez.com
Le 04/12/2018 à 7:02
Depuis le temps , Nvidia aurait faire cela il y a bien longtemps
Avatar de Steinvikel
Membre éprouvé https://www.developpez.com
Le 04/12/2018 à 16:55
Pourquoi aurait-il livré un hypothétique atout face à un concurrent pour qui ce type de démarche est monnaie courante ? --> aucun impacte.
Il le livre aujourd'hui car il montre une belle image par son apparente générosité, permettant une démarcation favorable dans les esprits, durant une période ou sa concurrence est mise à mal.

Citation Envoyé par dourouc05 Voir le message
PhysX est le moteur physique de NVIDIA. Il a commencé son histoire comme NovodeX, en 2002, en Suède, avant d'être racheté par Ageia en 2004 : l'objectif était de fournir un accélérateur pour les calculs physiques (une carte PCI à intégrer dans son ordinateur), ce qui libère les autres processeurs lors de l'exécution d'un jeu. NVIDIA a alors racheté Ageia en 2008
Ça fait du bien d'avoir des articles un peu plus fiable qu'ailleurs.
ex : "La techno PhysX remonte à 2005, avec sa création par Ageia. L’idée consistait à offrir une carte PCIe d’accélération dédiée pour gérer
en matériel les effets physiques d’un moteur 3D, finalement racheté par NVIDIA en 2008."

Citation Envoyé par dourouc05 Voir le message
Les autres modules physiques de GameWorks (comme NvCloth, Blast ou Flow) ne sont pas concernés : ils restent sous une licence propriétaire, même s'il suffit de s'enregistrer pour y avoir accès. De même, le code pour les consoles (Xbox One, PS 4 et Switch) n'est pas libéré.
Je ne suis pas sûr de comprendre. Est-ce qu'il faut comprendre que la partie du code de PhysX dédié à Xbox One, PS 4 et Switch, ne sont pas inclus dans la partie de PhysX couvert sous BSD 2 clauses... et par conséquent que PhysX est publié sous une double licence ?
Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 04/12/2018 à 17:54
Citation Envoyé par Steinvikel Voir le message
Je ne suis pas sûr de comprendre. Est-ce qu'il faut comprendre que la partie du code de PhysX dédié à Xbox One, PS 4 et Switch, ne sont pas inclus dans la partie de PhysX couvert sous BSD 2 clauses... et par conséquent que PhysX est publié sous une double licence ?
Tout à fait.
Le code des consoles n'est jamais fournie. Il faut des autorisations des constructeurs et il faut prouver que tu as ces autorisations pour qu'ils te fournissent l'implémentation des plateformes concernées.
Avatar de dourouc05
Responsable Qt & Livres https://www.developpez.com
Le 20/12/2018 à 23:26
Le code de PhysX 4 est maintenant disponible en ligne, sans besoin de s'inscrire, comme prévu. Comme attendu, il ne s'agit pas du dépôt de développement, mais c'est néanmoins un bon pas en avant : n'importe qui pourra modifier le code de PhysX et le redistribuer sans problème (sous licence BSD… ou autre, donc). NVIDIA n'a pas indiqué si les contributions externes étaient encouragées ou si elles seront simplement ignorées.

Dépôt sur GitHub

Guide de l'utilisateur
Documentation de l'API
Avatar de Bill Fassinou
Chroniqueur Actualités https://www.developpez.com
Le 22/12/2018 à 12:31
La version 4.0 de PhysX de NVIDIA est disponible en open-source
avec de nouvelles méthodes de filtrage pour la cinématique et la statique

Tôt ce mois, l’américain NVIDIA a annoncé que son Kit de développement PhysX SDK sera désormais disponible en open source (sous la licence BSD à 3 clauses), ce qui signifie que les développeurs de jeux pourront modifier et étendre le Kit de développement PhysX SDK à leur guise. Le Kit de développement logiciel NVIDIA PhysX est une solution physique multi-plateforme évolutive prenant en charge une large gamme de périphériques, des smartphones aux processeurs multicœurs et GPU haut de gamme. PhysX est déjà intégré à certains des moteurs de jeu les plus populaires, notamment Unreal Engine et Unity3D.


La société a aussi précisé que PhysX 4.0 sera aussi concerné par cette libération du code. Cette version va se focaliser sur la précision de la simulation, de telle sorte que le moteur physique ne soit pas qu'utile dans les jeux. Dans les nouvelles fonctionnalités, il y aura nouveau solveur, TGS (temporal Gauss-Seidel), pour toutes les articulations et jointures. La robustesse de cette méthode est notamment due au fait que les contraintes sont recalculées à chaque itération. PhysX 4.0 rendu disponible ce 20 décembre présente les caractéristiques ci-après :

  • open source ;
  • simulation multithread ;
  • gestion de l'utilisation de la mémoire ;
  • prise en charge de différentes unités de mesure et échelles ;
  • algorithmes de détection de collision à phases multiples multiples ;
  • détection de collision de formes maillées, triangulaires et primitives ;
  • mise en place et mise à l'échelle du maillage ;
  • détection de collision discrète et continue ;
  • système de requête de scène avancé.

La note de version établie par la société montre qu’il y a un bon nombre de changements, d’ajouts et de problèmes résolus dans cette nouvelle version du kit de développement.
« Avec PhysX SDK 4.0, les articulations réduites des coordonnées et le solveur temporel de Gauss-Seidel rendent les machines, les personnages / ragdolls et tout ce qui est joint ou articulé beaucoup plus robuste. Cela permet une gravité plus élevée, des impacts plus importants, des fonctionnalités plus petites et des pas de temps plus importants », peut-on lire sur le site de l’éditeur.

Au niveau de la performance, de nouvelles méthodes de filtrage ont été introduites pour la cinématique et la statique. Une nouvelle hiérarchie de volumes englobants sert à accélérer les requêtes dans les scènes qui comportent un grand nombre d'objets simulés. Une liste des nouveautés de PhysX SDK 4.0 selon l’éditeur est la suivante :

  • le solveur temporel de Gauss-Seidel (TGS), qui fabrique des machines, des personnages / ragdolls et tout ce qui est joint ou articulé beaucoup plus robuste. TGS recalcule de manière dynamique les contraintes à chaque itération, en fonction du mouvement relatif des corps ;
  • la nouvelle fonctionnalité d'articulations de coordonnées réduites permet la simulation des articulations sans erreur de position relative et sans actionnement réaliste ;
  • une nouvelle phase multi-large automatique ;
  • une évolutivité accrue avec de nouvelles règles de filtrage pour la cinématique et la statique ;
  • les requêtes de scènes centrées sur les acteurs améliorent considérablement les performances des acteurs aux formes multiples ;
  • il est maintenant possible de construire le système basé sur CMake.


Sources : PhysX SDK, Note de version

Et vous ?

Qu'en pensez-vous ?

Voir aussi

PhysX, le moteur physique de NVIDIA devient libre, PhysX 4 se focalisera sur la précision de la simulation

Les GeForce Volta de NVIDIA pourraient supporter la technologie RTX, la norme HDMI 2.1, la VRAM GDDR6 et un nouvel algorithme de Boost

Nvidia publie un CA trimestriel inférieur aux attentes des analystes l'entreprise est touchée par la baisse de la demande pour les cryptomonnaies
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -

Partenaire : Hébergement Web