ArborianStudio Foliage Vol.1 | Nanite Foliage

For realistic movement on foliage, especially if you’re using nanite, you should use Pivot Painter 2, not WPO. Although it’s more expensive, it’s worth it, and you certainly don’t need skeletal mesh. See more foliage assets with nanite in Fab.

Soon.

I tested the demo earlier on a PC with a Ryzen 7600X, RTX 4070, and 64 GB of RAM. Unfortunately, the performance was quite disappointing, staying around 35–40 fps in a forest area that essentially feels like a corridor. In addition, the wind effects appeared unnatural, and the vegetation exhibited constant flickering, which was very distracting. Under these conditions, I wouldn’t feel comfortable purchasing the product. If a 4070 struggles to run such a small demo this poorly, it raises serious concerns about how it could perform in an open-world environment.

Hey, just to clarify a few things, the demo actually comes with 2 versions an ‘Ultra’ build and a lighter ‘Performance’ version. We’ve tested it on weaker hardware than yours and it ran fine, though of course not in 4K. Keep in mind that running dense Nanite forests with Lumen at high resolution is going to hit performance hard, regardless of the GPU.

Some of the issues you mention (flickering, wind artifacts) are more tied to current engine limitations than the assets themselves. For now, WPO is the only way to handle wind in foliage, and that naturally brings some limitations. Unreal 5.7’s upcoming Foliage Assembly system will change that and address most of these issues.

That said, next time it might be more constructive to share your setup and ask in the Discord (link’s in the description) instead of assuming the assets are the issue. That way we can actually help you get the most out of them. And if you want to see a real case, there’s also the YouTube channel linked on the product page the tutorial there isn’t pre rendered and shows how it runs in a much bigger map.

First of all, I have been working on Nanite and Lumen since the early access version of Unreal Engine 5.

I purchased the forest because it was made entirely of geometry, including the leaves. My goal was to use it in a fully playable open-world game. I’ll share my experience here for you. For comparison, I’ll use the Quixel Megascans EuropeanBeech tree pack so everyone can evaluate fairly. As you know, Quixel trees are not entirely geometry-based and use masked materials, which is not ideal for Nanite.

I tested by spreading similar-sized trees in equal amounts across areas of the same size, with different purposes for each test. I tried to get results as close to real-world use as possible. While I got 70 FPS with Quixel, I got such a low FPS with this forest that I couldn’t even walk.

Of course, this was a huge disappointment for me. I was expecting the exact opposite. But I didn’t give up — I started investigating the reason and testing ways to fix it, because I really wanted to use this forest. I realized that the main reason for the FPS issue was that everything in this forest uses extremely high numbers of triangles and vertices.

For comparison: a EuropeanBeech tree has about 2 million Nanite triangles, while a similar tree in this pack has 24 million Nanite triangles. But the real problem isn’t just this 12x difference. The smaller plants having up to 100x more triangles makes the forest completely unusable.

To fix this, I spent long hours optimizing each plant one by one. But I was only able to bring the FPS up to around 20. With EuropeanBeech, it was at the 70 FPS.

Don’t be misled by the perf demo — the forest area there is very small. If you just like the way this forest looks and want to make a nice-looking demo with a 5090, then this forest is for you. But if you want to make a game that people will actually play and that you want to sell, you should definitely stay away. Because after you download the package and see the FPS values, the seller absolutely does not accept refunds.

In the image below, on the left you can see the plant I optimized, and on the right the original plant.

Does it work with Path Tracing?