Can't understand differences between GetViewportSize() and GetMousePositionScaledByDPI

Hi,

I’m having a lot of trouble wrapping my head around controlling viewport size and perspective camera FOVs.

I placed a plane mesh at (0,0,0), and a camera facing down at (0,0,1500). The camera has an FOV of 90°, which means that the visible area should stretch from (0,-1500,0) to (0,1500,0) along the Y axis because triangles, but this isn’t the case - if I place a cube at (0,1500,0), it’s off the screen.

I figure it has something to do with resolution scaling, since if I move the cube into view and change the window to say 300x900, the cube is smaller and in a different apparent place than a 600x900 window. I used the BP node called GetMousePositionScaledByDPI and moved the mouse to the viewport edges to compare the values I was getting from GetViewportSize(), and it gives wildly different values depending on the viewport size.

However, after a significant amount of digging I can’t find any documentation about accessing the resolution or DPI scaling that is actually happening. I want the camera in perspective mode, but have world objects scaling based on the user’s screen size (it’s a mobile puzzle game). Can someone point me in the right direction?

Thanks!