Diligent Engine : un framework de rendu multiplateforme supportant Vulkan, Direct3D et OpenGL

Diligent Engine est une bibliothèque, multiplateforme de rendu. Tout en supportant les vieilles bibliothèques telles que OpenGL, OpenGL ES et Direct3D 11, Diligent Engine supporte et tire bénéfices des nouvelles technologies telles que Direct3D 12, Vulkan et Metal. Pour unifier le développement, l'équipe de Diligent Engine repose sur le HLSL. Il est tout de même possible d'utiliser le GLSL ou SPIR V avec les rendus correspondants. En bref, Digilent Engine s'incorpore dans des projets de jeux vidéo ou des applications 3D en tant que moteur graphique.

On listera les bénéfices suivants :
  • un code multiplateforme (quelle que soit la plateforme, et ce même pour les shaders) ;
  • haute performance ;
  • design modulaire (possibilité de ne prendre que ce qui vous intéresse) ;
  • pas d'immense fichier ;
  • interface basée sur les objets (pas d'état global) ;
  • liaison des shaders automatique ;
  • génération des tampons de commande automatique ;
  • C++ moderne.



En lisant la description de Digilent Engine, il sera facile de rapprocher le projet avec bgfx, un autre projet multiplateforme et open source (licence BSD). Toutefois, l'équipe avance que Digilent Engine est mieux, car construit à partir de rien afin de profiter des avantages des nouvelles bibliothèques de rendu. Aussi, Diligent Engine offre de meilleures abstractions des fonctions de rendu, un contrôle explicite des transitions des états des ressources, un modèle de liaison des ressources efficace, du multi-thread et le support de Vulkan.

Le code de Digilent Engine est disponible sur GitHub, sous licence Apache 2.0. Le projet se compile grâce à CMake et dispose d'une douzaine de tutoriels, de deux programmes d'exemples et de deux démos plus complètes.


Votre opinion

Pensez-vous que ce type de framework est encore utile ?
Dans quel projet seriez-vous prêt à l'utiliser ?
Est-ce que vous pensez qu'une entreprise pourrait s'y intéresser ?


Source

Site officiel