I am using the 4.7 preview 4 and not sure if this was happening in previous versions… This one took a while to figure out but I finally got it. So everything was looking great in my project in the “standalone player” and “VR Preview” mode, but when packing the project it was subtly blurrier than in the editor, enough to kill the immersion a little.
So I finally found the answer. It ended up that if I pressed “Alt + Enter” even though the game was already in rift mode, it immediately cleared everything up and looks exactly as the “VR preview” did clarity-wise. Not sure if is now caused by UE4 autoexecuting the ‘stereo on’ console command, I did not have this command in my blueprints but I heard there may be an issue with it. Just want you guys to be aware of this, I spent hours digging through the post processing volume, engine scalability settings, render settings. It was a small bug, and only a matter of pressing ALT + Enter counter intuitively as it was already in rift mode.
Edit: I Found easier way to reproduce what I am seeing. Open level blueprint, create event begin play → then connect it to ‘execute console command’, in that box type stereo on. Then go “play a standalone” game (not VR Preview). It will start in rift mode automatically. Press ALT + Enter and it will get clearer. This appears to be an issue with the stereo on command, but I do not have it present in my other project so it must be autoexecuting somehow.
One more thing, If I do a level blueprint like this it temporarily fixes the blur: (event begin play) → (execute console command(stereo on)) → Delay for 2 secs → (execute console command(stereo off)) → Delay for 2 secs → (execute console command(stereo on))
Kind of a crude fix Same issues using ‘stereo hmd’ command.
This is not the ‘blur’, this is wrong resolution of the render target. I found a reason why this is happening. The ‘stereo on’ command that is linked to BeginPlay event is executed too early when the window is not even created yet. Therefore, all the adjustments to the window and viewport are not done (Viewport size should be changed to match the Rift’s resolution, and it uses Window object for that as well).
I have it fixed in my development branch, but it is pretty far from 4.7 already (too new, hopefully, it will be integrated into 4.8). There is no easy way to fix it in current 4.7 (w/o touching the core), unfortunately.
As a workaround, you may execute ‘stereo on’ on Tick Event instead of BeginPlay. A downside of this solution: you’ll need to do this only once, thus will be necessary to create a simple singleton logic with a boolean variable.