Update cookies preferences

Building Virtual Reality with Unity and Steam VR [Hardback]

  • Format: Hardback, 296 pages, height x width: 235x156 mm, weight: 658 g
  • Pub. Date: 07-Jun-2017
  • Publisher: Routledge
  • ISBN-10: 1138051241
  • ISBN-13: 9781138051249
  • Hardback
  • Price: 178,75 €*
  • * This title is out of print. Used copies may be available, but delivery only inside Baltic States
  • This title is out of print. Used copies may be available, but delivery only inside Baltic States.
  • Quantity:
  • Add to basket
  • Add to Wishlist
  • Format: Hardback, 296 pages, height x width: 235x156 mm, weight: 658 g
  • Pub. Date: 07-Jun-2017
  • Publisher: Routledge
  • ISBN-10: 1138051241
  • ISBN-13: 9781138051249
The golden age of virtual reality is here; take the first step into V.R. programming and development with Jeff W. MurrayBuilding Virtual Reality with Unity and SteamVR. Murray explores some of the topical issues surrounding virtual reality; including V.R. sickness, telepresence, performance issues and practical ways to diminish these detrimental effects to make a more comprehensive experience. Building Virtual Reality also grants readers a hands-on approach with the Unity game engine and programming. The example projects and sample C# code found in the text are compatible with all SteamVR supported virtual reality head mounted displays that are currently available. This text is the essential survival guide to VR and VR development for any reader.









Author Bio:



Jeff W. Murray has written two books: Game Development for iOS with Unity3D, C# Game Programming Cookbook for Unity3D, both published by CRC Press. In his game development career spanning over 14 years, he has worked with some of the world Murray









Key features:















Discusses some of the key issues facing virtual reality and provides helpful tips for making better V.R. experiences.













Develop V.R. applications with practical examples geared to work with both the Oculus Rift and HTC Vive, as well as open source virtual reality (OSVR) headsets like the HDK.













Find out how to build both standing and seated experiences.













Tips on optimizing performance with the Unity Profilers.













Explore examples specifically for HTC Vive Controllers and picking up and throwing physics objects, including haptic feedback.













Discover how to build user interfaces for virtual reality, as well as discussing some best practices for V.R. based user interface design.













Written by a games industry veteran who has been a V.R. developer since the first Oculus development kit.
Acknowledgments xix
Author xxi
Introduction xxiii
Prerequisites xxv
Chapter 1 A Brief Introduction to the Virtual World 1(22)
How Long Have We Been Virtual?
1(1)
Before The Headset
2(1)
The Birth Of The Head-Mounted Display
3(2)
The Road To Consumer Virtual Reality
5(1)
Home PC VR
6(1)
Consumer VR Rebirth
6(2)
What Does Not Work About VR?
8(5)
Latency
8(1)
Juddering and Smearing
8(1)
The Screen Door Effect
9(1)
VR Sickness
10(1)
What Sorts of Experiences Can We Expect?
10(3)
Development Kit 1
10(2)
Development Kit 2
12(1)
Consumer VR: Rift CV1 and the HTC Vive
13(1)
Can I Go Inside The Computer, Like Tron? The Complications And Challenges VR Is Facing
13(5)
Motion Tracking and Motion Capture for Input
14(1)
Haptic Feedback
15(1)
Eye Tracking
16(1)
Space and Movement
16(1)
Making Content Inside VR
17(1)
Designing And Developing For Virtual Reality
18(2)
Plan: Any Sort of Plan Will Do
18(1)
Get Your Main Interactions in Place Early
19(1)
Test on Real People
19(1)
Look for Combination and Flow
20(1)
Realism Is Not Always the Most Realistic
20(1)
Recap
20(3)
Chapter 2 Setting Up Your Hardware for the First Time 23(30)
What Hardware And Software Are You Going To Need?
23(6)
HTC VIVE Recommended Specifications
24(1)
OSVR HDK Recommended Specifications
25(1)
Rift Recommended Specifications
25(1)
Compatibility Tools
26(2)
The SteamVR Performance Test Tool
27(1)
The Rift Compatibility Tool
27(1)
OS VR Compatibility
28(1)
Dealing with Compatibility Tool Results
28(1)
Graphics Cards
29(1)
USB Ports
29(1)
Installing SteamVR
29(2)
Install The Steam Client
30(1)
Set Up A Steam Account
30(1)
Install SteamVR
30(1)
General Installation Hints And Tips (For All Devices)
31(3)
Make Room for Your Motion Tracker(s)
31(1)
Non Room-Scale VR with a Single Station/Motion Tracking Camera
31(1)
Room-Scale VR/Multiple Positional Tracking Cameras
31(1)
Organize Your Environment to Clear Some Space!
31(1)
Walls: Try to Avoid Them
32(1)
What Is Interpupillary Distance and Why Should I Care?
32(2)
Real IPD
33(1)
Virtual IPD
33(1)
Installing Your VR Hardware
34(9)
HTC Vive Installation Instructions
34(4)
Potential Issues/Fixes
37(1)
OSVR HDK Installation Instructions
38(4)
Potential Issues/Fixes
41(1)
Rift Installation
42(1)
Setting Up SteamVR
43(1)
Party! SteamVR Is Set Up!
44(1)
Finding Your VR Legs
44(1)
Some Comfortable VR Experience Recommendations
45(2)
HTC Vive
45(1)
OSVR
46(1)
Rift
46(1)
Staying Aware For A Healthy VR Experience
47(4)
Knowing When to Stop (the Telltale Signs of Oncoming VR Sickness)
47(2)
Dry Eyes
48(1)
Sweating
48(1)
Aching
48(1)
Nausea
49(1)
Headache
49(1)
Take Breaks
49(5)
Eat, Drink, and Be Virtually Merry!
49(1)
Do Not Break Your Back Making VR Things! Test Carefully
50(1)
Recap
51(2)
Chapter 3 Setting Up a Unity Project for SteamVR 53(26)
Download Unity And Make A New Project
53(1)
Unity Editor Crash Course
54(6)
Editor Views and Panels
54(12)
Terminology and Common Use Things
57(3)
Creating A New Unity Project
60(1)
Downloading SteamVR Libraries For Unity
60(6)
A Room With A (VR) View
66(9)
Make a New Scene in Unity
66(1)
Copy in the Models from the Example Files
66(1)
Add a New GameObject
66(1)
Add the Garden Model to the Scene
67(2)
Add the House Model
69(1)
Setting Up the VR Camera Rig
70(3)
Digging into the SteamVR Camera Rig
71(2)
Test the Scene
73(1)
VR Environment Scale
73(1)
Scale the Garden Model
74(1)
SteamVR Camera Positioning And Repositioning
75(2)
Save The Project And Keep Backups!
77(1)
Recap
77(2)
Chapter 4 Adding Interaction 79(22)
Add The Interaction Framework To Your Project
80(1)
Adding A Reticle For Aiming
80(5)
Adding A UI Canvas
80(1)
Making A Canvas Suitable For VR
81(4)
Add VReyeraycaster And Reticle Components To The Camera
85(3)
Setting Up Inspector References
86(1)
Stop The Reticle From Clipping
87(1)
Add A Door To The Scene
88(1)
Make The Door Interactive
89(8)
Create A Door Controller Script
90(2)
Script Breakdown
92(5)
Add A Box Collider For The Door Handle
97(2)
Set Up References On The Doorcontroller Component
99(1)
Save Your Work!
100(1)
Recap
100(1)
Chapter 5 Building User Interface for Headset and Game Controller 101(28)
Making A Main Menu Scene
101(10)
Open the Example Project
102(1)
Create a Canvas for the User Interface to Be Drawn On
102(3)
Add a UI Movement Component to the Canvas
103(2)
Building a Button
105(1)
Add a UI Slider to Show Button Progress
106(5)
Change Slider Background Color
108(1)
Change Fill Color
108(1)
Resize the Slider
108(1)
Resize the Background Image
109(2)
Programming A C# Button Script
111(6)
Script Breakdown
112(5)
Add A Reference For The VR_Button Component To Use
117(1)
Add A Text Label To The Button To Show What It Does
118(3)
Test The Button
121(1)
Add A Second Button To The Menu Scene
121(1)
Duplicate The Button
121(1)
Change The Text Label
121(1)
Add Behaviors To The Buttons
121(3)
Add a Main Menu Controller GameObject to the Scene
121(1)
Making a Main Menu Script
122(1)
Script Breakdown
122(1)
Add Event Functions to the Menu Buttons
123(1)
Add Scenes To Build Settings
124(1)
Test The Menu
125(2)
Save Your Work!
127(1)
VR User Interface Design Tips
127(1)
Recap
128(1)
Chapter 6 Moving around the Virtual World with the SteamVR Teleportation System 129(20)
Setting Up The Scene For Teleportation
130(7)
Create Colliders for Teleport Ground Position Detection
130(5)
Setting Up Layers
135(1)
Set Up the Camera Rig and Add Components
135(2)
Writing A C# Script To Provide Input To The Teleporter
137(7)
Script Breakdown
139(5)
Modify The SteamVR Teleporter Code
144(3)
Change DoClick() into a Public Function
144(1)
Modify SteamVR Teleporter to Use a LayerMask
144(3)
Set Up The Components On The Camera Gameobject
147(1)
Set Up Controllerteleportlnputprovider
147(1)
Optional Extras
147(1)
Recap
148(1)
Chapter 7 Using the Headset for Aiming in a Game 149(10)
Attaching A Projectile Firing System To The Camera
149(2)
Add A Script To The Camera To Grab Player Input
151(2)
Programming a SpraylnputProvider.cs script
152(1)
Script Breakdown
152(1)
Add A Script To The Spray Can To Make It Fire
153(3)
Programming the SprayShooter.cs Script
154(1)
Script Breakdown
155(1)
Set Up Components In The Inspector
156(1)
Try Out The Game
157(1)
Recap
157(2)
Chapter 8 Making the Most of Virtual Reality with Audio 159(22)
The Virtual Reality Space And Beyond
159(1)
Common Terms
160(2)
Ambient Sound
160(1)
Listener
160(1)
Binaural Audio
160(1)
Mono Sound
161(1)
3D Sound
161(1)
Doppler Effect
161(3)
Set the Scene with Ambient Sound
161(1)
The Audio Source Component
162(2)
Add Ambient Audio To The Scene
164(4)
Bringing Life To The World With Audio
168(1)
Add Sound To The Insects
168(2)
Add The Audio Source Component To The Insect
169(1)
Add Sound To The Spray
170(1)
Add Music
170(1)
Add An Audio Source To The Camera
170(2)
Whimsical And Fun
171(1)
Fast Paced And Exciting
171(1)
Unity Audio Mixers And Effects
171(1)
Create An Audio Mixer
172(2)
The Audio Mixer Window
172(1)
Mixers
172(1)
Snapshots
172(1)
Groups
173(1)
Views
173(1)
Setting Up Mixers in the Audio Mixer Window
173(1)
Adding Mixer Groups
174(1)
Setting Audio Sources To Use The Audio Mixer Groups
175(1)
Testing And Mixing Audio
176(4)
Audio Ducking
177(2)
Send And Receive
178(1)
Audio Ducking Settings
178(1)
Other Effects
179(1)
Save The Project
180(1)
Recap
180(1)
Chapter 9 HTC Vive Motion Controllers 181(34)
How We Interact With The Virtual World
181(1)
HTC VIVE Controllers
181(3)
Try Out the SteamVR Interaction System Example Scene
182(1)
Tips for Designing Room-Scale VR Controls
182(2)
Picking Up And Dropping In VR With The Vive Controllers
184(24)
Adding Vive Controllers to a Unity Scene
185(1)
The PickUp.cs Script
186(4)
Script Breakdown
190(12)
Adding Haptic Feedback
202(6)
Modifying the PickUp Class to Include Feedback
206(2)
Using The SteamVR Interaction System For User Interface
208(4)
Create a New Project and Import SteamVR
209(1)
Create a New Scene and Add a Player Prefab
209(1)
Make a Simple UI Canvas and Button to Try Out
209(3)
Try It Out in VR
212(1)
Using Vive Controllers For Teleporting Around The Virtual World
212(2)
Create A New Project And Import SteamVR
212(1)
Create A New Scene And Add A Player Prefab
212(2)
Beam Yourself Up!
214(1)
Recap
214(1)
Chapter 10 Using Hands for Input Systems 215(24)
Leap Motion VR
215(12)
The Leap Motion VR Mount Kit
216(1)
Downloading Leap Motion Orion Drivers and Software
217(1)
Connect the Headset and Try Out the Visualizer
217(1)
Download Leap Motion Unity Packages
218(1)
Setting Up the Unity Project for Interaction Engine and Leap Motion
218(1)
Hands-On in the Virtual World
219(2)
Programming to React to Piano Key Presses
221(5)
Script Breakdown
222(4)
Potential Issues
226(1)
Noitom Perception Neuron Mocap
227(11)
Installation and Downloads
227(4)
Install Axis Neuron
227(1)
Set Up the Motion Capture Suit
228(3)
Play with the Example Project
231(1)
Set Up a Unity Project
231(4)
Using a Full Body Perception Neuron Motion Capture Suit
235(1)
Potential Issues
236(4)
Error in Unity
236(1)
View Obscured By Robot Head
237(1)
Recap
238(1)
Chapter 11 Handling the Camera Rig for Seated or Static VR Experiences 239(14)
Driving A Simple Vehicle In VR
240(7)
Open the Example Project
240(1)
Setting Sitting or Standing Calibration in Code
241(2)
Script Breakdown
243(4)
Parenting the Camera to the Vehicle
247(1)
What Is Third Person And Is Virtual Reality Really The Right Place For Third-Person Views?
247(1)
External Camera For Following The Vehicle
247(3)
Open the Example Project
248(1)
Set Up the Camera Rig
248(1)
Add a Camera Script
248(2)
Save
250(1)
Preview the Scene
250(1)
Recap
250(3)
Chapter 12 Virtual Reality Sickness 253(8)
What Is Virtual Reality Sickness?
254(5)
Personal Experience
254(1)
VR Sickness Symptoms and Cues
255(6)
Vection
255(1)
Field of View
256(1)
Inter-Pupillary Distance
256(1)
Illness
257(1)
Motion
257(1)
Age
257(1)
Frame Rate
257(1)
Depth Perception
258(1)
Rate of Linear or Rotational Acceleration
258(1)
Positional Tracking Errors
258(1)
Sitting Versus Standing
258(1)
Can We Solve It?
259(1)
Recap
259(2)
Chapter 13 Hands-on, Practical Techniques for Reducing VR Sickness in Unity 261(20)
Using A UI Overlay For Field Of View Reduction
261(8)
Open the Example Project
262(1)
The FOV Mask
262(1)
Programming the Dynamic Scaling Script
263(5)
Script Breakdown
265(3)
Try Out the Example
268(1)
A Third-Person Camera Suitable For VR
269(8)
Open and Try Out the Example File
270(1)
Programming
271(4)
Script Breakdown
272(3)
The Third-Person VR Camera Rig
275(2)
A Fake Nose? How Does It Smell?!
277(2)
Recap
279(2)
Chapter 14 Polish and Optimization 281(26)
Customizing The SteamVR Compositor
281(4)
Create a SteamVR Skybox for the Compositor
281(4)
Optimizing For VR
285(19)
The Rendering Statistics Windows (Stats)
286(1)
The Performance Profiler
287(5)
Profiler Modes
287(2)
What Do the Squiggles Tell You?
289(1)
Profiler Types
289(1)
Example Usage
290(2)
Batching
292(2)
Occlusion
294(4)
Try Occlusion Out with the Example Unity Project
294(1)
The Occlusion Panel
295(1)
Adding Occlusion Areas
296(1)
Bake the Occlusion Cells
296(2)
Quick Code Tips
298(2)
Prioritize Where in the Update Cycles Your Code Runs
299(1)
Geometry and Modeling
300(7)
Materials
301(1)
Level-of-Detail (LOD)
302(2)
Recap
304(3)
Chapter 15 Further Possibilities and a Final Word 307(6)
The Future
307(3)
Wireless Headsets
307(1)
Backpack Laptops
308(1)
Warehouse-Scale Experiences
308(1)
Eye Tracking
308(1)
Light Field VR
309(1)
SparseLightVR
309(1)
Khronos VR
310(1)
Final Word
310(3)
References 313(2)
Index 315
Jeff W. Murray has written two other books: C# Game Programming Cookbook for Unity3D and Game Development for iOS with Unity3D, both published by CRC Press. In the past, he has worked with some of the worlds largest brands as a programmer, game designer and director. Murray is currently working with IBM Research, somewhere in virtual reality.