JamesHagerman / Threads

WebVR Lines Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Threads

Just moving stuff down so we can document some more...

three.js 3d library

<script src="js/three.min.js"></script>

VRControls.js acquires positional information from connected VR devices and applies the transformations to a three.js camera object.

<script src="js/VRControls.js"></script>

VREffect.js handles stereo camera setup and rendering.

<script src="js/VREffect.js"></script>

A polyfill for WebVR using the Device{Motion,Orientation}Event API.

<script src="js/webvr-polyfill.js"></script>

Helps enter and exit VR mode, provides best practices while in VR.

<script src="js/webvr-manager.js"></script>

Threads App itself:

<script src="js/threads.js"></script>

WebVR Boilerplate

A starting point for web-based VR experiences that work well in both Google Cardboard and Oculus Rift. Also provides a good fallback for experiencing the same content without requiring a VR device.

Uses the webvr-polyfill project to provide VR support even if no VR device is available. This gives good fallbacks for Cardboard, mobile devices and desktop devices.

What's inside...

THREE.js three.min.js

  • WebGL helper library that greatly simplifies 3D graphics.

VRControls VRControls.js

  • THREE.js controls which take advantage of the WebVR API.
  • Usually attached to the THREE.Camera to look around the scene.

VREffect VREffect.js

  • THREE.js effect which renders a scene with two cameras in it.
  • Puts the two images side-by-side.

WebVR polyfill webvr-polyfill.js

  • For Cardboard rendering.
  • On mobile, supports rotation via DeviceOrientation.
  • On desktop, supports looking with the mouse or with arrow keys.

WebVR manager webvr-manager.js (lives in this repository)

  • Feature detects for WebVR (or the polyfill).
  • If WebVR is available, places a generic button in the top right corner, which, when clicked, takes you to VR mode.
  • Other means of getting into VR mode: double click anywhere, double tap anywhere.
  • Sets good defaults for VR mode: full screen, orientation lock, wake lock.

Instructions

  1. Include webvr-polyfill.js in your project.
  2. Include webvr-manager.js and instantiate a WebVRManager object, passing in your VREffect instance (from the THREE.js effect library) as first argument.

For example,

var effect = new THREE.VREffect(renderer);
var mgr = new WebVRManager(effect);

For more information, see index.html, which should be well commented and self-explanatory.

Related projects

Useful resources

About

WebVR Lines Project

License:Apache License 2.0


Languages

Language:JavaScript 98.1%Language:HTML 1.0%Language:Shell 0.8%Language:CSS 0.2%