Base color values used by Android ES2/3.1 renderer are wrong, and clearly different from SM5 values

I have recently ran into an issue when packaging a project for mobile. In the mobile renderer, the final scene colors are overly saturated, there is too much contrast, and the image overall looks nothing like it does in SM5.

The color values are actually wrong and don’t represent the base color of the material at all - you can see this in the comparison image: even the mobile unlit viewport does not match the regular unlit basecolor value.

The materials are very simple - a vector parameter for the base color. There is no post-processing or tonemapping of any kind in the scene. The objects displayed are static geometry with a simple light bake.

There is clearly a mismatch in the color values used by the renderer, as if it applies an additional gamma curve or some other type of grading to the values before using them.

What is the reason for this, is this intended, and how do you make it not happen?

Here is the unlit view with mobile preview off:

Here it is with mobile preview on:

It is most likely due to lack of post processing that usually turned on by default, which is quite limited in ES renderers

Thank you for the reply, but I don’t think that is the case. I have updated the question with a different set of screenshots - you can clearly see that even the unlit view is changed when the mobile preview is triggered. Therefore it is not a post-process issue, but rather a discrepancy that happens before the post processing is reached in the render path.

Figured it out - for some reason, this is caused by toggling “game view” while in mobile preview. DO NOT TURN ON IN-GAME PREVIEW by pressing the G shortcut. That way, colors are displayed correctly.

That’s weird. You’d think the Game mode would be MORE accurate to the final device render. Oh well :slight_smile: Thanks for sharing the tip!