What ways can I use Unity Pro to improve Mobile Graphics?

Hi

I’m comparing Unity Pro to Free for improving my Mobile game visuals and not getting a real improvement. Here’s my experience:

I’ve tried Camera Image Effects:
-I would say all of them destroy the performance on iOS and most don’t even run on Android at all
-If I get draw calls down to around 50, I can run a little fake bloom on iOS (I’ve tried different Image Effects from different programmers)
-In particular, I wanted to get running : Vignetting, Bloom, Depth of Field with a nice to have of : AutoFocus, SSAO, Tonemapping
-I feel these are key to making your game look better, but unavailable on mobile really, leaving me with …

Shadows / Lighting:
-I can bake Lighting in Free and that works great.

Deferred Rendering:
-This just adds more draw calls to my scene.

I think some of the most important features to me would be a working fast Bloom that doesn’t need so low Draw Calls in the scene to run. Along with Depth of Field.

I am guessing the good looking games on the App Store are almost entirely baked lighting and good usage of shaders and materials.

The Unreal Engine makes this look easy though for mobile.

I hope you are aware how naive these question is, especially the last comment.

Unreal engine only works on a few really high end devices, start by making your graphics good without the need for image effects, I would suggest spending a lot of time getting great models and textures first, image effects won’t polish poor visuals to be aaa quality.

1 Like

Welll…, I am trying to learn how to improve graphics on mobile Vs PC Vs other engines, its a bit of a culture shock :slight_smile:

I’ve gone through hundreds of Unity web pages, tutorials, reddit, the Mobile forums (which are oddly fairly void of anything to do with image effects/bloom/etc.) and still scratching my head.

The fact this post here and others like it exist, means its very obfuscated or unclear as to how things work for mobile and what are the best ways to boost visuals:

I can get some amazing looking scenes using Image Effects in the Editor before publishing to the device which always ends in stuttering, complete shutdown, blackscreens, purple screens, or plain ignoring the effect I use. I fix what errors I can, still no avail. I guess its not really meant for mobile. Though I then wonder what’s the advantage of Unity Pro then?

Before this, I focused on working on the scenes themselves, the textures / etc. and feel I hit a road block generally in how much better I can make them look. I can always use LUX on Unity Free, but that doesn’t really apply to all games. Whereas in the Unreal Engine I always see stunning looking stuff and I’m ok with appealing to high end devices only if necessary.

I am hoping some of this is the buggy nature of the last few Unity releases in regards to Image Effects.

These sort of posts are based on pure gossip and not fact and kind of annoy me a bit, but I’ll try and remain constructive.

So first, I use both Unity and UE4 and can tell you for a fact, that how good you game looks is down to your skill and abilities not really the engine, I get equal visuals on both (given a like for like machine).

So given the points above:

Are image effects (namely Bloom and Crease) supported on Android at all or not?

Yes, but as stated only on high end devices, as low end devices will run out of memory or would just be too slow.

To put this in context…from Unreal’s documents:

  • Make sure lighting is built before running on device.
  • Make sure most post process features are disabled. In fact, the only ones you can use for iPad4 are Temporal AA and the Film ones, including vignette. A bunch of expensive features like Bloom and DOF are enabled by default as we have the same settings between PC and mobile. Post features can easily cost 60+ms with the default settings. We hope to be able to use Bloom, DOF, and light shafts on higher end devices.

So as you can see even on iPad4 a super powered mobile device, Unreal say do not use Image Effects, so your answer is Unreal cannot do it in the real world.

The main device they support for mobile is anything with a K1 GPU, to put this into context it’s not even listed on Unitys Mobile Stats page, which is the best source for Mobile Stats usage on the net, and goes down as low as 0.0x% so we know that less that 1 in every 10,000 users has one of the devices you are suggesting you would like to target, meaning if you was expecting 1,000,000 downloads and for your game to be as popular as things like Angry Birds, you’d instead get maybe 10-100 downloads, which makes it kind of pointless only targeting the same devices as Unreal.

Now as for how Pro helps, well it depends on what you are creating, the three big features for me are Occlusion Culling, LOD and Static Batching, without LOD and Static Batching in particular most of the projects I create would struggle to run on the mid - high end devices.

With regards to bugs, UE4 is just as bad, the difference is I come from a time where Engines did not exist, so they are all just a bad as each other in some respects, but in reality I think they are all pretty amazing, I can now do a project that would have taken years in the old days in months.

I would suggest you post some screenshots of your game so people can advise you better on how to improve the visuals.

1 Like

That’s a fair post. I’m getting the vibe that there’s a number of unfairly-pro Unreal posts here then.

I know Unity can make great looking games. Several have come out recently that did really well on Steam vs AAA studios.

Unreal for mobile gives the impression of it coming out of the box easier. But, with more digging I think I can see what you mean, i.e Depth of Field not even working on the iPad 3 for Unreal:
https://forums.epicgames.com/threads/973742-depth-of-field-blur-effects-on-new-ipad

I’m just a bit sad I couldn’t get any of these effects going which really make the game look better. They either lag down my iPad or are ignored by my Android device and don’t run.

There are static batching Asset Store packages that I’m going to compare vs Unity Pro. If its comparable, the Pro pricing for Android/iOS are really unfair as they market and state all these wonderful graphics you get, but you can’t really use. And static batching should, or actually does come out of the box, as seen by the Asset Store contributions.

another post example:

[quote=pez,Apr 3, 2014]
Hi, hoping someone can help me.
We’re getting some really bad performance issues with using any image effects on iOS. It can be mobile bloom, contrast stretch, vignette - anything we add, just on their own, makes our FPS drop from 60+ to 6… (It starts high but then falls over about 10 seconds time)
We did have the black screen issue, which turning the 32bit display buffer on fixed, but then obviously we got this big performance hit. Without any image effects and with the 32bit display buffer still turned on - we’re still getting above 60fps. Anyone know why we’re taking such a massive hit on performance from even the mobile optimized effects?
Testing on an iPad 2, Latest iOS version.
Thanks
[/quote]

Well we’ve had vignetting, bloom, dof, film grain, unlimited lights, distortion (heat, water) etc on ipad2 hardware & vita at 60fps without any issues.

Even the other brothers had vignetting, unlimited lights, film grain (disabled in the end for aesthetic purposes), mosiac fx and distortion - that ran at 60fps on the 3gs - a truly old device, before the iOS update that crapped on things (not sure why apple slowed things down there) but generally even after that update, it was 50fps+

This is because all those effects (apart from distortion and final composition) only took a single pass. The sample image effects built into Unity are for demonstration purposes. What you really want pro for is render to texture. Once you have that texture, you can generate all your own post fx in one go, often choosing faster methods to do the job.

The key here is that mobile actually needs separate shaders and techniques, and a lot of the problems are with precision and fill rate. The desktop post fx that comes with Unity doesn’t do these optimisations generally. And anything that uses grabpass on mobile can be expected to be super slow.

If you don’t have the know-how to do this, then I agree it becomes less useful. There are decent mobile friendly post fx available however.

Pro is more than just post effects though, the profiler is a thing of magic, and quite a few features get extended. There’s also build stripping and so on.

2 Likes

Take into account they do not do true Static batching, that is very different, they do mesh combining, completely different, as you get not Viewport Culling.

Thanks, I figured I wasn’t using it right and that by posting someone would notice where I’m going wrong. I will look into more mobile specific FX. I’ve tried a few so far and have had the same bad results, but will look into render to texture. The concept makes sense to me as I did that on XNA.

If anyone has any asset store suggestions please post :slight_smile:

FYI, I used some of the terminology and concepts I learned in this post and found this:
http://www.photonworkshop.com/index.php/blog/dof-bloom-package/

It works amazingly GREAT on mobile! I couldn’t find this before.

But, now I need to understand why it worked, and why it also worked on my Android device (which was ignoring Post FX, even ones supposedly for mobile) and why is it so performant.

And … would it be able to work on Unity Free :slight_smile:

Agree.
Animation curves, Light probes, IK, render to texture, more than one shadow casting light, static batching.
Much more than post effect renders.

Great point.