I have a question which I believe is a simple solution, but I’m not really managing to find the solution.
Imagine a game that builds only the iPhone 5.
Its resolution is (640 × 1136), actually is half that, right?
Imagine I have a picture with the same size in pixels of the resolution (ie 1136 × 640).
In UMG editor if I select the iPhone 5 as screen size reference he will make the limits in the same size (640 × 1136).
Then, still in UMG editor, I drag an IMG and seto its texture with the same texture image I mentioned earlier, with its anchor point in the upper left corner, correctly occupying the entire canvas.
For me the obvious result would I see this picture also occupying the entire canvas when I made the launch on the phone, right?
Yet it is not what happens. The picture is bigger, always even changing the scale factor in the initialization file.
Does anybody can guide me.
Thanks in advance.
Sorry, but it’s quite confusing (maybe just me :p) without a screenshot to refer to. And;
Is this portrait/landscape?
You’re using 4.8/ 4.9? -> did you referred to this updated mobile scale factor? : Performance Guidelines for Mobile Devices | Unreal Engine Documentation
I’m currently working on iPhone6+/ iPad3; iPhone 6+ factor 2.0 (3.0 scale is a bit overkill, almost no difference), iPad3 factor 1.0
Both devices show crisp/sharp UMG images and scaled correctly as in editor - anchor based that is.
Anyways, usually what I did for cross-devices, I’ll use the highest res (1080x1920, portrait or landscape), and let the engine scale itself.
Mobile scale factor is not a factor for Slate/UMG, at least shouldn’t be. Slate renders at the native resolution of the device/viewport. Any scalability setting that effects the scene renderer is not visited upon Slate.
The DPI Scale is what you’re experiencing. Configured in the Project Settings > User Interface. The Size you’re entering for the image widget in the canvas is in Slate Units, for 1:1 scaling. By default the DPI Scale curve is for 1080p as being the 1:1 scale, and everything scales linearly up or down from there.
I’m not sure if its a bug or not, or perhaps its just me; from the screenshot below, taken directly from iPad3, no photoshop filter applied for both -
top: scalefactor 2.0, bottom: scalefactor 1.0
The size/ location is output is O.K, however the sharp/crisp is greatly noticeable.
Project setup: Engine Ver - 4.9.1, Camera - Orthographic 768
I haven’t tested this on Perspective Cam mode thou.
The sharp/crisp is even worst in android device if the scalefactor is not set properly in WHICH in 4.8.3, using the same profile device/ UMG/ un-edited DPI scale - this issue does not exists / not a problem.
Hmm, I think mobile scale factor does effect the resolution of the back buffer, in which case it would effect UMG.
In a way, yes. However, this was not an issue back in 4.8.3, refer to screenshot below;
top: version 4.8.3, no configured profile device.
bottom: the project from top screenshot cloned-fresh to 4.9.0/4.9.1, no configured profile device.
Both screenshot taken from the exact same android device and the exact screenshot app.
After cloning, I configured the profile device, however it seems weird that - even I changed both (Android/ Android_ETC1) profile, it still does not properly adjust the scale. However for iOS devices, it does scaled based on what you configured.
I’m not sure if I this is a bug or simply changes intended that were made for 4.9
Edit: the ‘?’ icon, added by using different UMG bp, just to make sure if the UMG bp cloned from 4.8.3 causing the issue - seems not. I even changed the ortho from 512 (in 4.8.3) to 768, still produced the same result.