This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Translucent

I develop simple 2D sidescroller for mobile devices on Unreal Engine 4 and want to release it on Android and IOS. At the moment, I have a problem with the optimization of the devices, based on Mali GPU.

I have stable 50 fps on the old Nexus 4 and IPhone 5, but on better devices on Mali GPU fps does not rise more, than 12.

Because it is 2D game and it hasn’t lightmass, the transparency - is the only thing that can be the reason of such low fps.

Please, can you give me an advice how can I solve this problem without changing the translucent materials on masked or opaque?

P.S. I really want to get my game to works on Mali GPU based devices, because 60% of the all devices have it.

P.P.S. I didn’t received help on AnswerHub UE4, as well as on the official forums

Parents
  • Hi,

    We're very happy to help, but it's hard to provide specific advice without some idea what your rendering sequence looks like, and what Mali devices you are having problems with?

    Is it possible for you to produce a cut-down reproducer as an APK which you are able to share with us?

    The advice from Myy is a good place to start - the big issue with 2D games is often the sheer number of fragments which end up getting layered one of top of another.

    If objects are transparent (i.e. using GL_BLEND) then we have to process every layer and load every texel to get the alpha values, even if a layer eventually turns out to be opaque.

    If objects are using "discard" in fragment shaders to provide masking then in addition to making us process every layer (discard is just another form of transparency - we have to run the shader to determine if a fragment is discarded), you'll also force everything to late-zs.

    Try and avoid both as much as possible ...

    Cheers,
    Pete
Reply
  • Hi,

    We're very happy to help, but it's hard to provide specific advice without some idea what your rendering sequence looks like, and what Mali devices you are having problems with?

    Is it possible for you to produce a cut-down reproducer as an APK which you are able to share with us?

    The advice from Myy is a good place to start - the big issue with 2D games is often the sheer number of fragments which end up getting layered one of top of another.

    If objects are transparent (i.e. using GL_BLEND) then we have to process every layer and load every texel to get the alpha values, even if a layer eventually turns out to be opaque.

    If objects are using "discard" in fragment shaders to provide masking then in addition to making us process every layer (discard is just another form of transparency - we have to run the shader to determine if a fragment is discarded), you'll also force everything to late-zs.

    Try and avoid both as much as possible ...

    Cheers,
    Pete
Children
No data