Vertex offset occlusion problem. (Increase Bounds Scale) UE4

VertexOffsetOcclusionProblem

Right, I’m sure a ton of people have ran into this problem already. If you offset the vertices of a flat object far enough so it mostly occludes the original plane, you get this flickering mess.

What I’m assuming is happening here, is that occlusion is based on the depth pass.
Step1. Engine renders out a frame.
Step2. Occlusion algoritm realises that the depth of the drawn pixel is closer then the position of the where the vertex should be.
Step3. Engine culls out object and renders the next frame.
Step4. Since it is culled, the object doesn’t render in depth pass anymore, so the engine thinks culling is no longer nececary.

If you run into this problem, a hacky way to solve this (assuming you don’t offset the vertices too far), is to increase the Bounds Scale. This does however mean that the object will not get culled in some of the instances where it should be culled.

Edit: I should probably point out this is ue4 :wink:

Also another tip that I don’t think many people know is that you can specify a bounds extension manually on the static mesh asset itself. It’s located under “General Settings” within the static mesh editor details panel.

3 Likes