[solved] Vertical resolution of cursor tracing with small FoV

  1. Set camera arm at 45° angle, 70000 units far from a floor plane
  2. Set field of view to 5°. (setup for an isometric game, as suggested everywhere)
  3. Trace from cursor with “Get Hit Result Under Cursor by Channel”
  4. Use “Draw Debug Point” to visualize where it hits
  5. Start the game and move cursor around

You’ll see something like this (large vertical gaps):

What’s going on? My traces jump 100 units vertically, like there’s missing space.

I’ve tried AspectRatioAxisConstraint=AspectRatio_MaintainYFOV in config, and “Enable FoV scaling” in project settings. Nothing made any difference whatsoever.

The point of the camera setup is to approximate orthogonal camera (isometric game) but work around missing dynamic shadows and screen-space reflections. This is killing the whole approach in my opinion.

Thanks for any suggestions.

Found a solution. It gets fixed by increasing Near Clip Plane value. I’m now running r.setNearClipPlane 50000 at BeginPlay and r.setNearClipPlane 10 at EndPlay, so it doesn’t carry over to the editor.

Now I found “Enable FOVScaling” and “FOVScale” in Project Settings > Input > Mouse properties… which probably controls this behavior

It sounds as though the jump in Z by 100 units is a compensation for the really long view distance. What are you using to get dynamic shadows? Cascaded Shadow Maps or Distance Fields, or both? If distance fields aren’t working, it could be the global distance field is disappearing at 70000 units camera view distance, as its default is 20000.

Why is the clip plane affecting cursor motion and detection at 700 meters away? That’s quite bizarre.