24 octobre 2024

Une nouvelle version majeure d'Evergine est disponible !

Tout juste sortie du four, nous sommes ravis de vous présenter la dernière release d'Evergine ! Nous continuerons à publier des versions mineures tout au long de 2024, mais il s'agit de la dernière version majeure de l'année. La prochaine mise à jour majeure est prévue pour février-mars 2025, conformément à notre feuille de route.

Cette nouvelle version ouvre une nouvelle dimension passionnante pour Evergine en intégrant des modèles d'IA qui peuvent s'exécuter dans des services cloud ou localement sur votre machine. Ces outils d'IA permettent de générer des assets essentiels au développement (modèles, textures, cubemaps, animations et sons) directement dans Evergine Studio. C'est la première étape d'un plan plus large visant à renforcer nos capacités de création d'assets.

En intégrant des modèles d'IA dans leur flux de travail, les développeurs peuvent considérablement augmenter leur productivité et fluidifier l'ensemble du processus de développement.

Evergine est un moteur graphique développé par Plain Concepts pour faire fonctionner nos produits internes, avec depuis dix ans un engagement envers un modèle de licence simple d'utilisation :

  • Evergine est entièrement gratuit pour un usage commercial.
  • Aucune inscription n’est requise.
  • Nous ne surveillons ni votre utilisation ni votre activité (aucune télémétrie).
  • La licence est valable pour tous les secteurs.

Quoi de neuf ?

La dernière release d'Evergine introduit la génération d'assets par IA comme fonctionnalité phare, permettant aux développeurs de tirer parti de flux de travail assistés par IA directement dans Evergine Studio.

Dans cette version, nous avons migré l'ensemble du projet Evergine vers .NET 8, en faisant passer toutes les bibliothèques depuis .NET Standard 2.0. Toutes les plateformes et tous les outils sont désormais compilés avec .NET 8, ce qui garantit de meilleures performances et une meilleure compatibilité sur toute la ligne.

Nous avons également ajouté un nouvel asset puissant pour créer des bibliothèques d'effets. Il permet aux développeurs d'écrire du code réutilisable basé sur HLSL et de réduire la duplication de code dans les shaders. Ces shaders peuvent ensuite être compilés automatiquement en GLSL, SPIR-V, MSL ou WGSL, ce qui simplifie le processus de développement.

Autre nouveauté passionnante : le support natif expérimental de WebGPU. Nous avons implémenté un adaptateur bas niveau à l'aide du projet wgpu, qui offre un moyen rapide et efficace d'exploiter cette API de pointe dans Evergine. C'est une étape majeure vers le support complet de WebGPU dans les navigateurs, qui permettra d'utiliser les compute shaders et apportera des améliorations significatives par rapport à WebGL pour les applications web.

Et ce n'est qu'un début ! Plongez dans cette nouvelle release pour découvrir toutes les fonctionnalités innovantes que nous avons intégrées à Evergine. Place à l'exploration !

Téléchargement et installation :

Principales nouveautés

  • Génération d’assets par IA
  • Migration complète vers .NET 8.0
  • Prefabs imbriqués pour MRTK et XRV
  • Nouvel asset Library Effect
  • Support des motion vectors dans le Render Path
  • Support natif expérimental de WebGPU
  • Support simultané des mains et des contrôleurs en MR
  • Support d'un nombre variable de poids d'os
  • Documentation enrichie

Génération d'assets par IA

Il s'agit de la première release d'Evergine à introduire des outils d'IA pour la génération d'assets dans le flux de travail d'Evergine Studio. Cette première étape permet de générer des modèles 3D détaillés et texturés à partir de texte ou d'images grâce à un service cloud, et nous prévoyons d'explorer d'autres modèles d'IA pour permettre de générer différents types d'assets.

Nous étudions également l'intégration de différents modèles d'IA, afin que les utilisateurs puissent les comparer et choisir la meilleure option pour chaque tâche, qu'il s'agisse de modèles d'IA locaux exécutés directement sur leur machine ou de modèles d'IA dans le cloud qui progressent rapidement en qualité.

Dès aujourd'hui, vous pouvez utiliser les outils d'IA intégrés à Evergine Studio pour générer des assets directement dans votre flux de développement. Nous avons également ajouté une galerie dans laquelle vous pouvez stocker vos modèles 3D pour constituer votre propre bibliothèque de modèles 3D.

Si vous souhaitez l'essayer, consultez l'article suivant pour savoir comment faire : https://evergine.com/ai-driven-asset-generation/

Migration complète vers .NET 8.0

L'écosystème .NET évolue rapidement et nous cherchons toujours à proposer les API recommandées pour les projets .NET. Comme le montre l'image ci-dessus, le support de .NET 7 a pris fin en mai 2024 et celui de .NET 6 prendra fin en novembre 2024.

Pour garder une longueur d'avance, nous avons migré l'ensemble du framework et des outils du projet Evergine vers .NET 8.0, ce qui nous permet de tirer pleinement parti des nouvelles fonctionnalités de C# 12 et des améliorations de performances. Nos développeurs travaillent ainsi avec une version stable et supportée pour leurs produits. Tous nos modèles étant déjà à jour pour .NET 8, les développeurs ne rencontreront aucun changement cassant.

.NET 8 bénéficiera d'un support officiel jusqu'en novembre 2026 : si vous démarrez un nouveau projet aujourd'hui, c'est la version que nous vous recommandons.

Prefabs imbriqués pour MRTK et XRV

Après l'introduction du support des prefabs imbriqués dans la version précédente, nous avons mis à jour dans cette release nos deux principales bibliothèques de création d'expériences de réalité mixte pour tirer pleinement parti de cette fonctionnalité.

Il s'agit de MRTK et XRV. MRTK était déjà publié dans un dépôt GitHub public ; avec cette version, nous rendons également XRV public sous licence MIT.

XRV est une nouvelle bibliothèque construite sur MRTK, qui propose des utilitaires de plus haut niveau pour développer rapidement des applications de réalité mixte. Elle comprend notamment des menus de main, des thèmes et la localisation, des boîtes de dialogue intégrées, l'accès au stockage cloud et des modules intégrés comme Ruler, Painter, Model Viewer, et bien d'autres.

Voici les liens pour découvrir ces bibliothèques :

MRTK : https://github.com/EvergineTeam/MixedRealityToolkit

XRV : https://github.com/EvergineTeam/XRV

Nouvel asset Library Effect

À partir des retours des utilisateurs, nous avons amélioré la réutilisabilité et la maintenabilité des shaders créés avec l'outil Evergine Effect. Cet outil permet d'écrire des shaders en HLSL et de les exécuter directement sur OpenGL, Metal, Vulkan, WebGL ou WebGPU. En interne, le code est automatiquement traduit en GLSL, SPIR-V, MSL ou WGSL.

Dans cette version, nous avons introduit un nouvel asset appelé Library Effect, qui permet d'écrire du code réutilisable partagé entre plusieurs shaders. Les fonctions, constantes, variables, structs et directives communes peuvent être regroupées dans un seul fichier de bibliothèque, ce qui réduit la duplication de code et améliore la maintenabilité. Cela garantit aussi la cohérence entre les shaders qui utilisent la même logique.

Par exemple, si vous devez créer un shader qui s'exécute sur WebGL (basé sur OpenGL 3.0) et sur Vulkan avec des compute shaders, vous pouvez utiliser un Library Effect pour écrire les fonctions communes et les partager entre les plateformes, même lorsqu'elles utilisent des pipelines de traitement différents.

Pour en savoir plus, poursuivez votre lecture ici : https://evergine.com/new-library-effect-in-evergine/

Support des motion vectors dans le Render Path

Les informations de motion vectors sont indispensables pour obtenir des résultats optimaux avec des techniques comme le Temporal Anti-Aliasing (TAA) ou le Motion Blur. Nous avons amélioré ces deux techniques intégrées à notre graphe de post-traitement par défaut en ajoutant ces informations dans une passe G-buffer du Render Path dès que ces techniques sont actives.

Les motion vectors sont également indispensables pour intégrer de nouvelles techniques comme la super-résolution ou la génération d'images basées sur Nvidia DLSS ou AMD FSR 3. Sans ces données, les objets animés peuvent présenter des artefacts visuels au rendu.

En intégrant les informations de motion vectors dans le Render Path par défaut, nous permettons aux développeurs de les utiliser plus facilement comme texture d'entrée dans leurs shaders, sans avoir à réécrire un Render Path personnalisé complet.

Pour implémenter les motion vectors, nous avons apporté des modifications à Transform3D et SkinnedMeshRenderer. Pour plus d'informations, consultez : https://evergine.com/implementing-motion-vectors-pass-post-processing/

Support natif expérimental de WebGPU

Cette release introduit, via un nouveau modèle, un support expérimental de WebGPU, une nouvelle API graphique moderne qui offre aux développeurs un accès bas niveau au GPU sur les plateformes web. Il s'agit d'un nouveau standard web du W3C, conçu pour offrir de meilleures performances, des fonctionnalités plus avancées et un accès plus direct au GPU que l'actuel WebGL 2.0.

WebGPU s'appuie sur les API graphiques natives des différentes plateformes, comme DirectX12, Vulkan ou Metal, et ses principales différences par rapport à WebGL sont les suivantes :

  • Performances : un accès plus efficace aux ressources GPU que WebGL, pour de meilleures performances, en particulier dans les applications complexes ou gourmandes en ressources.
  • Support du compute : la prise en charge des compute shaders, absente de WebGL, permet à WebGPU de traiter des tâches qui vont au-delà du rendu graphique.
  • Complexité de l'API : plus complexe que WebGL, elle exige une meilleure maîtrise de la programmation GPU, mais offre beaucoup plus de contrôle et de flexibilité.

La plupart des navigateurs populaires sont en train de déployer le support de cette nouvelle API : les navigateurs basés sur Chromium prennent déjà en charge WebGPU dans leurs versions stables et, pour ajouter rapidement le support de cette API, Firefox a créé un projet appelé WGPU ou WebGPU native, une bibliothèque graphique multiplateforme en Rust basée sur le standard WebGPU mais qui s'exécute sur desktop. Nous l'utilisons pour valider notre nouvel adaptateur WebGPU et nous prévoyons de publier le modèle web dans la prochaine release.

Cette nouvelle API graphique web vous intéresse ? Plus d'informations sur : https://evergine.com/experimental-webgpu-native-support/

Support simultané des mains et des contrôleurs en MR

L'entrée multimodale dans les applications de réalité mixte assure le suivi simultané des mains et des contrôleurs, et indique également si les contrôleurs sont tenus en main ou non.

Les utilisateurs peuvent tenir un contrôleur d'une main pour les actions de précision, comme l'utilisation d'outils, tout en gardant l'autre main libre pour interagir avec les objets de façon immersive. Il est possible de passer des mains aux contrôleurs selon son confort, ce qui contribue à réduire la fatigue lors des sessions prolongées.

Le système permet des transitions instantanées en détectant quand les contrôleurs ne sont plus tenus, ce qui permet de basculer immédiatement d'une entrée à l'autre. L'entrée multimodale continue de suivre les contrôleurs même lorsqu'ils ne sont pas tenus, ce qui permet aux utilisateurs de les retrouver facilement sans rompre l'immersion.

Cette nouvelle fonctionnalité sur les appareils Meta Quest ouvre un monde de possibilités aux techniciens qui utilisent ces technologies en environnement industriel, où la précision et les mains libres sont toutes deux indispensables pour mener à bien leurs tâches.

Support d'un nombre variable de poids d'os

La nouvelle fonctionnalité Variable Bone Weights Support d'Evergine améliore le système d'animation en permettant à chaque modèle d'utiliser un nombre différent de poids d'os par sommet. Auparavant, les modèles dans Evergine étaient limités à un nombre fixe de poids d'os, ce qui limitait la qualité des animations, en particulier dans les zones très détaillées comme les expressions faciales. Cette amélioration permet de travailler avec des modèles animés de grande taille. Outre l'amélioration du système de skinning, les shaders ont été mis à jour pour prendre en charge efficacement cette fonctionnalité. Le pipeline de rendu s'adapte dynamiquement pour gérer des poids d'os variables, en maintenant les performances tout en offrant une qualité visuelle supérieure.

Cette fonctionnalité permet aux développeurs d'obtenir des animations plus fidèles, en leur donnant les outils nécessaires pour créer des personnages plus expressifs et plus naturels.

Documentation enrichie

Dans le cadre de notre engagement continu à améliorer l'expérience des développeurs avec Evergine, cette release apporte des mises à jour importantes à la documentation du projet. Nous avons enrichi les sections consacrées aux maillages et aux animations, au XR Passthrough, au Library Effect et à l'extension ImGUI.

Ces mises à jour comprennent des exemples détaillés d'utilisation de nos API et des conseils pratiques pour aider les développeurs à tirer le meilleur parti des fonctionnalités d'Evergine. Cette documentation améliorée vise à simplifier les flux de travail et à fournir des indications claires sur la meilleure façon d'utiliser ces outils, pour une expérience de développement plus fluide.

Pour plus de détails, vous pouvez consulter les liens suivants :

Maillages des modèles : https://docs.evergine.com/2024.10.24/manual/graphics/meshes/index.html

XR Passthrough : https://docs.evergine.com/2024.10.24/manual/xr/passthrough.html

Nouveau Library Effect : https://docs.evergine.com/2024.10.24/manual/graphics/effects/library_effect.html

Exemples d'extensions ImGUI : https://docs.evergine.com/2024.10.24/manual/extensions/imgui/features.html

Travaux à venir

Nous espérons que cette release vous plaira, pendant que nous continuons à travailler d'arrache-pied sur la prochaine version majeure, prévue pour février-mars 2025. Comme indiqué plus haut, l'intégration de modèles d'IA générative dans Evergine Studio est pour nous une orientation passionnante, et nous allons continuer à la développer.

Nous avons également expérimenté les grands modèles de langage (LLM) comme moyen potentiel d'améliorer notre documentation web et d'accélérer les cycles de développement. Nous continuerons à explorer ces technologies pour intégrer davantage d'outils dans les prochaines releases.

Je suis également heureux de vous annoncer que notre feuille de route comprend de nouvelles plateformes et fonctionnalités pour différents secteurs. Nous souhaitons travailler en étroite collaboration avec de nombreuses entreprises et écouter leurs retours afin de raccourcir le cycle d'introduction de fonctionnalités utiles.

Par ailleurs, nous développons un tout nouveau pipeline de rendu pour prendre en charge les dernières fonctionnalités des API graphiques, comme les Mesh Shaders, ce qui nous permettra d'optimiser les performances sur chaque plateforme. Nous travaillons aussi sur de nouvelles fonctionnalités comme un Job System, qui aidera les développeurs à écrire du code CPU multithread de la même manière qu'ils utilisent les compute shaders.

Restez à l'écoute pour d'autres nouveautés !

Merci pour votre soutien continu à Evergine. Nous sommes ravis de travailler à vos côtés pour créer des technologies de pointe pour vos produits.

Excellente journée !

Javier canton
Auteur
Javier Cantón
Plain Concepts Research