
Mastering Oculus Rift Development
Beschreibung
Weitere Details
Person
Jack Donovan is a 24-year-old software engineer living in Brooklyn, New York. He graduated from Champlain College in Burlington, Vermont with a BS in game programming and soon after joined IrisVR, a startup founded in Burlington to create oneclick software for architects to visualize models in virtual reality. IrisVR moved to New York City after being accepted into the startup incubator program Techstars and has since moved to an independent office in NoHo, where Jack continues to work. Jack also wrote OUYA Game Development By Example, a book focused on the basics of developing games for the Android-powered OUYA console. Both books use the Unity3D engine for development, which Jack has been using to develop games and software in since 2010.
Inhalt
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: Exploring a New Reality with the Oculus Rift
- The concept of VR
- Depth perception
- Common limitations of VR games
- Locomotion sickness
- Lack of real-world vision
- Unnatural head movements
- Vergence-accommodation conflict
- Constellation tracking
- Input with controllers, remotes, and more
- The importance of frame rate
- Asynchronous Timewarp
- Installing the Oculus runtime
- Summary
- Chapter 2: Stepping into Virtual Reality
- Getting started with Unity
- Installing the Unity3D engine
- Incorporating the Oculus Utilities package
- Taking your first steps in VR
- Scripting basic player movement
- Enabling interaction with gaze-based mechanics
- Implementing gaze-based teleporting
- Building and running your first VR app
- Configuring Unity Build Settings for VR
- Configuring Unity Quality settings for VR
- Summary
- Chapter 3: Improving Performance and Avoiding Discomfort
- Using the Unity profiler
- Analyzing CPU usage
- Using coroutines to split up complex work
- Mesh optimization
- Optimizing a mesh using Simplygon
- Displaying dynamic detail with LODs
- Keeping a handle on memory allocation
- Stack and heap memory
- Value types and reference types
- Boxing and unboxing
- Unity specifics
- foreach loops versus for loops
- Material references
- Comparing tags efficiently
- Object pooling
- Creating an object pool for strings
- Pooling Unity GameObjects
- Summary
- Chapter 4: Interacting with Virtual Worlds
- Designing basic player input
- Using Unity input axes
- Using the OVRPlayerController script
- Adding projectiles
- Implementing a firing mechanic
- Implementing gameplay around input
- Creating a target dummy
- Creating custom Unity input axes
- Summary
- Chapter 5: Establishing Presence
- Setting up the game environment
- Configuring lighting properties
- Adding some color to the scene
- Adding colliders to imported mesh objects
- Accentuating depth with particle effects
- Customizing the skybox
- Enabling player interaction with the world
- Creating the dynamic wall prefab
- Scripting our prefab
- Populating the game world with resources
- Making the practice dummies drop resources
- Using resources to interact with the environment
- Summary
- Chapter 6: Adding Depth and Intuition to a User Interface
- Adding a VR input module
- Constructing a simple menu
- Setting up a canvas
- Adding buttons to a canvas
- Adding functionality to UI elements
- Creating a GameManager script
- Adding UI elements to the game world
- Adding complexity to the dynamic walls
- Adding teams to the game
- Adding a health bar to the dynamic wall
- Summary
- Chapter 7: Hearing and Believing with 3D Audio
- The science of how we hear
- Lateral localization of audio
- Vertical localization of audio
- Learning the basics of Unity audio
- Spatial blending between 2D and 3D
- Implementing 2D stereo audio
- Playing a sound when a button is clicked on
- Playing a sound when a button is hovered
- Adding basic 3D spatialization
- Making an audio source 3D
- Immersing your player with HRTFs
- Sampling Unity's first-party HRTF
- Importing the ONSP
- Using the ONSP
- Adding sound reflections to the scene
- Filling the game world with sound
- Adding footstep sounds
- Adding projectile sounds
- Adding ambient looping to energy orbs
- Summary
- Chapter 8: Adding Tone and Realism with Graphics
- A simple breakdown of the rendering pipeline
- Defining the geometry
- Transforming the model into world space
- Transforming the world into camera space
- Lighting the objects in the scene
- Deriving a projection from the camera
- Clipping geometry outside the camera's frustum
- Rasterization and texturing
- Forward and deferred rendering
- Forward rendering
- Deferred rendering
- Demonstrating the value of deferred rendering
- Adding tone with color grading
- The basics of color grading
- Adding a color grading script to the camera
- Sampling a lookup texture
- Creating dramatic effects with vibrant LUTs
- Changing the appearance of objects with shaders
- A quick overview of ShaderLab shaders
- Importing a textured model
- An overview of ShaderLab's fundamental syntax
- Writing your first shader
- Defining a diffuse texture property
- Adding a normal map property to a shader
- Generating a normal map
- Summary
- Chapter 9: Bringing Players Together in VR
- Creating a lobby space for joining matches
- Setting up the lobby scene
- Creating the Create menu
- Adding event triggers to the Lobby menu
- Creating a networked game
- Defining player spawn points
- Assigning players to teams
- Using Unity's matchmaker system
- Creating a matchmaker game
- Joining a matchmaker game
- Tying together the multiplayer lobby
- Linking the menus together
- Synchronizing data in multiplayer matches
- Syncing player movement
- Handling object spawning on the network
- Detecting bullet collisions on the network
- Ending a match after a set time
- Summary
- Chapter 10: Publishing on the Oculus Store
- Packaging a final Unity build
- Adding a game icon
- Configuring final player settings
- Configuring final quality settings
- Getting to know the output log
- Meeting the Oculus submission guidelines
- Meeting the Oculus content policy
- Meeting the Oculus minimum technical requirements
- What about Asynchronous Timewarp and Spacewarp?
- Uploading your first build to Oculus
- Managing release channels
- Uploading submission information
- Other sections of the dashboard
- Summary
- Index
Systemvoraussetzungen
Dateiformat: PDF
Kopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
- Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).
- Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
- E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist.
Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.
Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.