Samples and Tutorials

TutorialsĀ are simple graphics applications intended to demonstrate the usage of the Diligent Engine API. The samples’ source files are hosted in DiligentSamples repository ( The following tutorials and samples are currently implemented.

Tutorial 01 – Hello Triangle


This tutorial shows how to render a simple triangle using Diligent Engine API.

Tutorial 02 – Cube


This tutorial demonstrates how to render an actual 3D object, a cube. It shows how to load shaders from files, create and use vertex, index and uniform buffers.

Tutorial 03 – Texturing


This tutorial demonstrates how to apply a texture to a 3D object. It shows how to load a texture from file, create shader resource binding object and how to sample a texture in the shader.

Tutorial 04 – Instancing


This tutorial demonstrates how to use instancing to render multiple copies of one object using unique transformation matrix for every copy.

Tutorial 05 – Texture Array


This tutorial demonstrates how to combine instancing with texture arrays to use unique texture for every instance.

Tutorial 06 – Multithreading


This tutorial shows how to generate command lists in parallel from multiple threads.

Tutorial 07 – Geometry Shader


This tutorial shows how to use geometry shader to render smooth wireframe.

Tutorial 08 – Tessellation



This tutorial shows how to use hardware tessellation to implement simple adaptive terrainĀ  rendering algorithm.

AntTweakBar sample


This sample demonstrates how to use AntTweakBar library to create a simple user interface.

Atmospheric Scattering Sample



The sample implements physically-based atmospheric light scattering model and demonstrates how Diligent Engine can be used to accomplish various rendering tasks: loading textures from files, using complex shaders, rendering to textures, using compute shaders and unordered access views, etc.


Please visit this GitHub page for build and run instructions.