Grass shadow problem

Hello everyone;
actually i have a problem with my grass shadow, it seems the grass shadow doesn’t look good from far distance; i found it is due to the “Directional Light” rotation, here is a photo before changing the “Directional Light” rotation:

as you can see the shadows doesn’t look good (or at least i don’t like it), but when i change the rotation of my “Directional Light” it looks better, like this:

i want to know is there any way to change the grass shadow like the above photo without changing the rotation of “Directional Light”?

Think of a cylinder sticking up in a field. When one side is in light, the other will be in shadow. This is technically the correct lighting. But correct doesn’t always look good or natural, so we must make it incorrect to fix this. Here’s what is happening.

The ground is being lit like a totally flat surface, which would receive the most light when the sun is at solar noon.

The grass blades receive the most light when the sun is perpendicular to the blade. Like the cylinder, if one side of the blade is in light, the other must be in shadow. Because the grass is half in shadow / half in light, but the totally flat ground is never in shadow during the daytime, the light of the blades will never match the light of the ground.

The only really effective solution is to alter the normal vectors of the grass in some way, so that they point in the same direction as the ground normals instead of using the real mesh normals. It works best for stylized grass - for photorealistic grass, I prefer to blend the real normals with the landscape normals over a distance. This makes the shading up close detailed and realistic, but at farther distances it will blend with the landscape more seamlessly.

Here is a video that shows one way of altering normals.

1 Like