Lesson 12: Virtual Reality through time
Where did VR come from?
Sir Charles Wheatstone was the first to describe stereopsis (binocular vision, a research which led him to construct the stereoscope). This technology enabled Wheatstone to create the earliest type of stereoscope. It used a pair of mirrors at 45 degree angles to the user's eyes, each reflecting a picture located off to the side.
In 1935 American science fiction writer Stanley Weinbaum presented a fictional model for VR in his short story Pygmalion's Spectacles. In the story, a professor invented a pair of goggles which enabled "a movie that gives one sight and sound [...] taste, smell, and touch. [...] You are in the story.
Fun Fact: Some consider Pygmalion's Spectacles to be the origin of the virtual reality (VR) concept as this story was a good prediction of the aims and achievements of the future.
Cinematographer Morton Heilig created Sensorama, the first VR machine It was a large booth that could fit up to 4 people. It combined multiple technologies to stimulate all of the senses: there was a combined full colour 3D video, audio, vibrations, smell and atmospheric effects, such as wind.
Heilig also patented the Telesphere Mask which was the first head-mounted display (HMD). This provided stereoscopic 3D images with wide vision and stereo sound. There was no motion tracking in the headset at this point.
Headsight was the first motion tracking HMD. It had built-in video screens for each eye and a head-tracking system. However, it wasn't used for VR it was developed for the military to allow them to remotely look at hazardous situations.
Thomas Furness, a military engineer, created the first flight simulator for the Air Force. This assisted in the progression of VR because the military subsequently provided a lot of funding for producing better flight simulators.
The first virtual reality HMD. This head-mount connected to a computer and it could only show simple virtual wire-frame shapes. The 3D models changed perspective when the user moved their head due to the tracking system.
Krueger's VIDEOPLACE, the first interactive VR platform. It used computer graphics, projectors, video cameras, video displays and position-sensing technology and it didn't use goggles or gloves. VIDEOPLACE consisted of dark rooms with large video screens to surround the user in "VR".
Aspen Movie Map was created by MIT. Users could wander through Aspen in Colorado, like with Google Street View. There were 3 modes: summer, winter and polygons.It was created using photographs and it suggested that VR could transport people to other places.
McDonnell-Douglas Corporation integrated VR into its HMD, the VITAL helmet, for military use. A head tracker in the HMD followed the pilot's eye movements to match computer-generated images.
Sayre gloves were the first wired gloves. They monitored movements by using light emitters & photocells in the gloves' fingers. When the user moved their fingers the amount of light hitting the photocell varied and was converted the finger movements into electrical signals.
Jaron Lanier and Thomas Zimmerman founded VPL Research, Inc. This company is known as the first company to sell VR goggles and gloves. They developed a range of VR equipment.
Furness flight simulator (1986-1989), the Super Cockpit. This featured: computer -generated 3D maps, advanced infrared and radar imagery and the pilot could see and hear in real-time. The helmet's tracking system and sensors allowed the pilot to control the aircraft using gestures, speech and eye movements.
Scott Foster founded Crystal River Engineering Inc after receiving a contract from NASA to develop the audio element of the Virtual Environment Workstation Project (VIEW) - a VR training simulator for astronauts. Through this company real-time binaural 3D audio processing was developed.
VR arcade machines were developed where gamers could play in a 3D gaming world. This was the first mass-produced VR entertainment system. SEGA started to develop a VR headset - never released - SEGA thought it may cause harm as the experience was seen to be too realistic!
First game VR game console released by Nintendo (unsuccessfully as it was monochromatic and uncomfortable to use). First home VR headsets released.
Georgia Tech and Emory University researchers used VR to create war zone scenarios for veterans receiving exposure therapy for PTSD. This was known-as Virtual Vietnam.
Google introduced Street View - which was developed into a stereoscopic 3D mode. Luckey created the first prototype of the Oculus Rift headset. It featured a 90-degree field of vision (never been seen before), and relied on a computer's processing power to deliver the images.
Google released the Cardboard - a low-cost and do-it-yourself stereoscopic viewer for smartphones. Samsung announced the Samsung Gear VR, a headset that uses a Samsung Galaxy smartphone as a viewer.
By 2016 hundreds of companies were developing VR products: headsets, immersive experiences, button controllers. Most of the headsets had dynamic binaural audio. HTC VIVE STEAM VR headset with sensor-based tracking which allowed users to move freely in a space.
Oculus demonstrated a new headset prototype, the Half Dome. This is a varifocal headset with a 140 degrees field of vision. VR is being used in a variety of ways, from providing immersive gaming experiences, to helping medical disorders, to teaching new skills.
Shift from tethered to standalone VR headsets. These do not need computers or phones to work.
Mixed Reality systems and sophisticated technologies are now part of standalone VR headsets. Software is now mainstream, cheaper to buy and readily available.
Magic Leap One released. Light with headset. Mix of AR and reality.
Watch the video below and think about:
Converting Data Types
Lets recap that 4 main data types that we use while programming:
-
Booleans are used when we need to store or use a true or false response.
-
Integers are used to store whole numbers, best suited for counting.
-
Floats are used to store decimal numbers, best used when accurate values are needed.
-
Strings are used to represent text such as words or sentences.
“Convert - to (cause something or someone to) change in form or character.” - Cambridge Dictionary
To convert a data type is to change it from one data type to another. However we can only do this for data that is similar. Examples could be:
-
Changing the
integer 10into thefloat 10.0f -
Converting the
string "true"into aboolean true
Why do we need to convert data?
Computer programs are very literal with how they operate. If you use a method or function that requires an integer, then you must provide it with an integer.
Why can’t we use any similar type of data instead?
Even though the integer 10 and the float 10.0f represent the same number. The amount of bits (size) the data types take up are different. This prevents functions from working correctly.
How to convert from one data type to another - Parse()?
As humans, we understand that 10 and 10.0f are the same. So how do we convert between the two for a computer? The first style is to use Parse() and TryParse().
To use this method, we must provide the method with a string. This makes it great for converting input from the console into data.
Note: This wording is specific to C#. The process of converting data types is shared across languages but may be named differently.
How to convert from one data type to another - TryParse()
TryParse() is a little more complicated. Instead of forcing the conversion to happen (which can sometimes cause bugs), TryParse() instead tries to do the conversion.
This method actually returns true or false depending if it can complete the conversion. This makes it
great for IF statements as you can tell if it’s worked or not.
Note: This wording is specific to C#. The process of converting data types is shared across languages but may be named differently.
In this task you will be debugging already created code and correcting any bugs you find. All the bugs are related to data types