Developpez.com - Rubrique 2D-3D-Jeux

Le Club des Développeurs et IT Pro

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 2018-04-05 14:59:59, par dourouc05, Responsable Qt & Livres
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 ?
  Discussion forum
7 commentaires
  • Bousk
    Rédacteur/Modérateur
    Envoyé par Steinvikel
    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.
  • dourouc05
    Responsable Qt & Livres
    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
  • Steinvikel
    Membre expert
    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.

    Envoyé par dourouc05
    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."

    Envoyé par dourouc05
    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 ?
  • darklinux
    Membre extrêmement actif
    Depuis le temps , Nvidia aurait faire cela il y a bien longtemps
  • 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 ".