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

Latest commit

 

History

History
65 lines (45 loc) · 2.57 KB

README.md

File metadata and controls

65 lines (45 loc) · 2.57 KB

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