Diligent Engine

Diligent Engine is a light-weight cross-platform abstraction layer between the application and the platform-specific graphics API. Its main goal is to take advantages of the next-generation APIs such as Direct3D12 and Vulkan, but at the same time provide support for older platforms via Direct3D11, OpenGL and OpenGLES. Diligent Engine exposes common front-end for all supported platforms and is designed to be used as a graphics subsystem in a game engine or any other 3D application. It is distributed under Apache 2.0 license and is free to use. Full source code is available for download at GitHub. The engine contains shader source code converter that allows shaders authored in HLSL to be translated to GLSL.

We would like to make it clear that Diligent Engine is not a rendering engine, it is a graphics engine. It does not operate with high-level concepts like meshes, materials, lights etc. Rather, it provides API to work directly with low-level entities like buffers, shaders, textures, etc. Render engines such as Unity provide great in-engine functionality. Unity supports a very wide range of platforms, and as a result, it exposes less capabilities to developers than are provided by modern APIs such as D3D11 or OpenGL4.2. If your goal is to prototype or develop a new technology, or just try a new cool idea then Unity may not be your best choice. Diligent Engine, to the contrary, exposes a lot of low-level capabilities, but is not limited to Windows platforms.

Features

The engine consists of the following components:

  • Engine Core provides basic engine functionality. It implements engine interface on the platform-specific graphics API.
  • Shader Converter is designed to convert HLSL source code into GLSL. It allows shaders to be developed in HLSL, yet enables the exact same shaders to be compiled on other platforms.
  • Render Script is an efficient tool that provides efficient run-time graphics resource description and facilitates resource management

The engine also contains several sample applications that demonstrate the usage of the engine. You can find API reference here.

The following platforms and graphics APIs are currently supported

Platform Supported APIs
Windows Desktop Direct3D11, Direct3D12, OpenGL4.2+
Universal Windows Platform Direct3D11, Direct3D12
Android OpenGLES3.0+