Wavicle s’organise exclusivement autour du GPU, en allouant et gérant les ressources nécessaires aux effets demandés, avec un impact sur le CPU à peu près nul. Puisque toutes les données sont déjà sur le GPU, elles peuvent être affichées très rapidement — tout comme la simulation des particules peut exploiter le tampon de profondeur utilisé pour le rendu, ce qui permet d’effectuer des calculs de collision avec les éléments affichés. L’avantage du GPU est qu’il peut traiter plus de particules qu’un CPU, simplement parce que ces calculs se prêtent mieux à la puissance de calcul disponible.
Le système est d’ores et déjà avancé, Wavicle permet de tester de nouveaux types d’interaction avec les données sur le GPU. Par exemple, il a permis le développement d’un système de simulation de fluides, avec une méthodologie SPH : le fluide est simulé comme une série de particules qui se déplacent, chacune modélisant une partie de la masse qui se déplace. En augmentant le nombre de particules utilisées, la simulation est plus précise, mais elle prend plus de ressources de calcul : il est alors possible de déterminer un compromis en performance assez précisément.
L’implémentation actuelle profite de DirectX 12 et de ses améliorations au niveau du calcul sur GPU. Cette passe de simulation s’intègre bien dans la nouvelle architecture de la partie affichage, spécifiquement repensée pour DirectX 12 : elle s’articule autour d’étapes bien définies, notamment pour s’occuper d’une partie de la géométrie de la scène ou pour traiter toute l’image, mais aussi pour effectuer des calculs plus généraux… et bientôt aussi asynchrones.
Actuellement, le prototype fonctionne assez bien. Les prochains travaux porteront principalement sur la gestion des collisions : les structures de données pour accélérer les recherches, notamment dans un voisinage donné, ne fonctionnent pas toujours aussi bien dans le contexte d'un affichage, de la physique ou encore de l'intelligence artificielle. La limitation principale de l'effet, actuellement, est qu'il est gourmand en temps de calcul ; cependant, un nombre réduit de particules peut déjà créer un rendu suffisant dans pas mal de cas, même si les cas d'utilisations doivent encore être définis plus précisément.
Source : Looking ahead: GPU Fluid Dynamics for Particles.
Ce contenu a été publié dans 2D, 3D, jeux par dourouc05.