Sunday, August 9, 2015

The promise and perils of using Fresnel lenses

1: Cross section of  Fresnel lens
2. Cross section of equivlent conventional lens
Image source: Wikipeadia
The use of Fresnel lenses in optical systems VR goggles is not new, but has attracted additional attention in the past year. What are Fresnel lenses and what’s good and not-so-good about using them?

Fresnel lenses were invented nearly 200 years ago by Augistin-Jean Fresnel, a French physicist. The idea is ingeniously simple: the degree to which a lens bends a light ray that hits it depends on material (and hence the index of refraction) from which the lens is made and on the angle of incidence between the light and the surface of the lens. The problem that a Fresnel lens solves is as follows: a classic spherical lens can get very heavy (and expensive) if the curvature and radius is sufficiently large. Since the light bending is essentially determined by the angle at the surface of the lens, could we make a lens that has the same surface curvature at each point of incidence but is not as thick and heavy?

A Fresnel lens (lens 1 in the figure to the right) achieves this by segmenting the classical lens (lens 2) and bringing together small segments of the right curvature. Notice how pretty much each point of the Fresnel lens has the same curvature as the corresponding point in the classical lens.

The original use for which Mr. Fresnel invented the lens was lighthouses (the tall maritime tower, not the Valve tracking system). Focusing the light from the lighthouse into a beam required a very large lens, and using a Fresnel design, this lens could be much thinner, lighter and cheaper than a big chunk of glass. These lenses then also found use a rear window lenses for Minivans (for example, this one) or large lightweight magnifiers.

Weight, thickness and cost are also important in HMDs, and thus many vendors have experimented with such design. Sensics, for instance, has rights to a patent that uses Fresnel lenses in wide-field designs such as the piSight shown below.
This model of the Sensics piSight uses Fresnel lenses as part of the optical system
There are two problems with Fresnel lenses. The main problem is what happens when light hits the ridges, those peaks in the lens that do not correspond to actual curvature in the original lens. When light hits these points it is scatted, and scattered light in an optical system reduces contrast. Thus, you will often see that a Fresnel lens produces a more “milky” image with lower contrast. The second problem is a more technical one – it is more difficult to simulate a Fresnel lens in an optical design software.

Having said that, these systems can be designed and simulated. Here are three variations of 90+ degree optical systems that were designed by Sensics:

90+ degree design using two aspheres
90+ degree design, 1 Fresnel, 1 asphere
90+ degree design, two Fresnel lenses

The first design (two classical lenses) weighs about 16 g per eye. The third design weighs about 2 g per eye. 

As readers of this blog already heard many times, optical design is a study in tradeoffs. If weight is key, Fresnel may be a great option. If performance is most important, Fresnel lenses might not be the first choice.

For additional VR tutorials on this blog, click here
Expert interviews and tutorials can also be found on the Sensics Insight page here

Monday, August 3, 2015

Using OSVR Software in Professional-Grade Simulators

A few weeks ago, I met with representatives from a large multi-national defense contractor. They are looking for high-performance HMDs for a new simulator and wanted to explore some of the higher-end Sensics products.

After reviewing the HMDs, the conversation turned to software. As is often the case, this company uses a special-purpose engine (as opposed to a game engine like Unity or Unreal). The precise tracking hardware for their simulator is still in flux, and could also change between the development and deployment phase. The HMD hardware could also evolve over time.

How can they mitigate development costs in spite of the changing hardware? The easy answer: use OSVR software.

The OSVR software framework supports many HMDs and dozens and dozens of tracking systems and input devices. These are all presented to the application software under one common software interface. For software that works on top of OSVR, supporting a different hardware configuration is as simple as changing a couple of configuration files. No need to recompile the application. Integrating OSVR into a custom game engine is also fairly simple because OSVR:

  • Includes multiple language bindings
  • Supports asynchronous (callback) as well as synchronous (blocking) function calls
  • Provides open-source examples on how to integrate OSVR into other game engines such as Unity, Unreal, SteamVR and Monogame.
  • Makes it easy to define new devices if required
Because OSVR is built on top of VRPN, a de-facto industrial standard in controlling VR devices, it enjoys a very wide range of common as well as esoteric tracking systems. Being free and open source, you can't beat it's price.

We're hoping to deliver HMDs to this exciting simulator, but regardless of what HMD is chosen, I think OSVR software should be strongly considered as a device-independent framework for the simulator.