dragonkhoi / suvstar

1 stars 0 forks source link

SUVSTAR

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

SUVSTAR Headset

Description

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.

Dependencies

Using third-party libraries and software from:

Implementation

The basic principles are outlined here:

Scripts:

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.

IF YOU ARE TRYING TO RUN MONOSCOPIC PASS-THROUGH AR ON A SINGLE PHONE:

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.