Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
FredMastro's avatar
FredMastro
Honored Guest
11 years ago

Duplicate Display Broken? Proper way to display something?

DK2. I was reading the other post below where the guy has apps half on half off his screen. My issue is diff but still around display. Seems only HMD (direct mode?) works with the calibration demo. Everything else wants to run on my monitor #2. If I extend the Rift in desktop mode then most things work only if I make the rift my "main" desktop. I tried to duplicate my monitor #2 with rift (monitor #1) but then even though they are both resolution 1920 by default, in duplicate it drops to like 1024 and my monitor #2 only uses half it's physical real estate and the rift is sideways.

Anyone have any idea how best to configure the rift so it's not your main desktop and tell apps to run on it? I also get odd video artifacts at the edges of the display, like that rainbow effect, making things hard to read.

4 Replies

  • You should be able to just set the Rift to Direct mode and everything will automatically work like you want. However, with some configurations this is not fully supported, so you have to use Extended mode. In Extended mode you will have to manually set the Rift resolution and refresh (to 1920x1080 @ 75Hz) and then rotate the screen orientation. Then use the 'DirectToRift' exe to load on the Rift.

    The "rainbow effect" you talk about is chromatic aberration and is normal.

    Also, make sure you measure the ipd in the Config Util as it makes a difference.
  • drash's avatar
    drash
    Heroic Explorer
    "cybereality" wrote:
    In Extended mode
    .
    .
    .
    Then use the 'DirectToRift' exe to load on the Rift.

    What about in Direct HMD Access mode? Is the DirectToRift.exe the intended executable to run for that mode as well, or not? I think the vast majority of DK2 owners assume that DirectToRift.exe is related to Direct HMD Access mode from the name alone, but it would be good to get official word on that.
  • tjbtech's avatar
    tjbtech
    Honored Guest
    Regarding chromatic aberration in SDK 0.4.1, IPD adjustment makes no difference for me, and I'm right at the default setting, anyway. In fact - and I could be misunderstanding the commenting - the source code apparently notes this very phenomenon:

    OVR_Stereo.cpp, lines 987, 1024, 1083, and 1111 (GenerateLensConfigFromEyeRelief function):
    // Chromatic aberration doesn't seem to change with eye relief.

    Most DK2 demos (build with SDK 0.4) run in Direct mode present with such gross aberration - maybe all, but I recall one or two without such a problem. If so, maybe they applied a fix to their library build. I mean, there is always a little bit of chromatic aberration present in all modes and versions if you look for it, especially at the edges, but something is seriously wrong with the beta SDK. I'm pretty certain Oculus is aware of this, as outlined in other threads on the matter.

    I just run everything in Extended mode, and everything works fine for me. If you install the Oculus service manager that Bilago made (linked all over the place in these forums and reddit, etc.), a shell context menu extension is created, "Open on Oculus Rift," which, I believe, just includes a command-line switch for the "monitor" on which to open the application. I don't have to use it much, though. In short, for many demos, you will have to set the Rift as your primary display, though. I think this is true of just about all full-screen programs. UltraMon is the best for managing multi-monitor setups. But here are the steps to take if you're a cheap-skate like me, most still applying, even with UltraMon or the like:

    1) Make sure the task bar is shown on both monitors, preferably duplicated. I like to use a little utility for this purpose, actually: zbar. Windows 8 has this capability built in. I also found an open-source kit of applets (http://sourceforge.net/projects/dualmonitortool/) for other handy bits. SwapScreen, for instance, allows you to set your own hotkeys for moving windows between screens. And I use DisMon for easily changing which monitor is set to the main desktop display. Again, UltraMon does all this and does it better. Your choice.

    2) Set the Rift to your secondary display, 1920x1080p / 75 MHz, with the desktop extended. Rotate the screen 90 degrees by setting it to Portrait mode. Disable vertical sync / v-sync in proprietary graphics card utility (Nvidia?) if applicable.

    3) Now, open the folder(s) containing demos to run, and use DisMon to set the Rift to primary display. Use your hotkey to swap DisMon over to your (now secondary) monitor. Then, alt-tab through other windows, swapping them over to your monitor, in kind.

    4) Run a demo (extended version, not XXXXX_DirectToRift.exe if the program was built with latest SDK). If it's a full-screen one, it will open in the Rift automatically. On the other hand, if it's a Unity demo where you choose display options from a dialog first, it might seem like nothing is happening. Chances are, the dialog opened on the Rift, so just use the hotkey to move it to the monitor. Choose your options, then (important) swap the dialog back to the Rift before hitting ENTER to launch the demo.

    5) If the demo opens half-on-monitor (windowed mode only), bring it fully on the monitor, doing your best to align the full picture on the display. Then, just hotkey-swap it over to the Rift, and it will look fine.

    6) For old demos, use Bilago's manager to stop the Oculus service before launching. Alternatively, create a script to shutdown OVRService(_x64).exe, wscript.exe, and disable the Task Scheduler task for the service. (Manager is better!) Restart it later when you are going to run a DK2 demo.

    7) When you're done, turn off the Rift, and everything just goes back to your monitor. Or you can reset your primary monitor as the primary desktop display.

    8) It seems like a lot, but it's pretty quick and easy, really. Still, if you have a better procedure, let me know...