Introduction Into Virtual Reality


Virtual Reality (VR) has been around for a while, but it is not until recently did it take off. Many are unaware of the technology until it has gone more mainstream. Maybe you want to get into VR development, experience VR, or both.

With VR, there is new terminologies and tech that you might not know about. When I first dealt with VR development, I did not know much. Therefore, my goal for this post is to go over some terminologies and technologies to help ease you into VR.


Terminologies

Here are some terminologies you should become familiar with to understand VR better.

 

VR Ready

When getting into high-end VR, one of the first thing you come across is that, you need a “VR ready computer.” What exactly does that mean? It means that your computer must be able to run VR at 90 FPS (frames per seconds) or higher. Having a minimum of 90 FPS is necessary to prevent virtual sickness (more details in a later section).

The minimum requirement to run high-end VR provided by NVidia

 

Virtual Sickness

Virtual sickness or motion sickness is when there is a disagreement between what you see and what your body is experiencing. For example, when you travel in a car, you perceive yourself as moving, but your body is stationary. Specifically for VR, there are different factors that can create conflicts between what you see, hear, and do. Be wary of fast-paced VR experiences because they are more likely to cause virtual sickness.

If virtual sickness is a concern for you or someone you know, I have several posts about motion sickness in VR and how to prevent it from happening.

 

Six Degrees of Freedom

Six degrees of freedom (6DoF) refers to the freedom of movement of a rigid body in three-dimensional space. For VR this means that your movements are fully tracked and is reflected in the VR world.

Three-dimensional space involves three axes commonly address as x, y, and z. Each axis can have its own rotation, which means in total there are six degrees of freedom. Rotation along the x-axis is called pitch. Rotation along the y-axis is called yaw. Rotation along the z-axis is called roll.

 

Head-Mounted Display

Photo credit: pestoverde via Visual hunt / CC BY

Head-Mounted Display (HMD) is the headset that you wear to put yourself into the VR world. An HMD often consists of two screens (one per eye), a way to adjust the distance between the lenses from each other, and another adjuster for how close the lenses are to your eyes. Proper adjustments of the lenses will dramatically improve clarity and improve your VR experiences.

 

Interpupillary Distance

The interpupillary distance (IPD) is the distance between the centers of your eyes’ pupil. It is different for everyone and proper adjustment on the HMD is important. When the IPD is properly calibrated for your eyes, it makes what you see clear and reduces eyestrain. In addition, proper IPD is important for preventing virtual sickness.

 

Motion Controller

Photo credit: ETC-USC via Visual Hunt / CC BY

Motion controllers are uniquely designed for VR usage. It is equipped with sensors to track position and movements. Motion controllers are often designed with ergonomics in mind so they would add to the VR experience.

 

Room Scale

htc vive roomscale play area

Room scale VR play area

Room scale VR is when a VR experience takes advantage of having the user move around in physical space (the play area). For example, in VR, there is a table and there is something hiding underneath the tabletop. The only way to see it is for you to approach the table, then crouch down, and look. Physical space limitation is an issue, but when properly executed, room scale VR adds to the immersive factor.

 

Positional Tracking

Positional tracking is the tracking of your movements while you are in VR. The common set up is the movement and rotation of your head and motion controllers being tracked. It is possible to bring in more tracked objects since some first parties (HTC) are starting to provide tracking accessories.

 

Inside-Out Tracking

Inside-Out tracking is a method of tracking where the sensors are directly attached to the HMD for spatial awareness. This type of tracking is more common with augmented reality (AR) headsets than VR headsets.

 

Outside-In Tracking

Outside-In tracking is a method for positional tracking where the sensors are external (separate from the HMD). This form of tracking is common for VR headsets.

 

VR Development

There are many new challenges to developing for VR. Some of the things you want to keep in mind are the following:

 

What to Use for VR DevelopmentĀ 

Game engines are the most common way to develop VR experiences. The two most common ones are Unity and Unreal Engine (UE). Try both engines out, see which one you like better, and go with that one. Both engines have a large and active community, so there is always resources to help you along the way. I have a post about starting VR development with Unreal Engine 4 if you want to learn more about Unreal Engine.

 

Optimizing for VR

The best way to make sure your VR experience meets the required specs for VR is to keep track of performance at the start. Every time you make a change or add something, test for performance. The last thing you want is to remove an important aspect to your VR experience to meet the requirements. In addition, optimizing your VR experience is necessary to ensure the best experience for your users. I have a post about some ways to optimize your VR experience with UE4 and tips to prevent virtual sickness that can help you out.

 

Consider Locomotion

Locomotion is important because it ensures a smooth VR experience. A bad locomotion system can easily lead to virtual sickness. A good locomotion system feels natural and adds to the overall VR experience. I have a post about some of the current locomotion systems that are employed in VR to help you get started.

 

Interactions in VR

Interactions in VR is different from interactions in a regular video game. You are not using a gamepad and using only button inputs to interact with the VR environment. You need to take into account of the movements of the user’s hand. For example, the VR environment should be responsive to the touch from the user. I have a post about doing responsive interaction in VR with UE4 that you can check out.


I hope you found this post helpful. If you found this post helpful, share it with others so they can benefit too.

Are there other terms that you think I should add? Did you find the clarification of some of the termsĀ in this post useful? If you are a VR developer, did you find the post helpful in pointing out some of the considerations for development?

Feel free to leave a comment, send me a tweet, or send me an email at steven@brightdevelopers.com. To stay in touch, you can follow me on Twitter.


About Steven To

Steven To is a software developer that specializes in mobile development with a background in computer engineering. Beyond his passion for software development, he also has an interest in Virtual Reality, Augmented Reality, Artificial Intelligence, Personal Development, and Personal Finance. If he is not writing software, then he is out learning something new.