I have created some rooms in my level with several static meshes from StarterContent. If I move nearby I can see through the connection areas for about one frame (hard to describe, see the video below).
I have checked:
there is no gap between the meshes
tried disabling rendering options like motion blur, ambient occlusion, anti aliasing (Temporal AA, FXAA), …
remove lights (sky light, directional light)
clearing the cache and rebuild lighting
packaging everything and running it standalone
but none of the above helped. Does anyone have any ideas?
It is only happening during play, not in the editor.
My best guess is that it’s unloading those meshes when it’s not visible and then it’s not loading them fast enough, but I haven’t messed with occlusion settings so I’m not sure how to adjust that.
Though I can recommend changing your meshes, the walls aren’t benefiting by being made of multiple pieces, since they are so simple you should just make a wall the size you want, you could even take just one of them and scale it sideways to fit the length and have it as one piece. Each object you add increases the draw calls, so if it’s a very simple object then it has more of an impact on the draw calls.
Thanks for the answers. I’m aware that “whole geometry” improves performance significantly, but I’m trying to make some kind of build system/procedural buildings (who doesn’t these days?)
you are right, if I deactivate “Occlusion Culling” from Project Settings -> Rendering this doesn’t happen anymore. I tried some different values for Culling but none helped, only completely disabling Occlusion Culling did the trick. But that is not the solution as Occlusion Culling greatly improves performance. Shall I make a bug report @answerhub?
Sure, I used “Wall_400x300” and “Wall_Door_400x300” from StarterContent -> Architecture. I tried your wall too, but unfortunately the effect remains.
Try deleting the LODs. If the effect goes away that would be the root of the problem. The effect though looks kind of like z-buffer fighting and by turning off culling solving the problem it says to me that you have two objects faces sharing the same world space.
Of help is if you can post the project file to see if it’s a client side problem.
This isn’t a bug, so no need for a bug report to be entered on AnswerHub.
If disabling occlusion culling works to solve your issue have a look at this post on the AnswerHub. It covers setting bounds scale, HZB Occlusion in UE4 vs the default occlusion, along with visualizing the occlusion of objects so you can better deduce what is going on in your scene and how your should proceed.
And once again learned something, thank you @Tim Hobson and @Dec1234
Messing around with the bounds did the trick, I wasn’t really aware of their purpose. Especially r.VisualizeOccludedPrimitives is/was really helpful.
I searched the ue4 documentation for some more information about occlusion culling and didn’t find much, Tim’s post at answerhub is the most complete and precise information. Perhaps someone should add it to the wiki/documentation for easier finding?