Stereoscopic Untethered Video See-Through Augmented Reality
Stanford EE 267
Last updated: June 2019 by Khoi Le and Kyle Qian
Repo: https://github.com/dragonkhoi/suvstar/
Video: https://youtu.be/PGv5y24Hbx8
Report: https://github.com/dragonkhoi/suvstar/blob/master/report_le_qian.pdf
Stereoscopic Untethered Video See-Through Augmented Reality (SUVSTAR) was developed as the final project for EE267 - Virtual Reality at Stanford University with Dr. Gordon Wetzstein. It uses two separate ARCore-enabled devices for each eye to enable standalone outdoor, anchored augmented reality. It was created as a proof-of-concept to showcase use cases for AR HMDs of the future that users wear at all times, in any lighting, and without being tethered to a separate computation hub.
Using third-party libraries and software from:
TwoSamsung Galaxy S9 phones running Android 9.0 (Pie) (the code is hard-coded to run for this phone’s aspect ratios). If you would like to use other phones, please adjust the RenderTextures (CameraFeed and StereoScreen) resolutions to match those of your devices.
The basic principles are outlined here:
SUVSTARPostRender.cs
Modeled after the CardboardPostRender.cs from the Unity Stereo SDK provided by the EE267 teaching team, which is based off the old Cardboard SDK. Placed on an orthographic camera to take the RenderTexture of the view from the eye and display the barrel distorted version.
SUVSTARProfile.cs
Modeled after the CardboardProfile.cs from the Unity Stereo SDK provided by the EE267 teaching team. Placed on an object in the scene and shows device parameters necessary for distortion calculations.
SUVSTARImageController.cs
Modeled after the AugmentedImageController.cs in the Google ARCore Augmented Images sample scene. Placed on an object in the scene and manages tracked image life cycles, recognition, and tracking.
RaycastUI.cs
Script attached to the First Person Camera (the main AR camera) to trigger the expansion of the HUD when gazed at.
In SUVSTARPostRender, check the bool box that says "TwoEyesSingleDevice" to set it to true. This will increase the eyeCount to 2, set the right eye camera to active, and deactivate the canvas UI.