With the first commercial version of the Oculus Rift (Rift CV1) now trickling out of warehouses, and Rift DK2, HTC Vive DK1, and Vive Pre already being in developers’ hands, it’s time for a more detailed comparison between these head-mounted displays (HMDs). In this article, I will look at these HMDs’ lenses and optics in the most objective way I can, using a calibrated fish-eye camera (see Figures 1, 2, and 3).

Using such a camera, I can take pictures of exactly what a user would see inside the HMD, and at the same time measure sizes and angles directly and accurately. The basic method is to display a set of test images directly on the HMD’s screen(s) (without applying lens distortion or chromatic aberration correction, as 3D software would), and to take pictures of those test images from a set of positions relative to the HMD’s lenses, to account for users with different inter-pupillary distances and/or eye-lens distances (see Figures 4 and 5). In this first experiment, I kept the camera centered in front of its lens and only varied lens-camera distance. This is appropriate, given that the three main currently-availble HMDs (Rift CV1, Vive DK1, and Vive Pre) have physical IPD adjusters, meaning most users will be able to center the lenses with respect to their eyes.

Unfortunately, I was not able to run the full set of tests on the Oculus Rift CV1. Unlike the other HMDs, it does not work as a straight display when plugged into a computer; it requires Oculus’ run-time software to be installed, which prevents displaying arbitrary non-distortion corrected images on its screens. I was only able to run the field-of-view tests, using pictures taken inside several Oculus VR applications (home screen, Dream Deck, Lucky’s Tail).

Lens Distortion and Chromatic Aberration Test

The first test looks at the distortion and chromatic aberration (color fringes) caused by an HMD’s lenses, mostly to get an idea what the different lenses’ properties are. The test displays a simple grid of white lines on a black background. Note that the following images show raw distortion: this is not what the display from a VR application would look like.

Note that the HTC Vive DK1 and Pre have somewhat less geometric distortion and chromatic aberration across the image than Oculus Rift DK2, but show some Fresnel fringing towards the perimeter. Also note that the Vive DK1 and Pre images look very similar, indicating that they have very similar or identical lens/screen systems. In the following, I will only show pictures from both Vive DK1 and Vive Pre in cases where there are significant differences.

Glare Test

One thing that I noticed immediately when I put on the Oculus Rift CV1 for the first time was a surprising amount of glare, caused by the ridges of its Fresnel lenses. I had not noticed glare this strong when using HTC Vive DK1 and Pre before, which both use Fresnel lenses as well. To put it to the test, I displayed a high-contrast image of white text on black background, because glare in the Rift CV1 was most noticeable in the opening screens of EVE:Valkyrie, which feature white text on black. Unfortunately, I was not able to run this test on Rift CV1 (see above), but here are the results from Rift DK2 and Vive DK1/Pre:

Note how the Oculus Rift DK2 does not exhibit glare due to its simple lenses, and that the glare effects in HTC Vive DK1/Pre show the relatively wide Fresnel ridges of their respective lenses. The slightly more pronounced glare in Vive Pre might be due to its brighter screen.

The effect in the Oculus Rift CV1 looked different, due to the Rift’s narrow Fresnel ridges. Subjectively, instead of distinct concentric circles, I saw crepuscular rays of the shape shown in Figure 12; not quite as strong, but distinctly noticeable and somewhat distracting. Unfortunately, I was not able to measure this effect objectively (see above).

Field of View

The most important question for me — and the only one that really requires a rectified camera — was the size of the headsets’ fields-of-view. Field of view (FoV) is an important contributing factor to immersion and the effect of presence. However, unlike the effects described above, FoV — while being an objective measurement — is different for each viewer, as it depends on the relative position of the viewer’s eyes with respect to the HMD’s lenses (most importantly, lens-eye distance or eye relief), which in turn depends on a viewer’s head size and face shape, and how the headset is worn.

The way to address this issue is to measure FoV for a number of different lens-camera distances, in the following experiments 0mm (camera touches lens), 5mm, 10mm, 15mm, 20mm, and 25mm, and to additionally measure the lens-camera distance that maximizes FoV, and maximum FoV at that distance. These measurements allow a comparison between different HMDs, and would make it possible to estimate per-viewer effective FoV a-priori by measuring a person’s head shape.

I took these measurements by displaying a test pattern using the HMDs’ entire screens (960×1080 pixels per eye for Rift DK2, 1080×1200 pixels per eye for Vive DK1 and Pre). Another potential limiting factor for FoV is the VR rendering engine; for several reasons, an engine might only render to a smaller region of the screen, in turn reducing FoV. To test this, I also took pictures of VR applications running in Oculus Rift DK2 and HTC Vive DK1/Pre. For Oculus Rift CV1, this was the only way I could measure FoV (see above).

All following pictures, unless otherwise noted, are shown in stereographic projection (see Figure 3), to simplify angle measurement.

Oculus Rift DK2

Figures 13-18 show a test pattern in the Rift DK2, on the right eye, using lens-camera distances of 0mm, 5mm, 10mm, 15mm, 20mm, and 25mm:

Measuring horizontal and vertical FoV at the narrowest points of the bowties, we get:

Lens-camera distance 0mm 5mm 10mm 15mm 20mm 25mm Left Horizontal FoV 49° 48° 47° 45° 38° 34° Right Horizontal FoV 47° 47° 46° 44° 37° 33° Total Horizontal FoV 96° 95° 93° 89° 75° 67° Vertical FoV 107° 106° 104° 99° 76° 66°

The Rift DK2’s FoV is maximal at 0mm lens-camera distance, i.e., when the user’s eyeball touches the lens. This is generally not achievable, and the minimum eye relief configurable in the SDK is 8mm, with an effective binocular FoV of 94° x 105°. Figure 19 shows a picture of the SDK test scene, configured for minimum eye relief, and taken at 8mm lens-eye distance. This figure is in rectilinear projection to show the straight left and right edges of the view frustum (and the lens-limited circular top and bottom edges), and the quality of lens distortion correction (note the straightness of straight lines):

The difference between left and right FoV angles allows calculating the amount of overlap between the left and right views, and therefore the total binocular FoV. Taking the above measurements at face value, the right-eye view is slightly skewed to the left, leading to more than 100% stereo overlap, and a total binocular FoV (assuming that the left/right views are mirror images of each other) ranging from 98° (at 0mm distance) to 68° (at 25mm distance). Left/right FoV offset is difficult to measure accurately, but in the Rift DK2’s case, we can use the known internal HMD geometry to double-check the results. The DK2’s screen is 125.76mm wide, and the lens center distance is 63.5mm. This means the left and right lenses are slightly to the left and right of the centers of their screen halves, respectively, which skews the left/right view frusta towards the center. Plugging in the numbers yields a stereo overlap of 101%, which is consistent with the measured values (and might explain the slightly “blinkered” feeling when using a Rift DK2).

HTC Vive DK1/Pre

Figures 20-25 show a test pattern in the Vive DK1, on the right eye, using lens-camera distances of 0mm, 5mm, 10mm, 15mm, 20mm, and 25mm. Unfortunately, the Vive’s FoV is slightly larger than my camera’s vertical FoV, which means I had to take two sets of pictures, one with the camera rotated by 90°, and measure horizontal and vertical FoV separately. I am only showing the pictures measuring horizontal FoV; please take my word for the vertical FoV measurements listed after the pictures. Pictures from the Vive Pre are basically identical, and omitted for brevity:

Measuring horizontal and vertical FoV at the narrowest points of the bowties, we get:

Lens-camera distance 0mm 5mm 10mm 15mm 20mm 25mm Left Horizontal FoV 44° 46° 46° 46° 44° 39° Right Horizontal FoV 48° 53° 54° 47° 41° 37° Total Horizontal FoV 92° 99° 100° 93° 85° 76° Vertical FoV 102° 112° 113° 99° 88° 77°

Unlike the Oculus Rift DK2, HTC Vive DK1/Pre reach their maximal fields of view at some distance from the lens, specifically at 8mm eye relief, which is practically achievable. Also unlike Rift DK2, the Vive DK1/Pre’s view frusta are skewed outwards, sacrificing stereo overlap for increased binocular FoV. At the ideal eye relief of 8mm, and again assuming that the frusta are mirror images, total binocular FoV is 110° x 113° (not included in above table). To reiterate, measuring FoV offset accurately is rather hard, and the resulting binocular FoV estimates, unlike monocular FoV measurements, are to be taken with a grain of salt.

Figures 26 and 27 show pictures of the SteamVR home screen at 8mm lens-camera distance, again in rectilinear projection. Figure 26 was taken with the camera in horizontal position, cutting off the top and bottom of the Vive’s FoV, and Figure 27 was taken with the camera in vertical position, cutting off left and right:

Oculus Rift CV1

As I mentioned above, the Rift CV1 did not allow me to display test images. I had to limit my experiments to measuring FoV using images rendered by the VR engine. Figures 28-33 show the in-game setup screen in the Rift CV1, on the right eye, using lens-camera distances of 0mm, 5mm, 10mm, 15mm, 20mm, and 25mm.

These images are to be taken with a grain of salt. I did my best to center the camera with respect to the right lens and aim it at the display’s center of projection, and the total monocular FoV will be quite good, but due to my inability to display a targeting image, I cannot guarantee that the left/right horizontal FoV measurements, and therefore the total binocular FoV estimates, will be as accurate as those for the other headsets. In Oculus lingo, they will be “in the ballpark.”

Measuring horizontal and vertical FoV at the vertical and horizontal centers, respectively, we get:

Lens-camera distance 0mm 5mm 10mm 15mm 20mm 25mm Left Horizontal FoV 35° 36° 37° 37° 35° 30° Right Horizontal FoV 43° 45° 47° 47° 44° 39° Total Horizontal FoV 78° 81° 84° 84° 79° 69° Vertical FoV 84° 89° 93° 86° 78° 69°

As in Vive DK1/Pre, the maximal FoV is achieved at some distance from the lens, in this case 12mm. Taking the left/right FoV value differences as accurate, the total binocular FoV at that lens-camera distance is 94° x 93°.

Figure 34 shows another picture, this one from Lucky’s Tail (or is it Luckey’s Tale?), again in rectilinear projection:

Comparing Field of View

As is evident from the pictures I posted, reducing an HMD’s FoV to two numbers (horizontal angle times vertical angle) does not do it justice entirely. For example, the Rift CV1’s FoV is rectangular at 12mm lens-camera distance (see Figure 34), whereas the Rift DK2’s FoV is capsule-shaped (circular at top and bottom and straight on the sides, see Figure 19). Vive’s FoV is more circular, with a strange bite missing on the inner side (see Figures 26 and 27).

The best way to compare fields of view is to use the pictures themselves, which are all using the same projection (unless otherwise noted), and are shown at the same scale. To compare two specific setups (HMD with lens-camera distance), load the two corresponding pictures into your favorite image editing software, and overlay them. For example, Figure 35 shows the FoV of Rift DK2 overlaid onto the FoV of Rift CV1, both at 10mm, close to their optimal lens-camera distances.

Figure 36 shows the binocular FoV of Oculus Rift CV1 at 10mm, and finally, Figure 37 shows the binocular fields of view of Oculus Rift DK2 and CV1, both at 10mm, overlaid onto each other. It can be seen that the horizontal FoV matches almost exactly, but the vertical FoV is different.