Skip to content
This repository has been archived by the owner on Dec 27, 2022. It is now read-only.

akoreman/Forward-Render-Pipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Custom shader pipeline using Unity3D SRP and HLSL

In order to gain more intuition for scripting render pipelines this project implements a custom forward render pipeline in Unity3D by using its scriptable render pipeline (SRP) and HLSL for the shaders. For some parts following the tutorial by CatLikeCoding.

Currently supports:

  • Unlit and Lit shaders
    • Opaque and transparant.
    • Texture sampling.
  • Illumination by multiple colored directional lights
    • BRDF controlled by metallic and smoothness parameters.
    • Casted shadows using light maps.
      • Support for cascaded light maps.
      • Support for varying light map resolution.
      • Clipped shadows for transparent objects.
    • Support for soft shadows using PCF.
    • Support for normal maps.
  • Global illumination
    • Support for sampling from the lightmaps generated by Unity for static objects.
    • Support for using light probes and LPPVs to approximate GI for dynamic objects.
    • Meta pass for colored GI.
  • Specular reflections
    • Support for reflections from the skybox.
    • Support for reflections from unity reflection probes.
    • Reflection sharpness affected by surface rougness.
  • Support for emmisive surfaces.
  • Support for point lights + shadows.
  • Support for spot lights (without shadows).

Screenshots:

Cascaded shadow maps

Cascaded shadow maps culling spheres visualisation

Effect of varying shadow map sizes on shadow details

Colored global illumination

Reflections from skybox and reflection probes

Illumination by point lights

Illumination by spot lights

Shadow from spot lights

About

Custom forward rendering Unity SRP in order gain a better intuition for Unity's render pipelines. Shaders written in HLSL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published