Showing posts with label MacBook Pro. Show all posts
Showing posts with label MacBook Pro. Show all posts

Tuesday, October 14, 2014

Using the DK 2 on a MacBook Pro

Updated this information elsewhere so updating it here, too. Here is what I did to get the DK 2 running on the MacBook Pro.

I first downloaded the 0.4.1 SDK and Runtime for the Mac. I then plugged in all cables as recommended in the guide that comes with the DK 2. After getting the cables set up, I installed the Runtime and SDK. The README contains this note:

 “Before using your new DK2, it is critical to update the firmware on the headset. This is important to ensure reliable functioning of your DK2. Use the Config Util to install the firmware file supplied in this release (v2.11). This is only relevant to DK2 owners.”

As I had tested the DK2 out on Windows previously, I had already updated my DK2 firmware to 2.11. Just to be sure, I ran OculusConfigUtil and confirmed that my firmware was up-to-date. While I had it open, I went ahead and created a user profile for myself. Creating a profile can help prevent discomfort when using the Rift.
OculusConfigUtil profile screen

On Windows, there is the new Direct HMD Access display mode which can be set by selecting Tools > Rift Display Mode in the OculusConfigUtil menu. At this time, Direct HMD Access mode is not supported on the Mac.

OculusConfigUtil Display modes selection panel
So for the Mac, the next step is to configure the displays. As with earlier releases, you have the choice of using Extended mode and Mirrored mode. Previously, I had not been able to get Extended mode to work and was forced to use mirroring. Oculus recommends against mirroring, so I gave Extended mode another try.

Extended Mode

In the display preference, I set the displays to extended mode. My laptop screen was set as the main display and the Rift was the extended display.  The Unity Integration guide, in the monitor set up section, says “For DK2, the resolution should be Scaled to 1080p, the rotation should be 90°and the refresh rate  should be 75 Hertz,” so those were the settings I used. 

In the OculusConfigUtil I then selected Show Demo Scene and the demo scene appeared correctly on the Rift. Yeah! 

The desk scene demo accessed by selecting the "Show Demo Scene" button in OculusConfigUtil 

I then tried to run the “Oculus World Demo" and it appeared on my main monitor and not the Rift. The mouse cursor also disappeared so there was no way to move the demo window to the extended portion of the desktop. The Unity Integration guide monitor set up section says “Some Unity applications will only run on the main display. In the Arrangement screen, drag the white bar onto the Rift's blue box to make it the main display.” This was the case with the “Oculus World Demo"  and to view it I needed to set the Rift as the main display and then run the demo.  But, doing so wasn’t as simple as it sounds. 

Working with the desktop is not really possible when looking through the Rift, so I needed to first make sure the “Display Preferences Window” and the finder window with the application I wanted to launch were situated such that they were at least partially on the extended portion of the display before I switched to having the  Rift be the main display. 

Desktop window positioning

With these windows in place, in the “Display Preferences Window” I grabbed the white bar that indicates which display is the main display and dragged it so that the Rift was now the main display. 

You need to grab the white bar that indicates which display is the main display and drag it so that the Rift is main display. 

Then with my main screen as the extended display, I double clicked on the “Oculus world demo” to run it. 
OculusWorldDemo

And the demo ran successfully on the Rift.

That process was very cumbersome, so I decided to also take a look at using mirrored mode.

Mirrored Mode

In the display preferences, I set the displays to mirrored. Again, I needed to rotate the display 90 degrees for the display to be the correct orientation.  

I then ran both the “Oculus World Demo” and the demo in the config Utility. In both cases I saw a lot of judder as I moved my head around (very headache inducing). The release notes have this to say on the topic:

“ Scene Judder - The whole view jitters as you look around, producing a strobing  back-and-forth effect. This effect is the result of skipping frames (or Vsync)  on a low-persistence display, it will usually be noticeable on DK2 when frame rate falls below 75 FPS. This is often the result of insufficient GPU performance or attempting to render too complex of a scene. Optimizing the engine or scene content should help.
We expect the situation to improve in this area as we introduce asynchronous timewarp and other optimizations over the next few months. If you experience this on DK2 with multiple monitors attached, please try disabling one monitor to see if the problem goes away.” 

On a suggestion from Brad, I tried setting the display refresh rate to 60 hertz. This significantly reduced the judder; however, there was noticeable screen blur when I moved my head. The good news on the blur was that unlike the judder, it wasn’t an immediate headache trigger for me.

Which mode will I use?

Which mode I will use will really depend on what I am trying to do.  If I am just using the Rift,  I would choose extended mode  as it does offer better performance. In extended mode I was seeing 75 FPS and in mirrored mode with the refresh rate set to 75 hertz I was seeing 46 FPS and with the refresh rate set to 60 I was seeing 60 FPS.

But until Direct HMD Access mode works on the Mac, unless I am testing for performance, I will probably mostly use mirrored mode when developing.  Mirrored mode allows me to see what the person using the Rift is doing and provides a faster work-flow for doing quick iterations.

Saturday, November 23, 2013

Setting up the Rift on a MacBook Pro

Wrote this up for someone else, so thought I would post it here too. This was my experience setting up the Rift on a MacBook Pro running OS X 10.9.

For connecting the Rift, I simply followed the instructions that came with the Rift.  Basically, I connected the Rift power box to my computer using both the USB cable and the HDMI cable that came with the Rift and then I plugged in the Rift power cable. The only issue I had here was that I needed a converter (HDMI to miniDisplayPort) that was not included in the Rift development kit.  It is easy to forget to connect one of the cables, I’ve done so more than once,  so be sure to check all connections first if you have any issues running the Rift.

For the display setup, Oculus recommends using the Rift as an extended monitor in most cases, but I found that did not work for me. The primary display defaulted to the Rift which meant my menus, windows and  mouse were all on the Rift portion of the display.  Because looking through the Rift shows two overlapping images of the desktop, actually selecting anything located there was nigh impossible. I was never able to get any demos to run properly on the Rift display.

The other option is mirroring, which is what I chose to do. There are two downsides to mirroring:
  1. Performance can suffer, specifically, screen tearing can occur.  Tearing on the Rift can be very distracting and it is the reason Oculus recommends extended displays. So far this has not been a serious issue for me, but I expect I may need to revisit this issue in the future.
  2. Optimizing the resolution for the Rift display (1280 X 800) doesn’t allow for a lot of screen real estate for doing work.  To simplify switching between the resolutions for the “built in display” and the “Rift display,” I made sure to check Show mirroring options in the menu bar when available in the System Preferences Displays panel. That way, I can easily switch back and forth using the display menu now located in the top right of the menu bar.
Using a single monitor isn’t ideal for Rift development as it doesn’t allow you to both see your development project and the results at the same time. But as my current system doesn’t have triple-monitor support, to add another monitor, I would  need to purchase an HDMI splitter. HDMI splitters have their own issues though, in addition to the expense of buying a good one.  For the time being, I will stick with mirroring.