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

APEX Destruction : amélioration de performances

En comparant APEX 1.1 sur SDK 2.8.4 et APEX 1.2 sur SDK 3.2, on observe d’énormes gains de performances, sans utiliser la puissance du GPU, des gains allant jusqu’à 300 %. Ce résultat est dû à une série d’optimisations dans le SDK 3, dont un multithreading avancé, une utilisation extensive des extensions SIMD des processeurs modernes (comme les diverses versions de SSE) et des changements d’algorithmes.

Benchmark HallMark, inclus dans la distribution d’APEX 1.2. (Système de test : processeur Intel i7 2600K, GPU NVIDIA 580 GTX, 8 Go de RAM, Windows 7 64 bits, pas de synchronisation verticale.)

APEX Clothing

Le module peut maintenant utiliser deux solveurs : l’ancien du SDK 2.8.4 (supporté uniquement avec cette version du SDK), mais aussi le nouveau du SDK 3, ce dernier étant embarqué dans le module – il peut être utilisé quel que soit le SDK sous-jacent.

Ce nouveau solveur est bien plus performant que l’ancien (même sur CPU), tout en supportant plus de fonctionnalités (meilleur contrôle sur le pliage et la découpe des tissus, meilleur support des mouvements de haute énergie, etc.). Voir la présentation Character Clothing in PhysX 3 pour plus de détails.

Sur GPU, la différence de performances peut être plus époustouflante (sans oublier que les temps de chargement de données sur un GPU font souvent la différence pour des problèmes de trop petite ampleur).

APEX Turbulence

Pour la première fois, ce module est disponible publiquement à tous les utilisateurs d’APEX (il était déjà utilisé dans le jeu Dark Void et dans le moteur Unreal Engine 3).

Contrairement à la majorité des systèmes de SPH (Smoothed Particle Hydrodynamics), basés sur une approche lagrangienne des fluides (on s’intéresse à la trajectoire de particules fluides), ce module utilise un solveur eulérien basé sur une grille (on se concentre sur un lieu de l’espace et on y étudie les variations temporelles), pour une simulation des fumées de haute résolution, ainsi que des effets de poussières et particules touchées par les forces turbulentes.

Il supporte notamment les interactions avec des corps rigides et les lois de la thermodynamique : on peut ajouter des sources de chaleur à la simulation, la température évoluera sur toute la grille de calcul, en modifiant le comportement des particules. Au niveau de l’implémentation, ce module ne dispose pas d’émetteur de particules : il s’occupe « juste » de calculer la grille de turbulence, les champs de vitesse et d’appliquer les forces résultantes sur des particules issues du module APEX Particles.

Démo de l’exemple (vidéo)

Note importante : ces simulations de turbulences ne peuvent être effectuées que sur des GPU supportant NVIDIA CUDA, il n’y a pas d’implémentation CPU de ce module.

APEX ForceField

Fonctionnalité de base du PhysX SDK 2, elle a été supprimée dans le SDK 3 en annonçant qu’elle sera disponible prochainement via APEX. C’est pourquoi ce module n’est disponible que pour le SDK 3.2, bien que la solution proposée soit plus flexible et robuste que précédemment.

Désormais, on peut appliquer directement des champs de force très personnalisables à des objets divers (particules, corps rigides, tissus). Ce module vise la création d’effets comme des explosions, des zones sans gravité, du vent ou des tornades.

Laisser un commentaire