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 (https://github.com/DiligentGraphics/DiligentSamples). The following tutorials and samples are currently implemented.

Tutorial 01 – Hello Triangle

Tutorial01_320x240

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

Tutorial 02 – Cube

Tutorial02_320x240

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

Tutorial03_320x240

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

Tutorial04_320x240

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

Tutorial05_320x240

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

Tutorial 06 – Multithreading

Tutorial06_320x240

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

Tutorial 07 – Geometry Shader

Tutorial07_320x240

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

Tutorial 08 – Tessellation

 

Tutorial08_320x240

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

AntTweakBar sample

AntTwBar

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

Atmospheric Scattering Sample

 

AtmScatteringSample01

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.