I am trying to make stylized grass that blends seamlessly with the landscape. I am using RVT landscape texture for that.
My grass currently is:
1, Two sided foliage
2, Masked for opacity
3, Has normals pointing up.
4, In the materials the normals only has Z set to 1.
5, All cast shadows are turned off.
I still cannot get it to blend seamless with the ground. In unlit mode it’s the only way I see it blend seamlessly. I even tried turning off that AO Lumen adds under, ‘show’> lumen> short range AO turned off. It almost seems to be a normals issue.
Please help, this is driving me nuts!
1st screenshot: with short range AO turned off in view mode.
2nd Screenshot: how it looks with default settings
3rd screenshot: unlit mode, showing there’s something going on with the lighting or the normals?
I think that besides the opacity mask you are already using some kind of vertical color gradient / opacity gradient on the grass strands?
It’s definitely a play with color, and possibly removing effects of shadow, pp and other variations to keep the color palette in check on the end result.
It’s always been a bit of a struggle in games to match plant color to ground color. In Unreal Engine you can color procedurally based on world position, so one patch of ground automatically gets the same color as the gras above it. You can use the detail texturing tutorial to learn how:
Also, If you wonder about customizing normals for the “fluffy” approach, I wrote about it a while ago. Basically you can use the normals of a sphere instead of the flat normals on individual grass strands.
You are correct that it’s a normal map issue. This one may be a little more difficult to solve since the grass has no base and its normals are so contrasting with the ground.
However, a method that might help is factoring in your RVT normals. Assuming you’re using a lerp for the blending, you can also lerp the normals between your grass normals and your RVT. This tutorial goes into the process of converting them to the correct spaces and combining them. Here’s another great written tutorial that covers a very similar process.
As @doctorpepperdan mentioned, using the material PDO dithering can also help, though this can really start to mess with shadowing so you can’t push it too far.
Thanks for your reply! So here’s a screenshot showing how the normals (both world space) don’t match. I basically pointed all the normals of the grass facing up (Z axis).
I am not clear on how to lerp the RVT normals with the grass. Is to be lerped like this?
If I lerp it like that the back of the grass becomes black and still doesn’t resolve the blenging issue unfortunately