Hey people. Recently I started working on a small stylized meadow scene, inspired by the beautiful work of Helder Pinto, called Europa. It has a very painterly look, similar to BotW. I was able to achieve similar style / looking foliage in a fairly easy way and I thought I would share my experiences with you guys, regarding stylized foliage shading.
For teasing purposes, this is how my results looks currently:
As some of you may already know, edited vertex normals are often used on foliage meshes, to smooth the shading of the cards. If this isn't done, the rotation of the cards will make ugly, sudden changes in the shading. This is one of the things that needs to be fixed, but there is more.
Here is a tree mesh without edited vertex normals, to demonstrate the issue:
Not too bad, but we can clearly see those shading changes everywhere. Now here is a tree with edited vertex normals:
Despite the world normal pass looking smooth, we can still see some darker leaves. This is because the leaf planes has darker shading on the back face of them. This is a natural behavior, but it looks like we don't want it. Luckily, we can make both sides of the planes have the same lighting using a simple trick in the material. In Unreal, you can do this, and hook it up to the normal input:
We simply flip the normals on the back faces.
And the result will look like this:
You can play with the shadow bias and resolution settings to adjust the falloff of the shadows.
I did the same tricks with the grass in this scene:
Grass world normals after the tricks applied:
Now these tricks might not be applicable in all cases, and may not look as good with realistic art style, but it definitely works very nicely with heavily stylized assets, for almost zero rendering cost and a little bit of work with the normals(which is actually automatic, because its done with a script.).
I hope that this breakdown will be useful for some people. Have a nice day!