Alright! I’ve got a working setup with great shadows and good performance. Here was my solution: I created a basic blueprint actor and placed my static mesh (my grass mesh) inside the blueprint and enabled “Evaluate World Position Offset in Ray Tracing” in the blueprint details. Got this tip from William’s Faucher’s video. However, I don’t ever create an actor foliage, instead, I just select the blueprint as a mesh I want to scatter using GraphN’s surface scatter tool. I set my density and raised the max instance count and the terrain filled up instantly. At first, none of the LODs were working which caused massive performance loss, but I restarted the engine and all seems to be functioning properly and performance is as good as ever.
(Basic WPO scale variation effect dramatized a bit here for clarity)
I will still need to hand-paint some smaller bits of foliage in the future so this issue will still be a problem in those occasions. However, for that, I’ll either disable WPO on those mesh’s materials or I’ll go through the full process in William’s second tip (depending on the mesh’s needs).
For anyone else coming across this issue, even though this solution doesn’t fix using landscape grass nodes, I really do encourage you to consider GraphN as an alternative despite it being a paid subscription. It’s a 30-day free trial and the scatters you’ve placed remain even if you cancel the subscription. Reasons being that:
- it solves this extremely annoying shadow problem while being a fast procedural solution,
- it’s actually unreasonably fast and stable compared to Unreal in terms of generation time, even faster than landscape grass (no grass shader compiling).
- A big issue with landscape grass is that masking by terrain layers leads to jagged edges if cutting across the terrain diagonally, due to the large chunk sizes used while painting. GraphN works exactly where you specify with fine-control edges,
- it has several masking options MUCH more intuitive and easier to use than landscape grass, with graph control for any additional functions, and
- I can literally just select proximity objects and click 1 button to add them to a list that the scatterers PERFECTLY go around. Before I had to use complex custom depth setups to achieve the same effect or use less accurate RVT methods.
- Finally, you can add non-landscape meshes to your scatter targets which is actually great for blending other more detailed pieces into the terrain.
There are also a bunch more features I’ve yet to try out (like making spline meshes, quick foliage cutouts, etc.).
I’ve just had so many issues with Landscape grass lately so I think this will be my main tool in the future. The devs of GraphN said UE5.2 is working inhouse but will only be available in the next update, which they told me would be sometime in the next month. So I’m using Unreal 5.1 for now.
Thx for all the help @MostHost_LA ![]()
