How to reduce BasePass Dynamic? [Oculus VR]


Can someone explain me what I need to fix to higher my FPS based on this screenshot?

My shadows are disabled, my lights are removed, my procedural meshes are all set ‘static’, my components in the room are radically reduced. I got about 7 transparent windows left… Anyone knows what should higher my FPS?

With lights ON:

Since you’re running VR, have you tried switching to forward rendering?

It’s on :slight_smile: if this is what you mean.

well there are numerous ways to optimize a game.
you can reduce drawcalls by merging multiple objects and using materials wisely, like having one master material for most of your materials.
Reducing the distance at which shadows are rendered.
Using LODs

also your own pc is a factor…

Can I use LODs with proceduralMeshes (C++)? if yes-> do you know how? I think the only shadow currently enabled is the one of the sun…

Also, is 2542 draw calls a lot?

what do you exactly mean with procedural mesh?
If it’s a mesh you build and you’re generating it randomly across your level, then it can have lods.
if it’s a random mesh you create via coding, you can still probably create a lod version of it via coding again.
but i’m not a programmer so i have no idea how to code something like that.

it doesn’t matter if the sun is the only light that has cast shadow enabled, if you scene/level has a lot of objects or perhaps moving objects that will receive that shadow…

depends on what your level is.
if it’s a big level, like a city it’s oke.
However, that many drawcalls is still a lot depending on hardware.
for mobile devices, that’s an absolutely no go XD

My level is only an office floor with a few rooms.
current and only device it should run on for now: Intel i7-5820 3,3GHz. RAM 16 GB. GeForrce GTX980 Ti

then you should be fine.
i have a city level with 4.701.00 drawcalls, and the city is about 500x500 units.
I am running a 1080, 16gb RAM, i5-4590 3.30ghz.
And my scene is in VR and i have about 70-90FPS, with deferred rendering.

how many fps are you running your project in VR?

worst 22 FPS (30-40ms), with all shadows, lights, … turned on. But you probably created your city consisting of static meshes?
I’m creating my world at ‘begin play’ with procedural meshes (c++). That might be a reason why my fps is worse even with less drawcalls?

with most of the lights turned off, shadows turned off I’m on 45FPS → I want to get it to 90. Because my scene isn’t realistically rendered at the moment.

How is your procedural generated project working?
If you generate the world all in one go, it’s best to have a loading screen and wait until everything is loaded.

If the world is being randomly generated at runtime, all the time like the event tick you mention. You may have to to optimize your coding, because i don’t think the enviornment(or art) is the problem here.

What is your total triangle count in the scene?

I have 1.548.630 triangles in total in my scene, consisting of 6.398 actors.

And yes about 90% of my city is build upon static meshes.

What you could do maybe, but i haven’t tried it out yet in UE4.
Is bake one particular section or room of your scene (that which is being randomly generated as one piece), bake the lighting and make that the object that is being generated.
And make it a child of an empty actor so that you can move it around.

Also instead of randomly generating, you can also have multiple rooms which randomly get turned off (in terms of visibility) and on at the beginning. this way you can also have baked lighting.

My world is only generated once at ‘begin play’ so it’s not happening evry tick. The problem is probably that UE simplifies things with static meshes… all sorts of optimizations. It doesn’t do that (as much) for procedural meshes. I’m basically Importing an ‘.Obj’ file but not as 1 piece but in the original pieces. So it’s not random.
If I import it as one piece, my framerate is good. But I loose all the seperate pieces that I also want to be moving. So that’s not an option.
Maybe if I could transform the procedural meshes into static meshes, befor all the stuff happens, it would also optimize the pieces better.

I indeed made these procedural meshes child of an actor so I can move things around :smiley: .
I have about 1500 actors right now. A bit to much for what actually needs to be moving, but for now I don’t have a better way defining what should be moving and what not. Thank you for that actor number, I can exclude that from being a problem for my framerate.
Howmany draw calls do you have?

Like I said before " i have a city level with 4.701.00 drawcalls, and the city is about 500x500 units. "

But i don’t think i can help you further, if the problem lies with the importing of multiple OBJ files. While importing it as one OBJ file you have stable framerate, then this problem is sort of beyond me.

Well thank you for your time and your extra information :slight_smile: