Bloom not working on mobile build (URP)

Hi people,

I am trying to add bloom in my unity game for mobile phones using URP,
The problem is, everything works perfectly in the editor/pc,
But the bloom effect vanishes on the actual apk build.

This is how it looks in the editor - Upper window is game view and below is the scene view


This is what it ends up on the mobile -

All the other post processing effects works except bloom…

Unity Version - 2020.1.2f1
URP Version - 8.2.0

Post processing is enabled on the camera component
HRD is enabled in the SRP settings asset

I don’t know what am I missing or even it is possible to have bloom on mobile.
I’ve tried all sorts of things, but nothing works, Even tried on multiple android devices,
But I get same results every time…

Anyone who knows how to make it work, please help me,
I’ll be really grateful.

4 Likes

I haven’t seen Post Processing work in a Mobile WebGL build [of mine] yet. I’ve been assuming that’s because my mobile browser only supports WebGL 1.0… but I could be mistaken, and if it does work without requiring 2.0, I’d like to know. You might also notice shadows not working under WebGL 1.0 either. Given these two things plus severe constraints on memory, plus how long it takes to load, I’ve pretty much decided it’s just too new and won’t be production-ready for another 5-10 years when devices are better and the technology has matured. I really do hope it gets to the point that apps are a thing of the past… but I’m not holding my breath.

1 Like

I don’t know about Android or WebGL, but we’re using post processing on URP on iOS without problems.

URP Post Processing works for me in WebGL 2.0, Android OpenGLES3, Windows 64 - everything I’ve tried except WebGL 1.0… unfortunately.

Edit: Windows 7 and 10, 64-bit.

1 Like

Does bloom work on iOS?

All the other post processing is working just fine on Android, but the only problem is with bloom…

1 Like

I have bloom working on Android - 2020.2, URP 10.1, OpenGLES3

Bloom requires Shader Model 3 (OGLES3.0) or higher:
https://docs.unity3d.com/Packages/com.unity.postprocessing@2.3/manual/Bloom.html#requirements

OpenGLES 3.0 is supported in WebGL 2, but not WebGL 1:

3 Likes

Got your point

But have a look over here, my device supports OpenGL ES 3.2
and still bloom’s not working

6407127--715221--Screenshot_2020-10-12-00-29-41-136_com.cpuid.cpu_z.jpg

I even upgraded to Unity 2020.2.0b6; urp 10.0.0

Still can’t get it to work

Can you check logcat if unity uses ogles2 or ogles3? Maybe you need to enable ogl3/vulkan in your player settings.

I got this, not sure what it means though…

6407397--715290--Screenshot_2020-10-12-00-29-41-136_com.cpuid.cpu_z - Copy.jpg

Yep it works, we tested it also on quite old devices.

Has anyone found a solution to this as i have been struggling away with the exact same issue on android devices

Okay i figured it out, you need to go into the URP assets (search “UniversalRenderPipeline” in package manager) find the High Quality asset and go in and make sure that HDR is turned on, i also turned on Anti Aliasing to 4x, bloom effect was working perfectly after I did this

1 Like

How did you manage to get this working?

Disable “Auto Graphics API” in Build Settings, put OpenGLES3 first followed by OpenGLES2. There is no Bloom for devices that only have OpenGLES2, so this will make sure it tries 3 first but the app will fall back to 2 if it can’t initialize.

You can check whether Bloom is supported on the device at runtime like this:

bool bloomSupported = (SystemInfo.graphicsDeviceType != GraphicsDeviceType.OpenGLES2);
1 Like

Hey, I tried variety of different things but, nothing worked

Then I

  • Created a new empty URP project
  • Switched platform to Android
  • Set “Edit > Project Settings > Quality > Quality” to High instead of medium or low for android
  • Made sure that under “Edit > Project Settings > Player > Other Settings > Rendering > Graphics APIs”, Vulkan and OpenGLES3 are selected
  • Then Enabled “Quality > HDR” and “Post Processing > High Dynamic Range” in the Scriptable Render Pipeline Asset (SRP) which can be found in your Project files
  • Deleted default camera and added new one, set “Rendering > Post Processing” to true in the Camera Component from the Inspector Window
  • Ran a test build by adding a cube to the scene with an emissive material and building the APK

IT WORKED, this screenshot is taken on my android phone
6454100--723038--IMG-20201014-WA0003.jpg
Just make sure that your device supports OpenGLES3, that you can check using CPU-Z, that’s it

  • Lastly I copied all my project files from previous project to the new one, And things are going on pretty well since then…

Try these exact steps in the same order, I explained it in detail, because I was really frustrated when I was facing this problem and I wasted 2 full days figuring out a solution…

6 Likes

Hi, I ran into a problem that shader graph shaders do not work on android devices, switching helped o High instead of medium or low for android helped me! Thanks!

Thanks alot Man!!