25 janvier 2023

Innovations dans les simulations physiques : plus d’interaction

*Avec la collaboration de David Ávila.

Nous continuons à enrichir les fonctionnalités de notre moteur graphique 3D, Evergine. Aujourd’hui, nous souhaitons vous en présenter une qui nous enthousiasme particulièrement et qui peut vous aider à simuler des mouvements aussi différents que des collisions de particules ou l’effet de l’air sur une voiture immobile dans une soufflerie.

Ce que nous avons fait

Jusqu’à présent, les démos de moteurs physiques dans un navigateur web offraient des fonctionnalités nettement réduites : peu d’objets et des possibilités d’interaction limitées… Comme vous pouvez le voir ci-dessous, nous avons au contraire porté toutes les fonctionnalités d’un moteur physique avancé (Bullet Physics) dans les navigateurs web. Cela ouvre la voie à des simulations physiques en temps réel plus avancées. Dans l’exemple suivant, vous pouvez voir une simulation utilisant des joints, qui relient différents objets physiques entre eux (les différents maillons du pont) et réagissent de façon dynamique avec les autres cubes de la scène :

Atteindre ce niveau de physique dans un navigateur web n’a pas été simple. Dans la vidéo suivante, les éléments sont encore plus nombreux, et l’on peut voir comment ils interagissent entre eux lorsqu’ils sont touchés par des projectiles physiques :

À quoi cela sert

De nombreux secteurs peuvent tirer parti de cette innovation. Par exemple, pour représenter des collisions de particules, ce dont profitent aussi les laboratoires de recherche, les universités ou d’autres établissements d’enseignement. Elle peut également servir à créer des souffleries virtuelles pour tester la résistance à l’air de véhicules, d’avions ou de ponts. Désormais, il devient aussi possible de « lancer » mathématiquement des éclairs pour reproduire des phénomènes atmosphériques dans des applications web. En outre, des simulations physiques réalistes permettent de concevoir des environnements de machine learning avancés.

WebXR peut également tirer parti de la prise en charge des simulations physiques sur le web. Par exemple, en lançant sur un téléphone mobile une application web compatible WebXR qui permet d’interagir, depuis l’écran, avec des objets physiques placés virtuellement dans le monde réel grâce à l’AR (réalité augmentée).

Comment nous y sommes parvenus

Chez Evergine, notre principal moteur physique est un moteur open source appelé Bullet Physic, ou simplement Bullet. Nous avons récemment réussi à compiler Bullet en WASM, un format de code binaire pour les navigateurs web.

Tous les moteurs graphiques que nous connaissons utilisent des moteurs physiques externes et les compilent en JavaScript ou S.js, mais seuls certains les ont compilés en WASM. Nous y sommes parvenus grâce à Emscripten, qui nous permet d’obtenir du WASM à partir de code C++, et aux dernières avancées de Microsoft dans les compilateurs Blazor, qui nous permettent de lier la bibliothèque Bullet Physics et de l’utiliser dans le moteur Evergine. Tout cela a été possible grâce aux dernières nouveautés publiées par Microsoft dans Blazor.NET6, un autre framework de développement d’applications de l’éditeur.

En bref, cette innovation nous place à l’avant-garde des moteurs graphiques et de la génération d’images 3D dans les navigateurs web. Si vous souhaitez en savoir plus sur les nouveautés d’Evergine rendues possibles par les avancées de Blazor et .NET6, nous serons ravis de vous aider.

josé manuel blanco
Auteur
José Manuel Blanco
Spécialiste de contenu