Diligent Graphics > Diligent Engine > Samples and Tutorials
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.
Page Contents
- 1 Tutorial 01 – Hello Triangle
- 2 Tutorial 02 – Cube
- 3 Tutorial 03 – Texturing
- 4 Tutorial 04 – Instancing
- 5 Tutorial 05 – Texture Array
- 6 Tutorial 06 – Multithreading
- 7 Tutorial 07 – Geometry Shader
- 8 Tutorial 08 – Tessellation
- 9 Tutorial 09 – Quads
- 10 Tutorial 10 – Data Streaming
- 11 Tutorial 11 – Resource Updates
- 12 Tutorial 12 – Render Target
- 13 Tutorial 13 – Shadow Map
- 14 Tutorial 14 – Compute Shader
- 15 Tutorial 15 – Multiple Windows
- 16 Tutorial 16 – Bindless Resources
- 17 Tutorial17 – MSAA
- 18 Tutorial18 – Queries
- 19 Atmospheric Scattering Sample
- 20 GLTF Viewer
- 21 Shadows
- 22 Dear ImGui Demo
- 23 Nuklear Demo
- 24 Hello AR
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.
Tutorial 09 – Quads
This tutorial shows how to render multiple 2D quads, frequently switching textures and blend modes.
Tutorial 10 – Data Streaming
This tutorial shows dynamic buffer mapping strategy using MAP_FLAG_DISCARD and MAP_FLAG_DO_NOT_SYNCHRONIZE flags to efficiently stream varying amounts of data to GPU.
Tutorial 11 – Resource Updates
This tutorial demonstrates different ways to update buffers and textures in Diligent Engine and explains important internal details and performance implications related to each method.
Tutorial 12 – Render Target
This tutorial demonstrates how to render a 3d cube into an offscreen render target and do a simple post-processing effect.
Tutorial 13 – Shadow Map
This tutorial demonstrates how to render basic shadows using a shadow map.
Tutorial 14 – Compute Shader
This tutorial shows how to implement a simple particle simulation system using compute shaders.
Tutorial 15 – Multiple Windows
This tutorial demonstrates how to use Diligent Engine to render to multiple windows.
Tutorial 16 – Bindless Resources
This tutorial shows how to implement bindless resources, a technique that leverages dynamic shader resource indexing feature enabled by the next-gen APIs to significantly improve rendering performance.
Tutorial17 – MSAA
This tutorial demonstrates how to use multisample anti-aliasing (MSAA) to make geometrical edges look smoother and more temporarily stable.
Tutorial18 – Queries
This tutorial demonstrates how to use queries to retrieve various information about the GPU operation, such as the number of primitives rendered, command processing duration, etc.
Atmospheric Scattering Sample
This sample demonstrates how to integrate Epipolar Light Scattering post-processing effect into an application to render physically-based atmosphere.
GLTF Viewer
This sample demonstrates how to use the Asset Loader and GLTF PBR Renderer to load and render GLTF models.
Shadows
This sample demonstrates how to integrate the Shadowing component into an application to render high-quality shadows.
Dear ImGui Demo
This sample demonstrates the integration of the engine with dear imgui UI library.
Nuklear Demo
This sample demonstrates the integration of the engine with nuklear UI library.
Hello AR
This sample demonstrates how to use Diligent Engine in a basic Android AR application.
Please visit this GitHub page for build and run instructions.