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).
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