在UMG中选中Samsung Galaxy S10e(Mali)后,显示的逻辑分辨率为1280 x 608,DPI Scale为0.5。
看下下源码发现算法大致是从DP中取到该机型的物理分辨率1080 x 2280,先将Height锁定为1280,再计算Width = 1280 * 1080 / 2280 + 0.5,代码如下:
[Image Removed]我拿了一台与该分辨率接近的三星Galaxy Note20 Ultra 5G(物理分辨率 1080 x 2316),运行游戏后输出ViewportSize 为1496*720,ViewportScale为0.5843。
又看了下相关代码,算法跟上述差不多,不同之处在于InOutScreenHeight和InOutScreenWidth跟上边相比是反过来的,InOutScreenHeight为1080,InOutScreenWidth为2248。
[Image Removed]DPI缩放曲线采用默认的情况下,两者根据横向规则得出的缩放值是不一样的,这样来看UMG中显示的缩放值似乎就没有参考意义。
我不清楚这是否算是一个bug,还望答疑,谢谢。