Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
What is Virtual Reality, Really?
What Virtual Reality is and how it works
Use of stereo and parallax in Virtual Reality
Why does Virtual Reality work if it doesn't look 100% real?
Other types of VR; AR, XR, SR/FR
History of VR
User agency - interacting with the world through controllers
High-end controllers for PC, Mac, and Linux
HTC Vive
Oculus Rift
Mobile VR
Rendering hardware
How to view VR?
VR can be dangerous
VR Headset options
Types of headsets
Mobile headsets
PC, Mac, and Linux headsets
Summary
Flatland and Beyond: VR Programming
HTML and ways to move beyond the 2D internet
Background of Node.js and JavaScript
Making servers React
Graphics libraries — OpenGL and WebGL
Installation of Node.js and React VR
Installation of Node.js
Post Node.js installation — installing React VR
Installation of a WebVR browser
Summary
3D or Reality in Dimensions Other than X and Y
Beyond flatland - 3D concepts
Coordinates
What about rotations?
Points
Vectors
Transforms
What about the matrix?
Rendering
Testing how it looks
How rendering works
Summary
The React VR Library
JSX - the syntax of React VR
Differences between React VR and React
Core Components
VR Components
Props
State
Events
Layout and style
The next level - the details
Stuff (objects, whether visible or not)
Primitives
Box
Cylinder
Plane
Sphere
Model
CylindricalPanel
VideoControl
VrButton
Lights
Common light properties
AmbientLight
DirectionalLight
PointLight
SpotLight
Multimedia - sound and video
Sound
Video
Cameras and viewing
LiveEnvCamera
View
Summary
Your First VR App
Moving beyond hello world - our first VR world
VR world design - or, congrats, you are the new Astronomy Museum curator!
Creating the base React VR components
Creating the larger world - background image
Cluttering up the world - adding our first VR components
Lighting up the world
Why did I have you paste in both a Plane and a Box?
Got Class - consolidating objects as new keywords
Putting it all together
Adding the pedestals
Summary
Working with Poly and the Gon Family
Polygons and why we like them
Why doesn't VR use some of these techniques?
What is a polygon? discussion of vertices, polygons, and edges
Where to get 3D models
Summary
Sitting Down with a (Virtual) Teapot
The teapot in Blender
Fixing the UV maps for the teapot
Importing materials
Fixing the deck plates
The finished VR world
Summary
Breath Life in Your World
The Animated API
Flying teapots
Spinning once and forever
The final code
Sound
Putting sound in our world
Summary
Do It Yourself – Native Modules and Three.js
Native modules and views
Making a three.js cube demo
Making native code interact with React VR
Summing up the code so far
Something more visual
Next steps
Extending React VR — Native Views
Extending the language
Summary
Bringing in the Real Live World
Going to Mars (the initial world creation)
Creating the initial world
Jason and JSON
Why JSON has nothing to do with React
Finding the API -- All the way from Mars
A better API from NASA
Everyone needs a style(sheet)
Building the image and status UI
How (not to) to make people sick
Summary
Take a Walk on the Wild Side
Going loco–VR locomotion
Types of VR locomotion
Avoiding the ghost effect
Building a maze
Almost random–pseudo random number generators
Including library code from other projects
The Maze render()
Adding the floors and type checking
Using the glTF file format for models
Animation — VR Buttons
Raycasters
Props, state, and events
Making updates flow up river
Where to go from here?
Summary
Publishing Your App, and Where to Go from Here
Upgrading React VR
Upgrading in place
Third-party dependencies
Really broken upgrades – rip and replace
The best time to do an upgrade
Getting your code ready to publish
Good code organization
Cleaning the lint trap (checking code standards)
React VR coding style
Third-party dependencies
Bundling for publishing on the web
Packaging React VR for release on a website
Obtaining releases and attribution
Checking image sizes and using content delivery sites
Optimizing your models
Now that we've gotten it published, what's next
Physics – making the world interact with itself
Game play engines – letting you interact with others
Monetizing VR
Where VR will go in the next five years
Do not wait for next year's technology
Better HMDs
Better and more realistic graphics
Easier content creation and more high-end content
Eye tracking
Audio improvements
Controlling VR
Social and legal issues and solutions
Summary
← Prev
Back
Next →
← Prev
Back
Next →