The use cases of virtual reality (VR) expand each day. It never fails to amaze me how powerful and versatile the medium is. Woman using Virtual Reality headset

What are the skills needed to learn virtual reality and what are the resources to learn virtual reality?

In my opinion, there are 4 specialisation of VR content professional.

VR native app development

Why
You can create VR apps or games that will increase the productivity, simulate VR environment to help people learn faster or entertain people. The software that you created will be install in Mac, PC, Play Station or Google cardboard (android or ios).

This will be the one of the first frontier of VR. You will need to figure out UI/UX of VR and how to engage the user in a meaningful way that fully utilise the power of VR.

How to master
You will need to master a 3D engine. Unity is a good starting point, the programming language that it uses is C# or javascript.

If you are new to programming languages. I would recommend you to learn javascript with this resources. sethvincent/javascripting. If you are stuck, read this book. Eloquent JavaScript.

This is a good tutorial to make you more familiar with unity.
Roll-a-ball tutorial
After you are done with it. You can build the VR version of it.
Developer Center – Documentation and SDKs

In my opinion, the only way to learn unity is create a simple game (I would suggest a VR pacman) with it, then keep google search for the things that you want to achieve. ie. I want to add gravity to the 3d object that I just added. Then show your demo in your local VR community, if there is none, just create one, crowd learning!

So, the tutorial above is about VR output or VR HMD. If you are interested work on VR input to create the UI/UX to change the VR environment. Leap Motion is a good option before Oculus touch or HTC Vive came out. This is the resources to do so. VR Setup | Leap Motion Developers

After you get all pumped up with VR. Choose a weekend, make a hot chocolate and start to read a book about the math behind game development. This is a book that I would recommend.

Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide, Second Edition: 9780123742971: Computer Science Books @ Amazon.com

If you happen to have HTC Vive and want to develop on it.

You can use a few open source library for it.
Focal Point VR
NewtonVR: Physics-based interaction on the Vive (Part 2 + Github)

HTC Vive don’t have a good documentation. But try to read the SteamVR/extra/SteamVR_teleporter to understand how to use delegate to trigger event.
in Asset Store

I am writting an open source HTC Vive Menu framework. Stay tuned.

Cinematic VR creation

Why
Cinematic VR will be the frontier of VR. The idea is to use special cameras to record the 360 degree view from a point.

watch it with a google cardboard.

I can see the use cases such as VR journalism, VR films (horror film), VR documentary, VR tutorial, VR property viewing.

How to master
You will need a VR video rig. There are multiple way to create it. I will link you to this google search page because I think this will change frequently.
VR video Rig

because I think light field camera will be a game changer.

360Heros is a good option, one of my friend setup this rig and it works perfectly.

Normally if you are doing a normal video to share with your friends, a raw VR video is just enough. But if you want to create a short film or movie, you will need to edit the video. A normal video editor won’t cut it. You will need a Cinematic VR Video Editor.

By mastering the cinematic VR video editor, I am sure that your company will be the go to company for Cinematic VR locally.

Photogrammetry

Why

360 video can capture the reality in one or a few points of view. You can’t move around or have 100% control of the reality that you captured. With photogrammetry, you can capture the reality in three dimension. With that, you can move around the three dimension reality that you captured and even alter or add 3d models that you created on it.

This is how it looks like in action. SteamVR destination.

You will feel like you are in mars.

Sure, you can capture a stereo 360 video. But, a real landscape that you can move around and add interactivity to it is more powerful for education and simulation.

How to Master

This is the best article I can find about it.

The general principle behind photogrammetry involves having at least two photographs from different angles of every point you want three-dimensional information for – it will identify visual similarities and, using maths, figure out where these similar points are located in space. This does mean it is limited to static scenes containing opaque, non-specular surfaces – as mentioned, it’s not magic.

Group Announcements :: SteamVR

Destinations/Creating a Destination

VR web development

Why
There is no doubt that the first wave of VR will be Cinematic VR and Native VR apps and games. But it will go to the web eventually. Recently with the implementation of WebVR in chrome and mozilla pre-release, we can anticipate 3D version of world wide web coming soon, Metaverse.

With the user demand that created by native VR games/apps and VR video, they will expect web developer to create the website in VR too.

At first, the VR web experience will be you browsing a website like facebook or youtube. It will be a video like content that people will click to expand to VR mode. Different than Cinematic VR, the user can move around in this VR environment to do VR shopping, VR meetup, VR dancing, VR Kungfu learning.

You will need to click the full screen button on the middle to go VR mode. But you get the idea, browse in 2D, click to go to VR.

I can imagine the future browser will allow user to go to a different VR website by controlling your VR watch that you wear in your virtual hand. A holographic UI panel will display for you to type in which VR website you want to go to.

How to master

First you will need to learn threejs. Try to create a simple cube and change the color to green. This will give you a sense of what threejs is about.
Follow the instruction from here. mrdoob/three.js

Then follow the instruction from here to setup a simple VR website.
borismus/webvr-boilerplate

remember to use Chromium or Mozilla nightly to test your VR website. Follow the instruction here. Bringing Virtual Reality to the Web

Then try to add 3d models to your scene to get a sense of creating a dynamic VR website. Click the view source of this example to learn how to load a 3d model to your VR website. After this, try to change the position and rotation of the 3d model. It will give you a good sense of what threejs is about. three.js / examples

If you wanted to add Physics system to it, you can follow the instruction from here. https://github.com/schteppe/cannon.js/wiki/Hello-Cannon.js!

Since you are reading until this paragraph already, allow me to promote the open source markup language that I created.

If you trying to create a simple VR environment, you can use Aframe

A-Frame

And join this WebVR slack group to join the WebVR community.
Join the WebVR × Slack community on Slack!