What is my Field of View?
A downloadable utility for Windows
App description
With this application you can measure your effective field of view in any SteamVR compatible VR headset.
Procedure
While locking your gaze at the center marker you move a flashing indicator outwards until you can no longer see it, confirming that point will save the value and move on to the next. The bars appearing in the middle shows which points have already been set. There is always a beam emanating from the center that points in the direction of the indicator.
When you have done this for all points it is possible to submit the results, if submission is successful it will open a visualization in your browser. There are further instructions on the page if you want to share or delete your entry.
Things that may affect your result
- Your physical facial structure
- The eye relief setting on the headset
- The IPD setting on the headset
- The headset's position on your face
- Use of a custom facial interface
- FoV limitation setting in HMD driver
- Not following instructions
Due to these factors the result will be specific for you at the moment of measurement. It can be compared to doing a network speed test to check your available internet bandwidth, it will vary over time and not always match specifications.
Settings
Brightness
If the environment feels too bright or too dark you can pick one of the other themes.
Floor grid
Some find the floor distracting in their periphery, it can be toggled on/off with [F5] to avoid this.
Reset
It is possible to reset your session values through the menu, this mostly means your current measurement. You can also reset the stored settings with, it will return the application to how it was at first launch.
Keyboard bindings
In menu
- [UP/DOWN] Moves the highlight up and down between menu options.
- [ENTER/SPACE/RETURN] Executes the highlighted menu option.
- [ESCAPE] Navigates back in the menu or closes it if in the main menu.
When measuring
- [UP/DOWN] Move indicator inwards or outwards, hold [SHIFT] for bigger steps.
- [DELETE/BACKSPACE] Delete previous point, steps backward.
- [ENTER/SPACE/RETURN] Registers current angle, steps forward.
- [ESCAPE] Opens the menu.
Log File
All results will be logged to a local file, next to the executable. It can be opened from within the application with [F10]. It includes the data that was or would have been sent to the server in JSON format. Here is a list of what they are.
- values: A comma-separated list of the values registered during the measurement process.
- model: The model of headset as reported by the Unity XR API.
- family: The platform for the headset as reported by the Unity XR API.
- ipd: The IPD calculated from the distance between the eye positions, in 10's of micrometers.
- zoom: The FoV zoom factor reported by the Unity XR API at 1000x. Not certain if this ever changes, but included in case it does as it is related to field of view.
Value order
The array of values was designed to work with multiple ranges of measurements, even if now only a default of 16 values is supported. This means the order can be enlarged if we want to expand to more points in the future. Currently the first four are the cardinal directions, the next four are the diagonals, and the last eight is every point in between. See the visualization below, it shows where each index in the array would appear on the circle.
0
8 | 15
4 | 7
9 | 14
1 -------- + -------- 3
10 | 13
5 | 6
11 | 12
2
Technical details
At each eye I place a sphere that is only visible to that eye. This is a high resolution UV sphere, exported straight from Blender3D, which means the surface of the sphere's UVs is mapped to a square grid. Displaying something half-way down the texture puts it exactly half-way down the sphere. I've validated this is the case inside the game engine as well.
On the inside of each sphere the flashing indicator and the other interface components are displayed, this is through a custom shader that among other parameters takes an angle as input which places the indicator so it extends from that angle and outwards. This way as soon as we cannot see the indicator anymore, we should have the maximum field of view for that point. The steps we move the indicator out are whole degrees, this means the final value will err between 0.0-1.0° in a single direction using this method.
Motivation
From a number of years of online discourse around VR headsets it has become clear that there has not been a straight forward way to get hard numbers for the field of view we experience in our headsets. With spec sheets most often only listing a single value for field of view with no way to verify this has been mildly frustrating, in addition most reporting on actual field of view has been anecdotal or just raw spec numbers.
This tool can hopefully be a remedy to this, an application that can accurately measure your effective field of view when wearing a VR headset. That is, how far into your periphery you can actually detect anything, with your specific configuration.
Long term goals
In contrast to the short term goal of letting users know what they get out of the hardware they own, it became apparent from feedback during user testing it would be a missed opportunity to not try and collect data that could help inform consumers. A single entry is pretty much pointless to anyone but the person who recorded it, but with enough data it would be possible to bring out statistics that would help demystifying what headsets actually deliver to end users.
For the sake of giving users control over their data any registration done towards the server can be deleted at will, this via the link that is launched upon successful submission, instructions are on the page. All data sent to the server is mentioned above in the section about the log file, that log file also includes the links mentioned here.
Feedback
This application was heavily dependent on user feedback when it comes to features, specifications and deployment. Any constructive feedback or bug reports are appreciated.
Leave a comment on this page, contact me on twitter or send me an email.
Download
Install instructions
Download the archive and extract the contents where you can find it, run WIMFOV.exe.
If you want it in your Steam library, you can add it as an non-Steam title from the bottom left [+ Add a Game] button, browse for the .exe file and add it, open properties by right clicking WIMFOV in your library and make sure "Include in VR Library" is checked.
Leave a comment
Log in with itch.io to leave a comment.