PhysX 3.3 entre en phase de tests privés

L’équipe PhysX de NVIDIA a récemment proposé à des utilisateurs avancés de PhysX, choisis pour leur expérience et le temps qu’ils peuvent apporter aux tests, d’essayer en avant-première PhysX 3.3. Au menu, si ce n’est ce qui a été présenté à la GDC de cette année, on retrouve un bon nombre d’améliorations de performances. De manière générale, cependant, plus d’optimisations sont attendues pour la version finale.

Amélioration des performances et de la stabilité du solveur de solides

Les performances ont été améliorées de quinze à vingt pour cent par rapport à PhysX 3.2, qui représentait déjà une grande amélioration par rapport à PhysX 2.8.4. L’empreinte mémoire a été également améliorée.

Amélioration des performances et de la stabilité du solveur de solides

Algorithme alternatif de phase large de détection des collisions

L’algorithme MBP (multibox pruning) est maintenant disponible comme alternative à SAP (sweep and prune). Il fournit de meilleures performances quand tous les objets de la scène sont en mouvement ou quand de grands nombres d’objets y sont ajoutés. Ces bénéfices ne se montrent cependant que dans les cas où un grand nombre d’objets sont simulés activement et en mouvement simultanément ; sinon, l’algorithme SAP fournira de meilleures performances. Pour utiliser MBP, il faudra configurer un peu plus, en définissant un grille du monde et des frontières.

Algorithme alternatif de phase large de détection des collisions : comparaison des performances

Requêtes de scène plus robustes

L’API des requêtes de scène a été modifiée pour être plus cohérente, tandis que l’implémentation a été améliorée dans un grand nombre de scénarios.

Requêtes de scène plus robustes

Améliorations d’autres algorithmes

Le système de détection des collisions entièrement basé sur les distances PCM (persistent contact manifold) est maintenant souvent plus rapide et plus robuste que les algorithmes précédents.

Pour la détection des collisions continue (CCD), de grandes optimisations ont été apportées, faisant que le comportement du système a été amélioré. L’algorithme supporte maintenant des modifications de contact et les notifications.

Il sera bientôt possible de partager des formes entres des solides, ce qui permettra d’économiser de la mémoire si plusieurs acteurs ont une géométrie commune. Cependant, les géométries ne pourront pas voir leurs attributs modifiés tant qu’elles sont attachées à plusieurs acteurs.

Comme annoncé à la GDC, le solveur de tissus supporte maintenant de nouvelles fonctionnalités, comme les autocollisions, les collisions entre tissus, un nouveau solveur GPU et bien d’autres.

Support matériel

Le code GPU a été porté vers CUDA 5, d’où un support des GPU Kepler. Également, tant le solveur de tissus que de particules supportent la fonctionnalité d’interopérabilité CUDA-Graphics, ce qui permet d’améliorer les performances de la simulation en éliminant des appels inutiles au CPU.

Sur les plateformes ARM, PhysX peut désormais utiliser les extensions NEON de SIMD, afin d’améliorer les performances.

Source : http://physxinfo.com/news/11241/physx-sdk-3-3-closed-beta-testing-begins/

Démo de fracturation en temps réel couplée à une simulation de fluide

La fracturation et la simulation des fluides donnent déjà d’impressionnants résultats séparément – ensemble, l’effet est encore plus bœuf. Les prochaines versions de PhysX et d’APEX apporteront des améliorations tant pour la fracturation en temps réel (voir plus haut) que pour la simulation des fluides par SPH, ainsi que leurs interactions.

Source : http://physxinfo.com/news/10974/gdc-2013-demo-real-time-fracturing-coupled-with-fluid-simulation/.

Démo d’APEX Turbulence dans le CryENGINE

Une démo de simulation en temps réel de particules vient de sortir. Elle utilise le module Turbulence d’APEX et le moteur de jeu CryENGINE.

Cependant, il ne s’agit pas d’une fonctionnalité officielle du moteur, plus d’une preuve de faisabilité : en effet, le moteur n’utilise pas PhysX pour sa physique. Un système de particules a été codé pour la démo (une version simplifiée de celui de PhysX), le champ de vitesse a été laissé à APEX Turbulence. Les interactions avec des solides sont aussi gérées.

Source : http://physxinfo.com/news/11055/gdc-2013-demo-apex-turbulence-in-cryengine/

Nouvelles fonctionnalités dans la simulation des tissus

Le module de gestion des tissus a également reçu un peu d’attention. Le moteur développé pour PhysX 3 et intégré dans APEX 1.2 (même utilisé avec PhysX 2) était une grande simplification de la solution précédente : il est plus robuste, plus efficace, mais n’était pas aussi complet (il manquait le déchirement, les interactions avec les solides et les collisions).

La prochaine version, qui sera disponible avec PhysX 3.3 et APEX Clothing 1.3, proposera un nouvel algorithme d’autocollisions, pour un comportement plus naturel des tissus et une amélioration des plis. De plus, le support des collisions entre des tissus sera également disponible, afin de simuler des tissus à plusieurs épaisseurs (chose qui n’était pas possible précédemment).

En vidéo, approximativement 10 000 sommets par tissu ; le rendu a été effectué en temps réel sur GPU.

Source : http://physxinfo.com/news/10949/gdc-2013-physx-3-cloth-solver-will-add-self-collision-and-inter-collision-features/.

Fracturation massive en temps réel par décomposition convexe volumétrique approximative

De nouvelles techniques de fracturation ont déjà été montrées à la précédente GDC, mais l’équipe PhysX continue, avec une nouvelle démonstration technique montrant des algorithmes de fracturation en temps réel et de simulation de solides, une amélioration de ce qui a été proposé à la GDC 2012. Une article plus technique sera publié dès qu’il est accepté par le SIGGRAPH.

Source : http://physxinfo.com/news/11035/gdc-2013-real-time-dynamic-fracture-with-volumetric-approximate-convex-decompositions/.

Autodesk MassFX supportera les particules

Cette année, un nouveau module est ajouté à MassFX, après mRigids et mCloth : mParticles, un système de simulation de particules, qui sera intégré à 3ds Max 2014. Cette solution est générique et peut être utilisée pour simuler le comportement de divers types d’objets : des particules, des tissus ou des fluides (en ce compris la fumée).

Il s’agit d’une version modifiée d’un plug-in distribué par Orbaz, Particle Flow Tools: Box #2.

Sources : http://physxinfo.com/news/11017/3ds-max-2014-further-improves-massfx-with-mparticles-module/ et http://physxinfo.com/wiki/MassFX.
Voir aussi : http://www.orbaz.com/products/particleflow/box2/ et http://area.autodesk.com/blogs/maxstation/n184-what039s-new-in-3ds-max-2014.

PhysX 3 sera disponible sur la prochaine PlayStation 4

Peu après l’annonce de la PlayStation 4 par Sony, on apprend qu’une solution de moteur physique sera bien disponible de la part de NVIDIA pour cette nouvelle plateforme (à moins qu’un moteur d’intelligence artificielle ou d’animation soit bientôt annoncé, mais cela semble très peu probable). Ainsi, le PhysX SDK est d’ores et déjà disponible pour les développeurs enregistrés, selon des sources proches de l’industrie.

Une chose probablement très étonnante est que cette plateforme sera supportée… alors que tous les processeurs seront signés AMD, tant le CPU que le GPU. Ce dernier supporte bien évidemment des technologies de GPGPU, comme le montre une démo live, utilisant le moteur Havok et une accélération GPU d’une simulation d’un million de particules.

Du public a émergé une opinion : PhysX trouvera-t-il une place dans les consoles de prochaine génération et sera donc rapidement abandonné ? La page officielle de Sony sur la PlayStation 4 présentant les outils déjà disponibles pour la plateforme tend à prouver le contraire.

Il n’est pas encore sûr que l’accélération GPU sera disponible (peut-être partiellement ?) sur cette plateforme ; par contre, PhysX y sera et ne sera pas abandonné de si tôt.

Sources : http://www.scei.co.jp/ps4_tm/index.html et http://physxinfo.com/news/10531/nvidia-is-continuing-to-be-a-partner-for-physics-middleware-on-playstation-4/

APEX 1.2 est sorti, première version à supporter le PhysX SDK 3

Une nouvelle version de NVIDIA APEX est maintenant publiquement disponible. APEX est un framework de simulation physique basé sur le NVIDIA PhysX SDK, lui apportant diverses fonctionnalités avancées par le biais de modules spécialisés, mais surtout fournissant un ensemble d’outils d’authoring prévus pour les artistes (par le biais de plug-ins pour 3DS Max ou Maya, notamment). Tout comme le PhysX SDK, APEX est disponible gratuitement et peut être redistribué gratuitement dans des jeux ou moteurs de jeu sous certaines conditions.

Cette version 1.2 ajoute une série de nouvelles fonctionnalités majeures, comme le support du PhysX SDK 3 (la version 3.2 uniquement ; il faut remarquer qu’APEX est toujours compatible avec le SDK en version 2.8.4, malgré les énormes changements entre ces deux versions) ou les modules de turbulence (APEX Turbulence) et de champ de force (APEX ForceField), cette dernière fonctionnalité étant disponible dans le PhysX SDK 2 mais supprimée pour la troisième version. Les outils d’authoring ont également été mis à jour pour cette version.

Le support de cette nouvelle version du PhysX SDK apporte son lot d’améliorations diverses, notamment au niveau des performances (le solveur du module APEX Clothing est celui du SDK 3, peu importe la version utilisée). Cependant, le niveau de fonctionnalité reste relativement égal en fonction du SDK sous-jacent.

Une version 1.2.1 d’APEX est attendue très prochainement, elle ajoutera le support de plus de fonctionnalités du SDK 3, comme la simulation de corps rigides sur GPU.

GDC 2012 et PhysX/APEX

Lors de la Game Developer Conference, il eut été dommage de se priver de quelques nouveautés côté PhysX. Non, les simulations physiques n’étaient pas en reste.

De la simulation de fourrure et de la destruction en temps réel

Ce personnage très laineux est fait de 840 000 particules, simulées comme 100 000 fils. Cette partie de la démo se base sur un solveur encore actuellement en recherche, bien que les résultats soient d’ores et déjà prometteurs.

Le module Destruction d’APEX sera aussi agrémenté d’un module de destruction en temps réel, puisqu’il n’utilise actuellement que des modèles préfracturés – gageons que les applications qui l’utiliseront auront des destructions beaucoup plus naturelles et immersives.

Lire la suite

Sortie de PhysX 3.1, désormais aussi disponible pour Android

Au menu de cette première version de la série 3.1 du moteur physique PhysX par NVIDIA, on peut remarquer une ouverture à une série de plateformes. Principalement, Android, mais aussi le compilateur Visual C++ 2010 sous Windows (en lieu et place de la version 2005), en plus des plateformes supportées dans la série 3.0, à savoir Linux, OS X et Visual C++ 2008 sous Windows.

De même, les accélérations GPU supportent désormais CUDA 4 et on remarquera la présence des sources des extensions, contrôleur de personnages et des véhicules dans la version binaire disponible gratuitement.

Le code du SDK a aussi été nettoyé, en réduisant considérablement le nombre d’avertissements à la compilation (le compilateur est maintenant configuré pour les traiter comme des erreurs). Le guide utilisateur a aussi été complété.

Le module de simulation de tissu a été réécrit sur base des corps déformables de PhysX 2, même s’il manque quelques fonctionnalités (dont les collisions avec des corps solides), qui seront ajoutées lors des prochaines itérations de développement. Cette réécriture va de pair avec une nette amélioration des performances, tout spécialement sur consoles. Ceci induit aussi que le module de corps déformables sera supprimé dans une prochaine version et est actuellement déprécié.

APEX n’est toujours pas supporté pour cette version, cela devrait arriver dans les suivantes.

Cette nouvelle version du SDK est disponible dans le centre de support PhysX, gratuitement après validation d’un compte développeur : http://supportcenteronline.com/ics/support/default.asp?deptID=1949.

Source : PhysXInfo (http://physxinfo.com/news/6312/physx-3-1-is-ready-for-download-introduces-public-binary-sdk-for-android).