C++ / VR - Rendering UMG post HMD distortion.

Hey guys,

I’ve been trying to get a full screen UMG Widget to render directly to the screen while in VR.

It seems that there’s a glitch here where in vr it only renders to one eye and not even the full thing. It’s quite odd.

Anyways, I was wondering if anyone knew a way that I could layer a texture in front of the camera post oculus distortion. I know it’s frowned upon to draw straight to the screen like that but sometimes it’s necessary (vr screenshots, for example).

Anyone know how to accomplish this? I’m using c++ and have the master branch of the engine so point me in the right direction if you can :slight_smile:

Thanks,
Paul

This is not an answer for your question per se, but it is a solution that I find to be superior.
In VR it is usually much better to make a widget in 3D to interact with as putting it on your eye is really uncomfortable.

You can either wait for 4.13 or use the plugin made by mitch’s vr lab. Google it, I do not have the link atm.

I understand that putting something against your eye is uncomfortable; though I think my use case trumps this.

I don’t intend on making anything to interact with. I want to display things like VR Screenshots and Google Cardboard youtube videos. (Where all the VR filters have already been applied.)

Putting these images directly against the eye would be a lot more effective then trying to position them in a way that they stay in front of the camera in world space.

Thoughts? (Also, what’s in 4.13? Ive heard grumblings of Forward Rendering. We’re you referring to 3D Widgets?)

In 4.13 they are releasing something that allows you to make UMG widgets and put them in space.

Anyways, so if I understood you correctly you want to make a VR video player and image viewer. If that is the case then UE4 might not be able to do it easily. I cant think of any easy ways to do this.

As far as I remember the rendering pipeline that you want to use is bypassed by the widgets not added to the world. You would have to change the rendering pipeline code in order to achieve the function you want to achieve.

The closest alternative is to make a plane covering the entire screen and then putting a high res (video) texture on it.