Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

White pixel flickering artifacts with "DitherFade" material layer #1388

Closed
j9liu opened this issue Apr 5, 2024 · 3 comments · Fixed by #1414
Closed

White pixel flickering artifacts with "DitherFade" material layer #1388

j9liu opened this issue Apr 5, 2024 · 3 comments · Fixed by #1414
Labels
bug Something isn't working

Comments

@j9liu
Copy link
Contributor

j9liu commented Apr 5, 2024

This may be related to #1104, but that issue is about seeing temporal dithering artifacts with forward rendering + AA. There are actually dithering artifacts that happen with temporal rendering.

Reported on the forum here. The user sees bright white pixels flickering throughout the tileset, which are especially visible when the lighting is dark. This is with:

  • Unreal Engine 5.3
  • Cesium for Unreal 2.4.1
  • Google Photorealistic 3D Tiles
  • Temporal Super Resolution enabled in project settings (this is how it's set in the samples)
  • Enable LOD Transitions on the tileset set to false

To reproduce the view, set the georeference to
Latitude: 59.908135
Longitude: 10.721472
Height: 99.238093

image
( Zoom in to see more clearly. From a distance it will look like you have dust on your computer. :') )

The workaround was to delete the "DitherFade" material layer from the default tileset material.

One action item is to test if the plugin version matters, since the user says it worsened with time. Engine version may matter too.

@j9liu j9liu added the bug Something isn't working label Apr 5, 2024
@csciguy8
Copy link
Contributor

Sounds very much like,
#1359

@j9liu
Copy link
Contributor Author

j9liu commented May 6, 2024

Trying to do some experimentation to resolve this issue. I made some test modifications to our ML_DitherFade Blueprint.

From what I understand, the "Fade Percentage" seems to roughly translate to the intended opacity of the tile, or the amount that the tile has faded in. I noticed that even when the Fade Percentage is 1.0, it still goes through the "Dither Temporal AA" block, which causes the flickering. Indeed when I hardcode the opacity mask to be 1.0, that flickering goes away.

So with that in mind, I tried to catch when the percentage is 1.0. If it is, I hardcode the opacity mask to 1.0

image

This does remove the flickering at the highest level of detail. But unfortunately, it impacts the transitions themselves, making them look a lot less smooth. (Between multiple levels of detail you can see clear "jumps" where that percentage is 1.0).

So I don't know what the fix is 😅 Ideally, that "Dither Temporal AA" block wouldn't apply dithering if the fade percentage was zero. I'll keep digging

@j9liu
Copy link
Contributor Author

j9liu commented May 6, 2024

I noticed an interesting comment in "Dither Temporal AA"...

image

So I tried something silly by inverting the fade percentage (using a 1 - x node) ... and it weirdly works? The tilesets no longer flicker at the highest level of detail! This is true regardless of whether Enable LOD Transitions is true.

For the acutal transitions, I can't tell the difference between the previous implementation and mine. But maybe I've been staring at this for too long. 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants