Skip to main content
Up and Coming
February 27, 2014

Rift on screen 1, normal camera on screen 2

Hey guys,

I'd like here to expose a setup that I have in mind and have your advice on this...

I would like to know if it is possible to have a Unity scene with an OVRplayercontroller to output image on the Rift (set as main screen) AND have a normal Unity camera in that same scene which outputs to a second screen (or window) which is looked at on the second PC screen.
This way, one user can use the Rift and enjoy a nice VR time, while another person sees on the PC screen what he sees or does, but on a 'normal' image (no distortion or image processing specific to the Rift).

It is similar to a setup with duplicated displays or using an HDMI splitter but having a flat 2D image on the PC screen rather than a distorded one identical to the one sent in the Rift...

Does Unity allow multi-window setup with one full screen for the Rift and another one for monitoring, using different cameras ?
If not, maybe in a multi-user environment where one user experiences the Rift on machine A and another one monitors on machine B ? But that is an heavy setup ;-)

THANKS !
    This topic has been closed for replies.

    6 replies

    Up and Coming
    February 27, 2014
    I touched on this in another post, the info there may help:

    https://developer.oculusvr.com/forums/viewtopic.php?f=37&t=6292
    Inspiring
    February 27, 2014
    In this post, there's a link to a video where they describe how they set up the EVE Valkyrie monitor at CES -- they used a scaler box.

    Others have suggested linking two computers via network code, which would then give you more flexibility in what kind of a viewpoint is actually shown on the normal monitor.
    Titans of Space PLUS for Quest is now available on DrashVR.com
    Up and Coming
    February 27, 2014
    You could technically do this by calling the System.Windows.Forms namespace in a custom code (to detect the monitor setups), and then output the cameras to the individual displays. However, the game would be rendering twice, so in theory, you would get 1/2 FPS, maybe a bit more (?).

    As far as code, I have no idea, I just know the theory behind it. But it's a starting point, right?

    I think a better solution would to have a separate program that runs in the background that applies a "reverse Rift distortion" and sends that to the monitor. It could work, probably.
    Current WIPs using Unreal Engine 4: Agrona - Tales of an Era : Medieval Fantasy MORPG
    Up and Coming
    February 28, 2014
    Thank you for your answers.
    I also believe that using a multiplayer networked system is the best, for the following reasons:
    - it does not require double rendering, so less load on the main machine (in fact you have 2 PCs)
    - you can have a separated camera, seeing a totally different image from the main Rift display
    - if PC B (for monitoring) crashes, PC A still works
    - if PC B is not used, PC A works
    - you can have an unlimited number of normal monitors or Rifts (each one having its own PC)

    The only "problem" is that it requires more PCs and some setup (software setup for multiplayer + hardware).

    I'll still give a try to multi-window rendering to see what the FPS is. On a good workstation, it might be ok to provide Rift display in 1280x800 + monitoring display in lower res like 1024*768. it is just for monitoring...
    Inspiring
    February 28, 2014
    Yeah, this it totally something we are investigating. I don't think there is an easy way to do this with Unity right now.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    February 28, 2014
    Its possible with a native plugin that grabs the frame buffer and copies it to a secondary window, at least on windows. Avoiding pipeline stalls that increase latency would make the implementation finicky though.

    Spectator clients are the best way though, if you want high quality for recording or demos.