Since updating Unity to 5.5.1f1 all reflections maps on objects using the standard material shader are covered in graphical artifacts in the form of striped red and blue bands.
Here is a GIF of me rotating the camera around a perfectly reflective material cube to demonstrate that the artifacts seem to be on the reflection cubemap because you can see very obvious seams.
My graphics card is a GeForce 8400GS and this issue was not present prior to updating to Unity 5.5.1f1.
I’m definitely not the only person experiencing this defect as evident by these other reports here: Reflection Artifacts on Standard Shader - Questions & Answers - Unity Discussions
And I’m one of the others with this problem. I don’t have the exact model of my GPU at this time, but it’s an old integrated Intel HD graphics.
My first thoughts about this, though I should check it out, is if this is an OpenGL issue. If my memory serves me right OpenGL released a new version not long ago. Did Unity update with this?
EDIT
I’ve looked through the release notes for 5.5 and 5.5.1 and these are the possible culprits I can find. To be honest I have no clue if they’re related in any way whatsoever, but heck it won’t do any harm.
-
[…] default uncompressed texture format is now RGBA32 on all platforms, and the default format for new Texture2D script API. Previously, ARGB32 was the default on some platforms […]
-
Metal: Switched the shader backend to HLSLcc. This is the same compiler used for OpenGL Core and ES3.0
-
Added support for feature level 11.1 on D3D11/D3D12. This brings native support for RGB565 and ARGB1555 RenderTexture formats. Note that this does not render correctly for ARGB4444 which will be fixed in one of the future releases.
I’ll check out what I can when I find the time, in the meantime hopefully someone have some input on this. Any help is appreciated!
I couldn’t keep my hands off of it so I went experimenting and I’ve narrowed the issue down to my initial suspicions; graphics API issues. Changing graphics emulation from none to Shader Model 2, removes the issue completely. Perfect relections, no artifacts. Changing back to SM3/4 or no emulation, clearing the light data and rebaking and the artifacts are back.
Something has happened between 5.5 and 5.5.1 and my guess is it’s graphics API related. Now how do we get a devs attention?
EDIT (again)
On a small note, another way to “resolve” the issue, is changing graphics API from DX11 to DX9, further indicating something’s gone wrong in the API, possibly the translations.
From what I can understand looking at the artifacts, the changelog note stating that the default texture format changed from ARGB to RGBA, the artifacts looks exactly like channel swapping. Indicating to me like a case of lost in translation?
Going back to the original post on Unity Answers, I remembered that another way to resolve the issue was to turn off HDR on Reflection Probes. This, coupled with the fact that something seems to be wrong with the color channels, I think I’ve narrowed down the problem to a single cause;
As the baked global illumination data and an HDR reflection probes data is stored in a compressed format, while for non-HDR probes they’re stored in an uncompressed, I thought maybe this is where the problem is. Lo and behold, turning compression off in the global lighting tab completely eliminates artifacts.
So it appears the issue is probably lying in the compression algos, possibly tied to the change from ARGB to RGBA.
@ if you’re seeing this, could you try this out as well, see if it works on all hardware?
1 Like
Hi @mezkhalin ,
I can confirm that changing Compression to Uncompressed under Lighting settings solved the issue.
It would be nice if a developer could get eyes on this. I cannot submit a bug report via the Editor due to a proxy issue otherwise I would.