[5.5-5.7] Graphical glitch on static mesh components

Hello :slight_smile:

Recently we noticed some graphical glitches in our game (5.5), like theses screenshots made on an ios build (thoses are 5.7 but the same behavior is in 5.5)

[Image Removed]

[Image Removed]

Theses were hardly noticeable and we didn’t pay attention to them, so i can’t tell if they start to show up recently or if they were from the start of our 5.5 migration, but recently we got an issue that was way too much noticeable to be ignored

[Image Removed]

in the last screenshot, the ground is the issue (not the line following the player), it’s basically the same static mesh, the same materials, but some of them seems to be half rendered, like here it seems that the static mesh is globally fine, but the reflection is totally absent

I don’t know what is creating this, i managed to find a workaround tho, by taking all the static mesh component with a render state created after the map finished loading, and using the function MarkRenderStateDirty(), then i got the expected results on theses, the workaround is okay for my team now, but i would like to try to find where that’s coming from, i would appreciate any insights about where to look in the engine, or configurations to try out that would allow me to try to reduce the scope of the issue, i’m guessing it could be related to reflections

So far i noticed this issue only on static mesh components, and only on the floor

[Attachment Removed]

It seems to be somehow related to this shader parameter

[Image Removed]the pixels without reflections seems to have theses default values, to test it, i modify this

[Image Removed]by commenting the reset of the boolean value, basically resetting the cached reflection captures constantly and the glitch indeed disappear

[Attachment Removed]

So i have more info about it, it seems that the shader binding here

[Image Removed]is done before the skylight have been setup in the scene, leading to using the default GDefaultMobileReflectionCaptureUniformBuffer, later on when the skylight is set in the scene, it doesn’t appear to trigger any update on theses primitives

I solved the issue by adding RequestStaticMeshUpdate() after skylight modifications in the scene, like here

[Image Removed]Is this the right way to handle that update ?

[Attachment Removed]

Hi Alex M,

Thanks for bringing this issue to our attention. Is this a case of changing

It appears there is a related code snippet that RequestStaticMeshUpdate in UpdateReflectionSceneData. Does simply setting

Scene->ReflectionSceneData.bRegisteredReflectionCapturesHasChanged = true;rather than explicitely calling RequestStaticMeshUpdate resolve the issue equally?

Best regards.

[Attachment Removed]

Yes it’s indeed the same, if that’s the best option to reset theses shader bindings, then yes changing this value is gonna have the same effect (gonna try it, but no reason), i didn’t at first since it was technically not really related to the reflectionscenedata

[Attachment Removed]

I confirm that setting this value is doing the same, a bit more since that’s gonna recompute the cached reflection for the primitives

[Attachment Removed]

Hi Alex,

The fix we’ve gone with internally is available at CL 49415647. Thank you for bringing this issue to our attention.

Best regards.

[Attachment Removed]

Hello :slight_smile:

Thanks :slight_smile: you’re welcome

[Attachment Removed]