Using Segmented dimmer for standalone Unreal apps currently has limitations (I'd prefer to let my colleagues speak to those as my specialty is Remote Rendering) but should be possible if you both disable HDR and use MSAA. Improvements for segmented dimming for on-device builds are planned in the future, but with Remote Rendering things should work in a straightforward fashion as detailed in the link.
My material was set to translucent. It must be set to opaque. I guess for the "Output Alpha" step, I assumed incorrectly that it needed to be set to Translucent. This is not the case.
MSAA allows the dimmer to work on Standalone, however its 100% opaque, not segmented.
I tried using Desktop Vulkan and Deferred Mobile Rendering and it works but its inverted like my original problem, but now my material setup is correct. I tried inverting the Opacity inputs using OneMinus and it didn't change.
Close! It's definitely possible at this point if I see it segmenting, just opposite.
Yes, it all depends on what your application submits as an alpha layer to our runtime for Remote Rendering. This is of course dependent upon post processing, shaders and other things. Our documentation I sent you covers a basic setup to get started but if you use any sort of advanced rendering features within Unreal you may have to take care of the alpha channel as well.
I have figured out remote rendering. I am talking about standalone now. It works but its reversed, like my original problem, however now my remote rendering setup is correct, but in standalone, it is reversed,
Has anyone managed to get a standalone Unreal app's segmented dimming to work properly yet? Your MSAA suggestion helped, as without it, it didn't work at all, but when I initially turned on MSAA, it activated the dimmer, but it made the entire dimmer opaque. Then I turned on Vulkan Desktop Renderer and Mobile Deferred Renderer (on Standalone!) and I see it segmenting now, but in the reverse manner. I tried to switch the alpha with OneMinus (opposite node) and I got the same result of it working, but in reverse.
After messing with an absolute treasure trove of all available Unreal mobile rendering settings, it certainly has come down to how the headset processes the segmented dimmer from Unreal.
Even if there is no post-process material at all, the segmented dimmer works in reverse. I have tried to find code in the plugins related to the segmented dimmer, in hopes to modify it myself, with no avail.
These seems to be a hardcoded problem, although hopefully an easy one? Somewhere the dimmer is told per pixel to go 0-1 and it really should 1-0 or vice versa.
Granted this would be a quick fix, I have a second post process material that adds a blue hue and slight dim to the world for the sake of a cool menu effect, and said quick fix would not work for this. Actually controlling the segmented dimmer from Post Process opacity is a different challenge to solve.
However, the quick fix would be more than enough for quite some time as its more of what is needed, opposed to wanted.
Unfortunately, this is a known issue with no easy workaround that I'm aware of at this time. Our Unreal SDK team is aware of the problem and is tracking it internally. For all intents and purposes, segmented dimming is not supported for UE apps run natively on ML2 right now.
The issue is exactly as you describe, the alpha channel as rendered by Unreal Engine is inverted. As described in the article that Robbie mentioned, if you are using remote rendering, then you can use an infinite post processing volume to work around it by basically inverting alpha again.
However, afaik alpha is not output when post processing is enabled when packaging for Android by enabling the Mobile HDR option, so that workaround isn't an option when building an application to run natively. As you've discovered, you can get inverted alpha (and thus inverted dimming ) by disabling Mobile HDR and enabling MSAA.