
Annonce de la nouvelle version majeure d'Evergine
Nous annonçons aujourd'hui Evergine 2022.9.28. Il s'agit de la deuxième version majeure de l'année 2022, conformément à notre feuille de route qui prévoit deux versions majeures par an. Dans cette version majeure, nous avons ajouté de nombreuses nouvelles fonctionnalités et améliorations grâce aux retours de nos clients.
Quoi de neuf ?
Dans cette version majeure, nous nous sommes concentrés sur la correction de bugs et l'amélioration des performances, avec des avancées importantes comme la nouvelle API mathématique accélérée par le matériel. Nous avons également ajouté de nouvelles fonctionnalités de productivité, comme le nouvel éditeur de texte 3D, la prise en charge de Quest pour les contrôles MRTK et le hand tracking. Nous avons développé de nouveaux outils, comme l'extension ARCore et une extension ImGui incluant les bibliothèques ImPlot, ImNodes et ImGuizmo, parmi d'autres outils ajoutés à Evergine Studio. Enfin, nous avons encore enrichi la documentation de référence. Nous espérons que tous ces changements vous plairont.
Vous pouvez télécharger Evergine ici :
Points forts
- Nouvel éditeur de particules
- Intégration d'ARCore
- Mathématiques basées sur SIMD
- MRTK sur Quest
- Prise en charge du hand tracking sur Quest
- Nouvelles polices et prise en charge du texte
- ImGui, ImPlot, ImNodes et ImGuizmo
- Configuration visuelle des SceneManagers
- Niveau de détail pour les modèles
- Modèle expérimental WebXR
- Rendu dans des contrôles Windows Forms
- Plus de documentation
Nouvel éditeur de particules
Dans Evergine, le système de particules sert à rendre des effets qu'il est généralement difficile de représenter avec des maillages ou des sprites. Jusqu'à cette version, il fallait toutefois le configurer par code. Dans cette nouvelle version majeure, nous présentons un nouvel outil intégré à Evergine Studio qui permet d'expérimenter facilement avec tous les paramètres pris en charge par ce système de particules complexe.
Pour en savoir plus sur le nouvel éditeur de particules et ses fonctionnalités, cliquez ici.
Intégration d'ARCore
L'une des fonctionnalités les plus intéressantes de cette version pour les développeurs mobiles est la prise en charge d'ARCore dans l'extension ARMobile. Elle vous permet d'accéder à l'API ARCore pour suivre le déplacement de l'appareil dans l'espace, ce qui sert à afficher des objets 3D par-dessus l'image de la caméra. L'application a également accès aux fonctionnalités d'estimation de la lumière et de suivi du visage.
Pour en savoir plus sur les nouvelles fonctionnalités de l'extension ARMobile, cliquez ici.
Mathématiques basées sur SIMD
La nouvelle version d'Evergine apporte des améliorations de performances à la bibliothèque Evergine.Mathematics. Elle tire désormais parti de la nouvelle prise en charge des instructions SIMD dans NET6, qui permet d'utiliser les instructions accélérées par le matériel définies par les fabricants de CPU : la nouvelle API vérifie si le matériel prend en charge ces extensions pour les utiliser et, dans le cas contraire, emprunte le chemin de rétrocompatibilité. Sur les architectures x64 et x86, elle peut utiliser les vecteurs SSE et AVX, et sur l'architecture Arm64, AdvSIMD. Résultat : des performances multipliées par 3 à 4 pour les opérations sur Math4x4, Matrix3x3, Quaternion et Vector4.
Pour en savoir plus sur les nouvelles mathématiques basées sur SIMD, cliquez ici.
MRTK sur Quest
Notre Mixed Reality Toolkit (MRTK), qui contient de nombreux contrôles 3D, permet de créer des applications de réalité mixte sur HoloLens 2. Il est désormais compatible avec les appareils Meta Quest : vous pouvez donc l'utiliser pour créer des applications 3D sur cette plateforme et partager le code entre appareils MR et VR. Cela peut être utile pour prototyper rapidement des applications MR sur Quest, car le déploiement y est plus rapide.

Prise en charge du hand tracking sur Quest
L'intégration OpenXR intègre désormais le hand tracking. Dans les applications XR, le hand tracking permet aux utilisateurs d'interagir avec des objets et des environnements virtuels à l'aide de leurs mains. C'est une nouvelle façon d'interagir avec votre scène virtuelle sans recourir aux manettes habituelles.
Ce sont les appareils Meta Quest qui tireront le plus parti de cette fonctionnalité.
Pour en savoir plus sur la prise en charge du hand tracking sur Quest, cliquez ici.
Nouvelles polices et prise en charge du texte
Dans cette version majeure, nous avons ajouté à Evergine Studio un nouveau type d'asset et un outil d'édition pour le texte 3D. Ce nouveau texte 3D est accéléré matériellement par le GPU et utilise la technique du champ de distance signé multicanal (MSDF) pour réduire l'aliasing en fonction de la taille à l'écran. Le nouvel outil Font Editor vous permet d'utiliser des fichiers TTF pour définir une nouvelle police et son jeu de caractères en encodage UTF-8 ou ASCII, que vous pourrez utiliser dans vos textes 3D.
Pour en savoir plus sur le nouveau texte 3D et les outils de polices, cliquez ici.

ImGui, ImPlot, ImNodes et ImGuizmo.
Avec la première release de l'année, nous avions introduit la prise en charge de la bibliothèque ImGui dans notre API bas niveau. Pour cette release, nous avons créé une nouvelle extension ImGui qui contient un ImGuiManager afin de faciliter son utilisation depuis notre API de haut niveau à l'aide de behaviors. Nous avons également ajouté la prise en charge de trois des bibliothèques de composants et de widgets les plus intéressantes basées sur ImGui.
- ImGuizmo contient des widgets 3D utiles pour prototyper rapidement des éditeurs WYSIWYG.
- ImPlot est une bibliothèque complète permettant de rendre des graphiques simples et avancés à l'aide du GPU.
- ImNodes vise à fournir une interface simple pour créer un éditeur de graphes de nœuds.
Pour en savoir plus sur cette nouvelle extension, cliquez ici.
Configuration visuelle des SceneManagers
Jusqu'à présent, les SceneManagers devaient être configurés par code, mais cette version propose une nouvelle façon de le faire depuis le Studio. Dans Evergine Studio, accédez à la zone Entity Detail : vous y trouverez un nouvel onglet nommé Scene Managers. Vous pouvez y modifier les paramètres des managers intégrés, comme AssetSceneManager, BehaviorManager ou ShadowMapManager, ainsi que ceux des SceneManagers personnalisés que vous écrivez depuis Visual Studio.

Niveau de détail pour les modèles
Le niveau de détail (LOD) est une technique qui réduit le nombre d'opérations GPU nécessaires à Evergine pour rendre des modèles éloignés. Elle permet à Evergine de réduire la complexité du modèle rendu pour une Entity en fonction de sa distance à la caméra. Vous pouvez configurer les niveaux de LOD dans votre application de modélisation 3D externe, et Evergine crée et configure automatiquement l'Entity et les composants nécessaires lorsque vous faites glisser le modèle dans une scène. Dans l'arborescence de la hiérarchie, il sera représenté par une entité parente comportant une entité enfant pour chaque niveau de LOD défini. L'entité parente doit contenir un composant LODGroup, qui permet de configurer tous les paramètres nécessaires pour rendre correctement ce modèle selon la distance à la caméra, et chaque enfant aura un composant LODEntry contenant les informations dont le LODGroup a besoin pour définir chaque niveau.

Modèle expérimental WebXR
La proposition W3C WebXR est actuellement à l'état de brouillon, mais elle est déjà implémentée dans Chrome depuis la version 79. Elle est actuellement prise en charge sur PC avec Chrome ou Firefox, ainsi que sur mobile et sur la plateforme Meta Quest avec le navigateur Chrome, où elle peut être activée en ajoutant un flag dans chrome://flags.
Nous avons ajouté un nouveau modèle de projet pour commencer à utiliser la technologie WebXR AR + WebGL avec Evergine, et nous continuerons à suivre ce nouveau standard prometteur pour les plateformes web.
Rendu dans des contrôles Windows Forms
Avec cette nouvelle release, vous pouvez effectuer le rendu d'Evergine non seulement dans une fenêtre Windows Forms (en occupant toute la fenêtre), mais aussi dans un contrôle personnalisé utilisé comme cible de rendu. Vous pouvez ainsi combiner une surface Evergine avec d'autres contrôles Windows Forms.
Pour utiliser Evergine comme contrôle utilisateur, il suffit d'utiliser FormsSurface et de l'enregistrer comme contrôle de rendu :
var surface = windowsSystem.CreateSurface(0, 0) as FormsSurface;
window.SetEvergineControl(surface.NativeControl);
windowsSystem.RegisterLoopThreadControl(surface.NativeControl);
window.Show();
Consultez notre UIWindowsSystemDemo pour plus d'informations.
Plus de documentation
Nous avons continué à améliorer le site de documentation de référence en ajoutant des informations sur les nouvelles extensions, ImGui et ARMobile. Nous avons enrichi la documentation de XRPlatform avec les nouvelles fonctionnalités et créé deux grandes sections consacrées à l'utilisation de l'audio et de la physique. L'audio est un élément central du moteur : nous y expliquons le workflow complet pour ajouter des sons et des effets aux projets. Dans la nouvelle section Physique, nous avons tenté d'expliquer en détail les possibilités offertes par le moteur physique.
Consultez toutes les modifications sur https://docs.evergine.com/

Guide de mise à niveau
Nous avons apporté certaines modifications pour prendre en charge le LOD dans les modèles, ce qui nécessite de réexporter ce type d'assets. Si vous prévoyez de mettre à jour un projet existant, supprimez le dossier .evergine (situé au même niveau que le fichier de votre projet Evergine) pour forcer ce processus d'exportation.
Travaux à venir
Nous publierons d'autres versions mineures au cours de cette année, mais la prochaine version majeure sortira en 2023. Nous continuerons à travailler en étroite collaboration avec les entreprises qui utilisent déjà Evergine dans leurs produits et avec celles qui commencent à l'utiliser. Nous travaillons à la prise en charge de nouveaux formats de fichiers industriels, de nouvelles plateformes et de nouvelles technologies. Enfin, nous continuerons à améliorer notre plateforme web en prenant en charge de nouveaux standards, afin d'aider les entreprises à créer de nouveaux produits 3D basés sur Evergine.
Nous espérons que vous avez pris autant de plaisir à lire cet article que nous à l'écrire.
Bonne journée !





