Visual Simulation of the Resolution of VR Headsets

While I was writing up my article on the PlayStation VR headset’s optical properties yesterday, and specifically when I made the example images for the sub-section about sub-pixel layout comparing RGB Stripe and PenTile RGBG displays, it occurred to me that I could use those images to create a rough and simple simulator to visually evaluate the differences between VR headsets that have different resolutions and sub-pixel layouts.

The basic idea is straightforward: Take a test image that has some pixel count, for example WxH=640×360 as the initial low-resolution full-RGB picture seen in Figure 1. If you then blow up that image to fill a monitor that has the same aspect ratio (16:9) and some diagonal size D, the resolution of that image in terms of pixels per degree depends both on D and the viewer’s distance from the monitor Y: the larger the ratio Y/D, the higher is the image’s resolution as seen by the viewer. In detail, the formula for distance Y to achieve a desired resolution R in pixels/° is:

Y = (D / sqrt(W*W + H*H))/(2*tan(1/(2*R)))

where W and H are in pixel units, R is in pixels/°, and D is in some arbitrary length unit (inch, meter, parsec,…). Y will end up being in the same unit as D.

If a viewer then positions one of their eyes at a distance of Y from the center of the monitor and closes the other one, the resolution of the image on the monitor will be R. In other words, if R is the known resolution of some VR headset, the image on the monitor will look the same resolution as that VR headset.

There is one caveat: when looking at a flat monitor, the resolution of the displayed image increases away from the monitor’s center, while in a VR headset, the resolution generally decreases away from the center direction (see this article for reference). Meaning, for a correct evaluation, the viewer has to focus on the area in the center of the monitor. Unfortunately there is no easy way to simulate resolution drop-off using a flat monitor, at least not while also simulating sub-pixel layout.

Simulation Procedure

Here’s what you need to do:

Step 1. Find out whether the VR headset you want to simulate has RGB sub-pixel layout (e.g., PlayStation VR and Valve Index), or PenTile RGBG layout (e.g., Oculus Rift CV1, HTC Vive, and HTC Vive Pro).

Step 2. Find the headset’s green-channel center resolution in pixels/°. That’s unfortunately a bit of a tall order, as those numbers are generally not publicly advertised. I have myself measured the following values: HTC Vive: 11.43 pixels/°, Oculus Rift CV1: 13.85 pixels/°, HTC Vive Pro: 15.70 pixels/°, PSVR: 10.50 pixels/°. I have not yet measured Valve Index, but I estimate its resolution to be close to 15 pixels/°.

Step 3. Measure the diagonal size of the monitor you want to use, in whatever measurement unit is convenient. Important: the monitor must have a 16:9 aspect ratio, like basically any HD TV.

Step 4. Enter the VR headset’s resolution and your monitor’s diagonal size into the following calculator, and press the “Viewing distance in same unit” button.

The resolution of the VR headset’s green channel in pixels/°:
The diagonal size of your monitor in some unit:

Step 5. Download the appropriate test image. If the headset has RGB layout, use the image from Figure 2. If the headset has PenTile RGBG layout, use the image from Figure 3. Open the image in a viewer, and show it in full-screen mode.

Step 6. Position yourself the calculated distance away from the center of your monitor, and close one eye.

Step 7. Enjoy!

Figure 1: A pretty test image at 640×360 pixels.

Figure 2: The same test image, blown up to 1920×1080 pixels by replacing each original pixel with a 3×3 block, and splitting that block into three (red, green, blue) sub-pixels in an RGB Stripe layout.

Figure 3: The same test image, blown up to 1920×1080 pixels by replacing each original pixel with a 3×3 block, and splitting that block into two sub-pixels as in a PenTile RGBG layout: one green one, and one double-sized red or blue one, depending on whether the pixel’s index is even or odd.

Leave a Reply

Your email address will not be published. Required fields are marked *