Week 1 we showed off
a bunch of different sample VR / AR worlds, so this week we are going to
talk about how to build them, in particular with respect to Project 1.
but first lets
talk about the Course Syllabus and Project 1 in some more detail
For the first two
projects in the class we will be using Unity3D so people can share
experiences and issues. For the thirdproject people will be (reasonably)
free to choose your own engine and display platform.
Unity3D runs on
windows and OS-X so you can do much of your development on a laptop and
then move over to a machine connected to a VR / AR display for testing.
I highly suggest that you test on the actual hardware regularly
so you don't go too far down a development path that wont work for the
final deployment. In the lab, there is one VIVE in the main lab, and one
in the classroom, both connected to Windows PCs.
You should stick with
Unity version 2018.1.3 for now so you are compatible across various
platforms. You should start with the Personal Unity Installer, and have
it install Unity, the Documentation, Standard Assets, Vuforia
Augmented Reality, and
Windows Mono Scripting Backend, as we will be presenting and
grading all of the projects on a windows PC in the lab. If you are on a
non-windows machine and forget to install the Windows
Mono Scripting Backend, you can come back and install
it later from the same Install Utility. Be prepared to lose 4-5
gigabytes of disc space. You can have multiple versions of Unity
installed at the same time in different directories in case you need to
have different versions running for different classes or projects.
With Unity you will
be using a combination of an IDE and writing C# code, so its a good idea
to go through the introductory tutorials if you haven't used Unity
before (say in the Video Game course).
The tutorials at https://unity3d.com/learn
are a good place to start learning the Unity3D IDE.
This tutorial is a
pretty good one for getting started with Unity and the VIVE - https://www.raywenderlich.com/149239/htc-vive-tutorial-unity
showing grabbing and tossing objects, pointing, and teleportation. Its particularly good if you have access to a headset and can go through the tutorial bit by bit adding new features as you go. Since this tutorial was written with an earlier version of the SteamVR libraries you will probably be asked to re-import those libraries when you try and open the project. You may need to first delete the current SteamVR asset folder and then re-import it, but then it should work fine with the latest SteamVR. Many of these features are already integrated into the sample Project 2 code (later pointer, teleporting, basic physics) and here you can see how they were implemented.
We are also now
starting to see browser-based VR solutions such as A-Frame and WebVR- https://mozvr.com/
so this or the Unreal engine may be things to consider for Project
For AR applications
we will be using Vuforia under windows. There are various packages
available right now with Google's ARCore https://developers.google.com/ar/
and Apple's ARKit https://developer.apple.com/arkit/
and the venerable ARToolkit https://www.artoolkit.org/
a commonly used
cross platform open source library is the ARToolkit - https://www.artoolkit.org/
which includes a Unity package, but its recommended that you download
the latest files from Git https://github.com/artoolkit/arunity5
as the web page links haven't been updated in a while. There is a nice
description at https://archive.artoolkit.org/documentation/doku.php?id=6_Unity:unity_getting_started
Along with the main engine there are a variety of tools that can be used to create models, sounds, textures, etc. Here you are free to use the tools of your choice. The following are pretty decent free ones.
There are also various websites that
provide Open Source / Royalty Free resources, just be sure to cite the
a nice page on importing google
SketchUp into unity3d
One important thing
to keep in mind with VR is that, unlike other media, the size of the
screen does not affect the size of the objects in the world. If you are
watching a movie then Humphrey Bogart or Lego Batman may vary from
an inch tall to 100 feet tall depending on the display you are watching
it on. In VR the display is a window into the virtual world, and
changing the size of the window just gives you a bigger or smaller
window, it doesn't change the size of the things the window looks out
on. Scale is absolute in VR, so at some point the environment you create
ends up being scaled in units of feet or meters for people to move
around in. Similarly there are various image based tricks that can be
used in 2D or even 3D movies, that don't work in VR where the space is
In this course you will be doing a lot of work with Unity and the content generation tools so make sure you have access to a decent computer that can run these pieces of software.
History of VR and AR