Journey is always one of my favorite games.
I’m using a procedural generated terrain using perlin noise and vertex control. Link to my another article. it’s just some hills with no detail.
According to Journey’s GDC Talk, they are using a function called OrenNayar.
Google Sand texture, get two sand texture in macro view. Modify them into two different direction.
Google sand texture, get one sand texture in micro view.
By calculation normal vector, we can distribute two macro normal map on our terrain.
For Specular reflection, I use Blinn model. I create 3 different layers of specular reflection and mix them to make the terrain smoother.
For more detail and make it more grainy, I add a noise map for reflection.
I use Unity post-processing stack. Using bloom and Color grading to make the visual more Journey-like.