Rendering bug on Iphone XR and XS


#1

Hi,
We’ve just noticed a bug with rendering rough materials on the iPhone XR/XS where objects shaded with a material with 0 glossiness and metalness disabled still reflected the cubemap. This is making our hero models look rather unappealing on these devices.
I’ve attached a screenshot of a basic test scene where you can see a comparison between the rendered image on a PC and an iPhone XS.

We’ve tested on a lot of various devices and have been pleased with the vast majority it just seems to be these two phones that we’ve noticed this on.

Thanks,
Doug


#2

Have you pre-filtered your cube map?

Or maybe this explains what is happening?


#3

Short term fix might be to use a spherical map on materials rather than a cube map?


#4

Thanks so much wturber, you were right its the same issue as discussed in the github thread you linked. I managed to fix it with the code:

 if (this.app.graphicsDevice.unmaskedRenderer === 'Apple A12 GPU' || this.app.graphicsDevice.unmaskedRenderer === 'Apple A12X GPU') {
            this.app.graphicsDevice.useTexCubeLod = false;
    }

Hopefully Apple fix the issue soon.


#5

Cool. Glad if that helped.

So, does that result in the cube map getting rendered correctly, or does the cube map not get rendered at all?


#6

Hi @moka what is the status on that?
We tried to use the method from @DouglasAllenDev however it fails.

I believe we are encountering the error described here:
https://github.com/playcanvas/engine/issues/1464

There are still problems with this solution, such as when there is a skybox in the scene, and the system will make a serious error when there is a texture in the diffuse

Have you found a stable fix yet?
Thanks a lot