Skip to content

Narvin-Chana/SnailEngine

Repository files navigation

Snail Engine

DirectX 11 C++ Game Engine.

Created by :

  • Narvin Chana
  • Alexandre Lemarbre-Barrett
  • Paul Richard
  • Hugo Pierron

Scenes are created via .json files like in Example.json. Some default scenes with meshes, textures and other assets are available here.

Features

  • Blinn-Phong deferred lighting
  • Screen-Space Deferred Decals
  • Directional Light (CSM with PCF)
  • Spot and Point Lights
  • Normal Mapping
  • Volumetric Lighting inspired by Benjamin Glatzel's work
  • Procedural GPU-Instanced Grass inspired by Sucker Punch's work on Ghost of Tsushima
  • Terrain Loading and Chunking
  • Multithreaded .obj parsing and asset management
  • SSAO
  • FXAA
  • PhysX 5.3 Integration
  • ImGui Editor (Scene JSON loading and serialization)

Screenshots

The following screenshots are all taken in-engine.

Screen-Space Deferred Decals

image

Volumetric Lighting

image image

Here is how it is achieved in real time with potentially many lights :

  1. Initial accumulation Pass with interleaving at half-resolution
Accumulation Buffer (and zoom)
image
  1. Bilateral Gaussian Blur Pass to reduce noise (and conserve shape)
Before Blur Pass After Blur Pass
image image
  1. Nearest-Depth Upsample Pass

image

Procedural Grass (GPU Instanced)

image

Instance Data Generated in Compute Shader :

image

Texture Masking :

image

SSAO

image

FXAA

image

About

D3D11 C++ Custom Game Engine

Resources

Stars

Watchers

Forks