Skip to content

StarshipVendingMachine/DiligentSamples

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DiligentSamples

This module contains tutorials and sample applications intended to demonstrate the usage of Diligent Engine. The module depends on the Core and Tools submodules.

To build and run the applications in the module, please follow the instructions in the master repository.

License Chat on gitter

Tutorials

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

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.

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.

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

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

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

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

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

This tutorial shows how to render multiple 2D quads, frequently swithcing textures and blend modes.

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.

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.

Samples

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

This sample demonstrates how to integrate Epipolar Light Scattering post-processing effect into an application to render physically-based atmosphere.

Build and Run Instructions

Please refer to Build and Run Instructions section of the master repository's readme.

Version History

v2.4.a

  • Added rendering backend selection dialog on Win32 and Mac

v2.3.a

  • Added Tutorial 10 - Streaming
  • Added Tutorial 11 - Resource Updates

v2.3

  • Implemented Vulkan backend
  • Added fullscreen mode selection dialog box
  • Implemented fullscreen mode toggle on UWP with shift + enter
  • Implemented fullscreen window toggle on Win32 with alt + enter
  • Added tutorial 09 - Quads

v2.2

  • Enabled MacOS and iOS platforms
  • Fixed multiple issues with OpenGL/GLES

v2.1.b

  • Removed legacy VS projects and solutions
  • Added tutorials:
    • 01 - Hello Triangle
    • 02 - Cube
    • 03 - Texturing
    • 04 - Instancing
    • 05 - Texture Array
    • 06 - Multithreading
    • 07 - Geometry Shader
    • 08 - Tessellation

v2.1.a

  • Refactored build system to use CMake and Gradle for Android
  • Added support for Linux platform

v2.1

v2.0.alpha

v1.0.0

Initial release


diligentgraphics.com

Diligent Engine on Twitter Diligent Engine on Facebook

About

Sample projects demonstrating the usage of Diligent Engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 83.5%
  • C 12.6%
  • Java 1.3%
  • CMake 1.1%
  • GLSL 0.8%
  • HLSL 0.5%
  • Makefile 0.2%