WorldToMeterScale does not work properly with and Asynchronous Reprojection

I found an error where for some frames the default value of 100 is taken for the WorldToMeterScale, even if the value has been changed. This error occurs for scenes where the render time takes sometimes slightly more and sometimes slightly less than the required time to hit 90 fps (~11ms). And only if it is tested with and Asynchronous Reprojection enabled. The effect of this error is that the camera seems to jump around very fast as it is sometimes scaled with the changed WorldToMeterScale and sometimes with the default value.

The error can be reproduced with the following steps:

  1. Create new Project in Unreal Engine 4.18.1 with the Blueprint VR Template
  2. Open VirtualRealityBP/Blueprints/MotionControllerPawn Blueprint
  3. Add “Set World to Meter Scale” Node between EventBeginPlay and Seq
  4. Set “New Scale” to 10
  5. Compile and Save Blueprint
  6. Open VirtualRealityBP/Maps/MotionControllerMap
  7. Add enough objects to the scene that your computer isnt able to render it at 90+ fps anymore (For my setup I added 500 SM_TableRound and 2500 SM_Chairs from the Starter Content folder to the scene)
  8. Test scene in VR with and Asynchronous Reprojection on
  9. Look around and find a position where some frames are rendered in the required time to hit 90 fps and some take a bit longer.

Hello BSteger,

I have run a few tests on our end. I was unable to reproduce this issue with the information provided. Could you provide a project that is experiencing this issue so that I can take a closer look (along with any steps needed to reproduce the issue in the project provided)? Could you also elaborate further on what exactly it is that you are seeing when the issue occurs?

Hi Rudy,

Thanks for the reply. I uploaded a video to showcase the effect of the issue Unreal Engine Bug: WorldToMeterScale with Vive and Asynchronous Reprojection Example - YouTube . The effect is best visible at around 0:34. For some reason the WorldToMeterScale gets reset to 100 for the interleaved frames causing the camera to jump to a different location. I created a project with the 9 steps listed above, but its about 600mb big. Whats the best way to share it with you?

You can provide the project via a google drive or drop box link.

I uploaded it to Google Drive VRBugTest.zip - Google Drive
The computer I tested it has a GeForce 1070, if you have a different GPU you probably need to adjust the scene to get the same frame timing as in the video.

Hello,

We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

Thanks