Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Half Title
Title Page
Copyright Page
Dedication
Contents
Acknowledgments
Author
Introduction
Prerequisites
Chapter 1: A Brief Introduction to the Virtual World
HOW LONG HAVE WE BEEN VIRTUAL?
BEFORE THE HEADSET
THE BIRTH OF THE HEAD-MOUNTED DISPLAY
THE ROAD TO CONSUMER VIRTUAL REALITY
HOME PC VR
CONSUMER VR REBIRTH
WHAT DOES NOT WORK ABOUT VR?
Latency
Juddering and Smearing
The Screen Door Effect
VR Sickness
What Sorts of Experiences Can We Expect?
Development Kit 1
Development Kit 2
Consumer VR: Rift CV1 and the HTC Vive
CAN I GO INSIDE THE COMPUTER, LIKE TRON? THE COMPLICATIONS AND CHALLENGES VR IS FACING
Motion Tracking and Motion Capture for Input
Haptic Feedback
Eye Tracking
Space and Movement
Making Content Inside VR
DESIGNING AND DEVELOPING FOR VIRTUAL REALITY
Plan: Any Sort of Plan Will Do
Get Your Main Interactions in Place Early
Test on Real People
Look for Combination and Flow
Realism Is Not Always the Most Realistic
RECAP
Chapter 2: Setting Up Your Hardware for the First Time
WHAT HARDWARE AND SOFTWARE ARE YOU GOING TO NEED?
HTC VIVE Recommended Specifications
OSVR HDK Recommended Specifications
Rift Recommended Specifications
Compatibility Tools
The SteamVR Performance Test Tool
The Rift Compatibility Tool
OSVR Compatibility
Dealing with Compatibility Tool Results
Graphics Cards
USB Ports
INSTALLING STEAMVR
Install the Steam Client
Set Up a Steam Account
Install SteamVR
GENERAL INSTALLATION HINTS AND TIPS (FOR ALL DEVICES)
Make Room for Your Motion Tracker(s)
Non Room-Scale VR with a Single Station/Motion Tracking Camera
Room-Scale VR/Multiple Positional Tracking Cameras
Organize Your Environment to Clear Some Space!
Walls: Try to Avoid Them
What Is Interpupillary Distance and Why Should I Care?
Real IPD
Virtual IPD
INSTALLING YOUR VR HARDWARE
HTC Vive Installation Instructions
Potential Issues/Fixes
OSVR HDK Installation Instructions
Potential Issues/Fixes
Rift Installation
SETTING UP STEAMVR
Party! SteamVR Is Set Up!
FINDING YOUR VR LEGS
SOME COMFORTABLE VR EXPERIENCE RECOMMENDATIONS
HTC Vive
OSVR
Rift
STAYING AWARE FOR A HEALTHY VR EXPERIENCE
Knowing When to Stop (the Telltale Signs of Oncoming VR Sickness)
Dry Eyes
Sweating
Aching
Nausea
Headache
Take Breaks
Eat, Drink, and Be Virtually Merry!
Do Not Break Your Back Making VR Things! Test Carefully
RECAP
Chapter 3: Setting Up a Unity Project for SteamVR
DOWNLOAD UNITY AND MAKE A NEW PROJECT
UNITY EDITOR CRASH COURSE
Editor Views and Panels
Terminology and Common Use Things
CREATING A NEW UNITY PROJECT
DOWNLOADING STEAMVR LIBRARIES FOR UNITY
A ROOM WITH A (VR) VIEW
Make a New Scene in Unity
Copy in the Models from the Example Files
Add a New GameObject
Add the Garden Model to the Scene
Add the House Model
Setting Up the VR Camera Rig
Digging into the SteamVR Camera Rig
Test the Scene
VR Environment Scale
Scale the Garden Model
STEAMVR CAMERA POSITIONING AND REPOSITIONING
SAVE THE PROJECT AND KEEP BACKUPS!
RECAP
Chapter 4: Adding Interaction
ADD THE INTERACTION FRAMEWORK TO YOUR PROJECT
ADDING A RETICLE FOR AIMING
Adding a UI Canvas
Making a Canvas Suitable for VR
ADD VREYERAYCASTER AND RETICLE COMPONENTS TO THE CAMERA
Setting Up Inspector References
Stop the Reticle from Clipping
ADD A DOOR TO THE SCENE
MAKE THE DOOR INTERACTIVE
Create a Door Controller Script
Script Breakdown
ADD A BOX COLLIDER FOR THE DOOR HANDLE
SET UP REFERENCES ON THE DOORCONTROLLER COMPONENT
SAVE YOUR WORK!
RECAP
Chapter 5: Building User Interface for Headset and Game Controller
MAKING A MAIN MENU SCENE
Open the Example Project
Create a Canvas for the User Interface to Be Drawn On
Add a UI Movement Component to the Canvas
Building a Button
Add a UI Slider to Show Button Progress
Change Slider Background Color
Change Fill Color
Resize the Slider
Resize the Background Image
PROGRAMMING A C# BUTTON SCRIPT
Script Breakdown
ADD A REFERENCE FOR THE VR_BUTTON COMPONENT TO USE
ADD A TEXT LABEL TO THE BUTTON TO SHOW WHAT IT DOES
TEST THE BUTTON
ADD A SECOND BUTTON TO THE MENU SCENE
Duplicate the Button
Change the Text Label
ADD BEHAVIORS TO THE BUTTONS
Add a Main Menu Controller GameObject to the Scene
Making a Main Menu Script
Script Breakdown
Add Event Functions to the Menu Buttons
ADD SCENES TO BUILD SETTINGS
TEST THE MENU
SAVE YOUR WORK!
VR User Interface Design Tips
RECAP
Chapter 6: Moving around the Virtual World with the SteamVR Teleportation System
SETTING UP THE SCENE FOR TELEPORTATION
Create Colliders for Teleport Ground Position Detection
Setting Up Layers
Set Up the Camera Rig and Add Components
WRITING A C# SCRIPT TO PROVIDE INPUT TO THE TELEPORTER
Script Breakdown
MODIFY THE STEAMVR TELEPORTER CODE
Change DoClick() into a Public Function
Modify SteamVR Teleporter to Use a LayerMask
SET UP THE COMPONENTS ON THE CAMERA GAMEOBJECT
Set Up ControllerTeleportInputProvider
OPTIONAL EXTRAS
RECAP
Chapter 7: Using the Headset for Aiming in a Game
ATTACHING A PROJECTILE FIRING SYSTEM TO THE CAMERA
ADD A SCRIPT TO THE CAMERA TO GRAB PLAYER INPUT
Programming a SprayInputProvider.cs script
Script Breakdown
ADD A SCRIPT TO THE SPRAY CAN TO MAKE IT FIRE
Programming the SprayShooter.cs Script
Script Breakdown
SET UP COMPONENTS IN THE INSPECTOR
TRY OUT THE GAME
RECAP
Chapter 8: Making the Most of Virtual Reality with Audio
THE VIRTUAL REALITY SPACE AND BEYOND
COMMON TERMS
Ambient Sound
Listener
Binaural Audio
Mono Sound
3D Sound
Doppler Effect
Set the Scene with Ambient Sound
THE AUDIO SOURCE COMPONENT
ADD AMBIENT AUDIO TO THE SCENE
Bringing Life to the World with Audio
ADD SOUND TO THE INSECTS
Add the Audio Source Component to the Insect
ADD SOUND TO THE SPRAY
Add Music
ADD AN AUDIO SOURCE TO THE CAMERA
Whimsical and Fun
Fast Paced and Exciting
Unity Audio Mixers and Effects
CREATE AN AUDIO MIXER
The Audio Mixer Window
Mixers
Snapshots
Groups
Views
Setting Up Mixers in the Audio Mixer Window
ADDING MIXER GROUPS
SETTING AUDIO SOURCES TO USE THE AUDIO MIXER GROUPS
TESTING AND MIXING AUDIO
Audio Ducking
Send and Receive
Audio Ducking Settings
Other Effects
SAVE THE PROJECT
RECAP
Chapter 9: HTC Vive Motion Controllers
HOW WE INTERACT WITH THE VIRTUAL WORLD
HTC VIVE CONTROLLERS
Try Out the SteamVR Interaction System Example Scene
Tips for Designing Room-Scale VR Controls
PICKING UP AND DROPPING IN VR WITH THE VIVE CONTROLLERS
Adding Vive Controllers to a Unity Scene
The PickUp.cs Script
Script Breakdown
Adding Haptic Feedback
Modifying the PickUp Class to Include Feedback
USING THE STEAMVR INTERACTION SYSTEM FOR USER INTERFACE
Create a New Project and Import SteamVR
Create a New Scene and Add a Player Prefab
Make a Simple UI Canvas and Button to Try Out
Try It Out in VR
USING VIVE CONTROLLERS FOR TELEPORTING AROUND THE VIRTUAL WORLD
Create a New Project and Import SteamVR
Create a New Scene and Add a Player Prefab
Beam Yourself Up!
RECAP
Chapter 10: Using Hands for Input Systems
LEAP MOTION VR
The Leap Motion VR Mount Kit
Downloading Leap Motion Orion Drivers and Software
Connect the Headset and Try Out the Visualizer
Download Leap Motion Unity Packages
Setting Up the Unity Project for Interaction Engine and Leap Motion
Hands-On in the Virtual World
Programming to React to Piano Key Presses
Script Breakdown
Potential Issues
NOITOM PERCEPTION NEURON MOCAP
Installation and Downloads
Install Axis Neuron
Set Up the Motion Capture Suit
Play with the Example Project
Set Up a Unity Project
Using a Full Body Perception Neuron Motion Capture Suit
Potential Issues
Error in Unity
View Obscured by Robot Head
RECAP
Chapter 11: Handling the Camera Rig for Seated or Static VR Experiences
DRIVING A SIMPLE VEHICLE IN VR
Open the Example Project
Setting Sitting or Standing Calibration in Code
Script Breakdown
Parenting the Camera to the Vehicle
WHAT IS THIRD PERSON AND IS VIRTUAL REALITY REALLY THE RIGHT PLACE FOR THIRD-PERSON VIEWS?
EXTERNAL CAMERA FOR FOLLOWING THE VEHICLE
Open the Example Project
Set Up the Camera Rig
Add a Camera Script
Save
Preview the Scene
RECAP
Chapter 12: Virtual Reality Sickness
WHAT IS VIRTUAL REALITY SICKNESS?
Personal Experience
VR Sickness Symptoms and Cues
Vection
Field of View
Inter-Pupillary Distance
Illness
Motion
Age
Frame Rate
Depth Perception
Rate of Linear or Rotational Acceleration
Positional Tracking Errors
Sitting versus Standing
CAN WE SOLVE IT?
RECAP
Chapter 13: Hands-on, Practical Techniques for Reducing VR Sickness in Unity
USING A UI OVERLAY FOR FIELD OF VIEW REDUCTION
Open the Example Project
The FOV Mask
Programming the Dynamic Scaling Script
Script Breakdown
Try Out the Example
A THIRD-PERSON CAMERA SUITABLE FOR VR
Open and Try Out the Example File
Programming
Script Breakdown
The Third-Person VR Camera Rig
A FAKE NOSE? HOW DOES IT SMELL?!
RECAP
Chapter 14: Polish and Optimization
CUSTOMIZING THE STEAMVR COMPOSITOR
Create a SteamVR Skybox for the Compositor
OPTIMIZING FOR VR
The Rendering Statistics Windows (Stats)
The Performance Profiler
Profiler Modes
What Do the Squiggles Tell You?
Profiler Types
Example Usage
Batching
Occlusion
Try Occlusion Out with the Example Unity Project
The Occlusion Panel
Adding Occlusion Areas
Bake the Occlusion Cells
Quick Code Tips
Prioritize Where in the Update Cycles Your Code Runs
Geometry and Modeling
Materials
Level-of-Detail (LOD)
RECAP
Chapter 15: Further Possibilities and a Final Word
THE FUTURE
Wireless Headsets
Backpack Laptops
Warehouse-Scale Experiences
Eye Tracking
Light Field VR
SparseLightVR
Khronos VR
FINAL WORD
References
Index
← Prev
Back
Next →
← Prev
Back
Next →