Strange Rendering Artifacts in Preview 3

I’m seeing very strange artifacts in my project since upgrading it to 4.16 Preview 3. These assets are from the SupeerGrid Starter Pack, but they’re really just simple world-aligned materials.

Almost looks like Z-Fighting, but there are no extra triangles there.

Video:

Had to make the video private, sorry. If Epic need to see it, I can send them a direct PM on the forums.

Hey!

Thanks for reporting, it seems like a biggie :confused:

From what I understood there been changes in material Power node. Negative number powered to any number return negative number no matter what. And normalizing this negative number convert it to 1(White color on negative sides of meshes)

For now, just open Content/SuperGrid/StarterPack/Materials/Functions/UV/UV_ObjectScalable and add Abs node after TransformVector.

It should do the work, but honestly I’m not sure that new behavior of Power node is correct.

Hi zeOrb,

This isn’t quite correct. In 4.15 and lower the Power node used to internally call max(abs(X), 0.000001) guessing at user intent by always wrapping negative inputs to positive outputs which was a fairly consistent source of questions and confusion. In 4.16 it now runs max(X, 0) which still tries to apply some safety to avoid common HLSL errors (where any value of X less than zero results in a NaN) but doesn’t force behavior or cost on the user. This is now more correct from a shader point of view. Calculating the true result sign would add a few operations to every call because it’s not how the language works by default and as it’s not needed very often, we chose to avoid that.

If you’re seeing different behavior please report it as a bug and we can try to get it resolved. This should all be listed in the patch notes and upgrade notes once they’re published with the main 4.16 release.

Thanks,
Chris

Hey, Chris!

Thank you for such detailed answer, it clarifies a lot.

I just want to say that from user standpoint it was very confusing because previously I got the output which met my expectations, but now output was basically inverted and I was not able to understand the logic behind by my own.

I think it would be really useful to have a comment in node description which specify the expected output because it’s differ from regular power function.

Thank you!