Best practice for large outdoor scenes with lots of foliage

This is one that I am really struggling with. As soon as I try to lay down any grass in the scene the fps drops down to about 29 fps and that is with a gtx 980 so completely useless to release in any game. Has anyone figured out a way to be able to do realistic outdoor scenes with lots of foliage and stay at least at 45 fps. With the new async for Steam VR its at least tolerable at 45 fps now.

maybe try http://www.speedtree.com/

I don’t know much about speed tree. Never heard about it before. Why do you think it would it help?

same issue here. If i put some grass on large “or even” small spaces, got 20-40 fps ( not tolerable )

speed tree is not going to solve this problem. need to find a better approach on how to fake foilage.

Well is the foliage dynamically casting shadows? Does it have proper LODs set up?

Dynamic shadows alone are going to tank VR performance.

Yes. Use the Grass Tool which comes with UE4:

They use Hierarchical Instanced Level of Detail (HLOD) for the grass foliage. If you’re using a custom static mesh for grass, make sure that you have 3-4 levels of detail.

You can also take advantage of the HLOD by using the foliage tool. You can paint thousands of trees without any problems – if you do it right.

Make sure you disable shadows. Make sure your trees have multiple LOD’s. If you’re creating the assets yourself, keep a very close eye on the translucent cards used for leaves. Every card adds overdraw, which can start to add up with lots of layers. Sometimes, it may be more performance efficient to just draw more triangles if it means less overdraw.

I have lots of foliage in my VR game and I hit 90 FPS just about everywhere. Using a Vive with a GTX 970.

Use the performance analyser which comes with the engine and tune your scenes to hit 10.0ms. It won’t be easy, but you need to do it. Using this tool with every modification to a scene should become a part of your workflow. Build, test perf, modify, run.

2 Likes

Ya turning off the shadows was one of the 1st tricks I came across and you can see the difference straight away but with LODs the pop up (change in LOD) is very noticeable in VR.

Ya I’ll have to look more into this. Thanks.

Just lower the distance on them and set less passes if you NEED dynamic shadows, otherwise bake them.

The guys that built the Vanishing of Ethan Carter had this cool post on the perf work they had to do to get the game running smoothly in VR. Because their game is full of outdoor and heavy foliage scenes, I’m sure there’s a lot of useful info in here to help you out.

I tried it long ago, not in VR mode. Trees are procedural, maybe automatic LOD and further optimization. I do not know exactly. I’ll try to do some experiments.

They ended up making a really close fog with a custom culling plane and full baking ALL lighting in their game so that they could throw out some engine features. It was a rather extreme overhaul for most users I would think.

Hah, yeah. Definitely extreme, but probably about what you could expect from building an entire game without VR in mind at all and then suddenly having to take it into account. Luckily most games moving forward with VR in mind shouldn’t need to take any steps quite so drastic.

Well I’m not sure about the Unreal Engine and foliage but CryTek found performance increases when they started to group several meshes together to make one mesh when developing The Climb with the CryEngine. Maybe that will help with the Unreal Engine too…?