Working on my 3D game engine is the perfect occasion to reimplement classic algorithms. On today’s menu: self-shadowed steep parrallax-mapping First step, get the classic steep parrallax-mapping.
Here a two good links to implement this algorithm:
Steep parrallax-mapping allows us to get a pretty good result (10 samples):
But something is missing. Let’s implement self-shadows.
Self shadows are only computed on directional lights. The algorithm is very simple.
- convert light direction in tangent space
- compute steep parrallax-mapping
- from the resulting coordinate, ray-march towards the light
- If there is an intersection, reduce exposition
And then, TADAA
(2 steps are more than enough for this part.)