Fluid Based Wind Simulation in #unrealengine5 - Peter Sikachev || People Can Fly

Game Industry Conference
30 Nov 202229:23

Summary

TLDRCette présentation explique un système de simulation de fluides en temps réel utilisé dans Unreal Engine 5, permettant des simulations dynamiques influencées par des moteurs personnalisés. Elle couvre la mise en œuvre des moteurs et composants, l'optimisation des performances via des techniques comme la gestion des tics et les interfaces personnalisées pour Niagara. Des cas d'utilisation, tels que des explosions et des moteurs de vent, sont explorés, et les tests de performance sur RTX 3060 montrent des résultats prometteurs. Les objectifs futurs incluent l'amélioration de la simulation avec des vortex, la stabilisation temporelle et l'utilisation de calculs asynchrones.

Takeaways

  • 😀 Le système utilise des composants personnalisés et des acteurs qui peuvent être facilement manipulés par les artistes grâce à des paramètres blueprintables.
  • 😀 La simulation de fluide utilise des pointeurs faibles stockés dans un tableau, ce qui permet une gestion sécurisée de l'accès et de la modification entre les threads.
  • 😀 Pour optimiser les performances, seuls les composants qui se déplacent ou nécessitent des modifications sont activés (ticking).
  • 😀 Des nœuds de shader personnalisés sont utilisés pour sortir des données de vitesse et de rotation pour la simulation de fluides.
  • 😀 L'intégration avec Niagara permet de simuler des moteurs de vent affectant des particules de fumée en utilisant une interface de données personnalisée.
  • 😀 Les tests de performance ont été réalisés sur une carte graphique RTX 3060, ce qui équivaut aux performances des consoles de nouvelle génération, avec une simulation de fluide de 0,7 millisecondes pour une grille de 32x32.
  • 😀 La solution est encore en développement et non optimisée, mais fonctionne déjà pour des cas d'utilisation spécifiques tels que les explosions et la simulation de fluides.
  • 😀 Des moteurs locaux et des moteurs de sillage (wake motors) ont été intégrés pour manipuler le comportement des fluides en temps réel.
  • 😀 Les cas d'utilisation montrent l'impact des moteurs sur la simulation de fluides, y compris les effets visuels en utilisant des couleurs pour visualiser les mouvements de fluide.
  • 😀 Les projets futurs incluent l'amélioration de la simulation des vortex et des flux compressibles, ainsi que l'utilisation de simulations pré-calculées pour des cas nécessitant plus de précision.
  • 😀 Il est prévu d'implémenter une stabilisation temporelle pour résoudre les bruits dans la simulation des fluides et d'utiliser le calcul asynchrone pour améliorer les performances.

Q & A

  • Comment le système de simulation de fluides utilise-t-il les moteurs pour influencer les fluides ?

    -Le système utilise des moteurs attachés à des composants personnalisés dans Unreal Engine. Ces moteurs sont placés par des artistes, et ils influencent le comportement du fluide en modifiant des paramètres comme la vitesse et la rotation, qui sont ensuite appliqués dans le moteur de simulation de fluides.

  • Quelles sont les étapes de sécurité utilisées pour gérer les modifications de simulation de fluides entre les threads ?

    -Les modifications de simulation de fluides sont gérées en toute sécurité à l'aide de pointeurs faibles stockés dans un tableau. Lorsqu'une modification est nécessaire, une commande de rendu Q est déclenchée pour garantir que les modifications se produisent de manière sûre entre les threads.

  • Pourquoi le système ne met-il à jour les composants que lorsqu'ils bougent ?

    -Le système met à jour uniquement les composants qui bougent pour des raisons de performance. Cela permet de réduire le nombre de calculs nécessaires et d'optimiser la simulation de fluides en ne traitant que les éléments qui subissent des changements.

  • Qu'est-ce qu'une interface de données personnalisée dans Niagara et comment est-elle utilisée ?

    -Dans Niagara, une interface de données personnalisée est utilisée pour exposer des paramètres comme la vitesse du vent. Elle permet d'interagir avec les particules et de contrôler leur comportement en fonction de facteurs externes, comme le vent ou d'autres moteurs de fluides.

  • Quels cas d'utilisation ont été présentés dans la démonstration ?

    -Les cas d'utilisation incluent des exemples de simulation de fluides pour des explosions (fonctionnement des moteurs Omni), l'impact de murs bloquant le vent, l'effet des moteurs locaux sur les fluides, et l'influence du vent sur des particules de fumée dans Niagara.

  • Quel type de matériel a été utilisé pour tester la performance du système de simulation de fluides ?

    -La performance a été testée sur une carte graphique RTX 3060, équivalente aux consoles de nouvelle génération, avec une grille de simulation de fluides de 180x180, affichant des performances de 0,7 millisecondes pour 20 opérations de pression.

  • Quelles améliorations de performance sont envisagées pour l'avenir ?

    -Les améliorations prévues incluent l'optimisation de la simulation de fluides via le calcul asynchrone, l'implémentation des vortex, la simulation de fluides compressibles pour des effets comme les explosions, et la stabilisation temporelle pour réduire le bruit dans la simulation.

  • Pourquoi le système de simulation de fluides est-il actuellement en cours d'optimisation ?

    -Le système est encore en cours d'optimisation pour améliorer la performance et la précision. Certaines fonctionnalités, comme la gestion des vortex et des flux compressibles, nécessitent encore du travail avant d'atteindre un niveau optimal.

  • Quels défis sont associés à la simulation de fluides compressibles, en particulier pour les explosions ?

    -La simulation de fluides compressibles pour des explosions pose des défis en termes de précision et de calculs complexes, car elle nécessite de prendre en compte des changements rapides de pression et de volume dans le fluide, ce qui n'est pas encore parfaitement optimisé dans le système.

  • Comment le système prévoit-il d'améliorer la stabilité temporelle des simulations de fluides ?

    -Le système prévoit d'implémenter une stabilisation temporelle pour réduire le bruit dans les simulations de fluides. Cela permettra de rendre les simulations plus stables et réalistes, en particulier lors de calculs sur des périodes de temps prolongées ou dans des scénarios complexes.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
Simulation FluidesUnreal EngineMotors PersonnalisésOptimisationShadersNiagaraPerformanceVortexFlux CompressibleExplosionsAsync Compute
Do you need a summary in English?