Windows Mixed Reality SteamVR image distorts on rotate

I’m testing my VR App with a WMR device (Acer). Everything’s fine except as you turn your head in VR the world distorts so for example a square upright plane looks like a shifting parallelogram in peripheral vision as you move your head.

This is the same using a fresh VR template project. Tested with 4.18.1.

Anyone else seen this or have a work-around?

Also see this post:

It appears to be a regression in 4.18, 4.17 works.

Hi,

I’m testing with the HP WMR headset and what fixed that problem for me was applying https://github.com/EpicGames/UnrealEngine/pull/4294

Additionally MS openvr implementation seems to give the VIVE resolution on IVRExtendedDisplay::GetWindowBounds, so I hardcoded it to return the correct resolution for now which made my project run correctly (as far as I can see).

That’s at least as far as I got, upscaling doesn’t seem to be working though.

Thanks Stefan, I’ll give it a go!

the pull request didn’t work for me with the Acer, kind of fixed it in the editor but rendering off when packaged, looks like two circles.

Hmm, my guess would be you have upscaling/supersampling (sorry, not sure of the correct naming) activated.
Have you set r.ScreenPercentage to 100?

Thanks, Yep my bad, it was defaulting to non 100 percent and works ok at 100 though blurry as a consequence.

Unfortunately this pull request also breaks supersampling for the Rift and Vive so not releasable for the moment unless I hack HMD name based logic into SteamVRHMD.cpp which seems like a bad idea.

Hoping an official fix for this is coming soon!

I was having this same issue with my Samsung HMD Odyssey and was able to come up with a fix.

I created a bug report (with fix linked) here: Windows Mixed Reality device screen distortion (SteamVR devices unusable besides ) - XR Development - Epic Developer Community Forums
Please upvote it to get this fixed ASAP!

Link to my pull request to fix the distortion issue in 4.18 here: https://github.com/EpicGames/UnrealEngine/pull/4354
If you want to build the engine from source, this will fix the issue and get it working before Epic Games fixes it.

Thanks, also confirmed with the Rift.

There’s some misunderstandings going on here.

1-WMR works with 4.17

2-WMR does NOT work with 4.18

3-There is a pull request that reverts SteamVR back to the way it was in 4.17 for 4.18 but you have to build 4.18 from source and then apply the pull request at https://github.com/EpicGames/UnrealEngine/pull/4356

The github repos are all there as usual at https://github.com/EpicGames/UnrealEngine. You can fork and branch it to create your own changes and pull request if needed.

Thanks for the info but none of these solutions really work.

They never fixed this bug and have now moved on to 4.19.

The github repos are deceased, and even before you’d have to get invited to them to be able to dl them.

Also according to jimsnomis and others, it might fix the warping but it wasnt fixed in the build and brought on other issues like no SS.
That means 4.17, 4.18 and big surprise now 4.19 are all not usable for VR dev. especially for WMR.

Hey Jim, thanks for the feedback! Were going to get this sorted!

So I’ve spent a lot of time profiling and analyzing the differences between 4.17, 4.18, 4.19 with the Rift, vive and now WMR.

  1. Actually you may think it works in 4.17 but you can see in the profiler/gpu profiler that there is a random repeating lag spike with the HBZ MIP that adds 5-50 ms of lag and this is reproducible and has been documented by many people. Same with the deferred render and drawing windows and children are well past 11ms on the template level EVEN AFTER applying common optimization suggested for VR.

  2. Correct it does not work with 4.18 because of the screen warp.Some have fixed with a post processing volume but then in the build the image is split so they didn’t really fix it.

  3. Those githubs are locked until they accept your invite… so here i am waiting around for an invite… useless. I am perfectly capable of rebuilding with a gitpull, I’ve done it before and i’ve made my own branches to solve for vr not being fullscreen back in 4.17 and these should not be where you have to get solutions from in case anything changes. As well like as others have stated even with the repo, they just produce other bugs that make it unusable. Specifically no SS.

*Edit I did finally get my github linked to unreal, even though in the end it was pretty simple the directions were sort of vague and it was not clear that it was in my unreal account info that i needed to enter my github name. Thats going but even with that recent github pull these errors persist

Thanks for clearing that up!
I was getting confused between what the pulls so thats good to know that one fixes the issue without bringing on those errors.
I’m still salty though about having to go find git pulls as solutions for these problems.

I haven’t profiled myself so am going on user testing, admittedly with my project, not with the template project. With my game it seems fine with 4.17 + WMR. I’ll have a go at profiling it though.

Re - your comment about SS not working in the pull request, that was a different fix. The fix that reverts to 4.17 SteamVR behaviour also works fine with SS. There was an earlier pull request fix that broke SS.

I understand your frustration that this stuff should be QAd and work out of the box.

It seems that 4.19 has fixed this problem.

You say you came up with a fix, could you share what that is? It would help enormously. I have created a game in 4.18, It plays great on Rift but not in Steam VR with Odyssey (and Revive Remixed doesn’t pick it up, Steam VR always starts,.) I am hoping to make a change in the ini files to help it play in Steam VR on WMR,. It seems to be playing 'too large (or small?) in the odyssey, it shows the right eye, sort of cut off at the right side, on the screen mirror) ,…!
Please Please. let me know, what you know, about the Odyssey, Ue4 4.18 and Steam VR :slight_smile:

Follow the GitHub link and make sure you are logged into a GitHub account that has access to the Unreal Engine 4 source code.

Hello,… Thanks for that,. I have spent another 30 days (off and on…) trying to figure out what fix is there, :slight_smile: I can’t get my head are the ‘pull request stuff’, I’m too much of an Artist for that I think,. This problem has plagued and haunted me for years,… What I am hoping, is there might be a way to ADAPT the way the Game PLAYS,. A way to CHANGE the ‘r.ScreenPercentage’ in an .ini file like, BaseEngine.ini, or,… BaseScalability.ini
(that last, is where I found this, which seems promising to (still green) me!:

"; Base scalability settings
; =========================
;
; The definitions here affect the console variables starting with “sg.” and define the user quality levels (game/editor video settings)
; To override a specific platform use DeviceProfile.ini (watch out for the different syntax.
; Note: [ResolutionQuality] isn’t using the usual 0/1/2/3 quality levels, the value directly maps to r.ScreenPercentage.
; This is because we want custom scaling aligned with the screen/window resolution with more fine grained control.

Useful?

PLEASE try to help me. I was in hospital for nearly 3 full years, fighting rare cancer, intensive care for 7 months. Then my parents house burned down. Years of work, (Project files & Blueprints etc) Gone. it is my First game and First VR game I spent 4 years.
It’s a ‘This game was made by one guy!’ game.
To change ‘Screen Percentage’ or Ratio or SOMETHING that would simply, without rebuilding, in an INI, tell Steam OR Revive:RemiXed, "play it like this: "

I know you will want to say, just move on (I am, four completely different games in the works) or remake the thing (Impossible as am artist & writer I know, nothing is ever the same the second time, if you lose work)

I think this is a solvable problem. :slight_smile:

PLEASE, IF YOU CAN EVEN THINK OF ANYONE TO ASK, PUT A WORD IN FOR ME AS A UNIQUE CASE. THE STEAM / WMR WORLD WILL GET A VERY COOL GAME OUT OF IT!

Robert (‘Woody’)

PLEASE Try to help me! I have a really good game I worked on for years, both my first game and my first VR game but it is very elaborate and surprising. I worked on movie such as Life of Pi 3D, As Character /FX Animator, I have been a character Animator in Hollywood for 25 years. I made a GOOD GAME, The kind where people say:

ONE GUY MADE THIS?

BUT Due to years in hospital, and a house fire, I no longer have my project and BP’s. I REALLY Want to be able to view it in my Samsung Odyssey, I have researched for years but there is SO LITTLE GOOD INFO about using INI commands to do anything… In my studies in other games ini files I found this:

“; Base scalability settings ;
; The definitions here affect the console variables starting with “sg.” and define the user quality levels (game/editor video settings) ; To override a specific platform use DeviceProfile.ini (watch out for the different syntax. ; Note: [ResolutionQuality] isn’t using the usual 0/1/2/3 quality levels, the value directly maps to r.ScreenPercentage. ; This is because we want custom scaling aligned with the screen/window resolution with more fine grained control.”

Useful? This would seem to indicate to me, that there is a way to change these things at playback time!! PLEASE, You are one of the few people that could help me figure this out, I know you can do it! (I believe in you! :wink:
Reallly. PLEASE PLEASE try to help me. IF I CAN GET IT WORKING ON WMR/Samsung Odyssey, . I’LL RELEASE IT ON STEAM, I’LL GIVE YOU A TECHNICAL CREDIT OR SOMETHING YOU THINK IS APPROPRIATE!!!