There is a quite easy approach to render soft lights direclty while you raytrace the pixels of your terrain.

Dont use a single point for the sun - use an area. If you use a squared area then you have 4 points available. Every pixel of the terrain traces to all 4 points.

So if it happens that it hits all 4 of them then it gets full sun light.

If it hits none it is in full shadow.

If it hits only 2 of them it is in half shadow.

The size of the rectangled sun influences the size of the soft-shadows.

The calculation will take 4-times your current time but it might be worth it.
The quality can be better, when you rotate the rectangle like this:
Code:

x
x x x
x




Models, Textures and Games from Dexsoft