- Summary 更新時間:2021-07-02 19:09:04
- And much more
- Sharing service
- Shaders
- Assets
- Menu items
- Using the toolkit
- Importing the toolkit
- Where to get it
- Introducing the HoloToolkit
- Shader optimizations
- Structs versus classes
- Garbage collections
- Threading
- Scripts optimizations
- Texture optimizations
- Lighting optimizations
- Level of Detail
- Static objects
- Polygon/vertex reduction
- QualitySettings
- Unity3D performance tricks
- Profiling in Unity3D
- Remoting in Unity3D
- Performance in Unity3D
- Why does this work?
- Option 3 - placeholder assemblies
- Option 2 - sprinkle the code with #if/#endif statements
- Option 1 - do not go back and forth
- Three possible solutions
- Compilation errors and how to fix them
- Script compiling in Unity3D
- .NET in HoloLens
- Mono runtime
- Framework versions
- Speed Up Your Development - Advanced Unity3D
- Summary
- Receiving the data in Unity3D
- Sending the data from Unity3D
- Sharing world anchors in Unity3D
- Should you send one or multiple anchors?
- Sharing spatial anchors in DirectX
- Sharing world coordinates
- Connecting to the other HoloLens
- Handling found devices
- Watching for other devices
- Setting up the advertisement
- Introducing Bluetooth advertisements
- Peer to peer
- Connecting from Unity3D
- Consuming the connection
- Setting up the connection
- Creating the mixed-reality client app
- Sending data
- Handling connections
- Creating the thread for handling data traffic
- Setting up the TCP/IP layer
- Setting up the data
- Using a hub
- Sharing scenarios
- Setting up networking
- Sharing
- Using the locator-attached frame in Unity3D
- What this does?
- Using the locator attached frame in DirectX
- Spatial locator-attached frame of reference
- Using the stationary frame of reference in Unity3D
- Using the stationary frame of reference in DirectX
- Stationary frame of reference
- Problems with anchors
- Changing GestureHandler.cs
- Using SpatialAnchors in Unity3D
- Using the spatial anchors in DirectX
- Spatial anchors
- Spatial mapping and coordinate systems
- Local coordinate systems
- The position of holograms
- Lets Talk! Communications between Devices
- Summary
- Occlusion
- The easy way
- Wireframe
- New and updated surfaces
- Handling changes in the surfaces
- Spatial mapping in code
- Capabilities
- Adding surface mapping
- Writing scripts for spatial mapping in Unity3D
- Spatial understanding in Unity3D
- Putting it all to work
- Cleaning up
- Mesh updating and rendering
- Updating and rendering
- The SurfaceMesh class
- Pruning the list
- Getting the actual mesh data
- Getting the surface data
- Creating the SpatialSurfaceObserver
- Setting up device-dependent resources
- Checking capabilities
- Initial classes
- Spatial capabilities
- Initial app
- Spatial understanding in DirectX
- Optimizing meshes
- App-specific requirements
- Moving objects
- Lighting
- The physical qualities of the surfaces
- The user's movements
- Causes for errors
- Misaligned surfaces
- Fake surfaces
- Holes
- Errors in the spatial mapping
- Things to be aware of in spatial mapping
- Masquerading imperfection
- Physics
- Visualization
- Placement
- Navigation
- Occlusion
- Usages of spatial mapping
- Mixed reality
- Augmented reality
- Virtual reality
- VR AR and MR
- Take a Look around You - Spatial Mapping
- Summary
- What is next?
- Building the VoiceRecognizer in Unity3D
- The VoiceRecognizer class
- Building a VoiceRecognizer in DirectX
- Troubleshooting speech recognition
- Dictation
- Hologram manipulations
- App commands
- Hey Cortana
- Select
- Default commands
- Listen up - voice commands
- Overview of the most important SSML tags
- Introducing the SSML stream
- Making things more lifelike
- Adding voice to RockOn
- Creating the reusable asset
- Asynchronous stream generating
- What is it about these #if statements?
- Our SpatialVoicePlayer script
- Creating the scripts for the asset
- Adding the helper script
- Creating the Unity app
- Voice generation in Unity3D
- Making the voice spatial
- Calling Play to hear the voice
- Setting things up
- Synthesizing voice
- Playing the sound
- Implementing IDispose the right way
- Initializing the sound system for streaming
- Creating the base of the VoicePlayer class
- Voice generation in DirectX
- General principles behind voice generation
- Let the HoloLens speak
- Be Heard - Voice Interactions
- Summary
- What is next?
- General concepts when it comes to sounds
- Some final thoughts on spatial sound
- Play the sound at the right time.
- Adding spatial sound to GameObjects
- Setting the audio settings in Unity3D
- Unity
- Using the library
- The SpatialSound library
- DirectX
- Spatial sound
- Unity
- Actually play the sounds
- Playing the sound
- Loading and preparing the sound we want to play
- Getting the right NuGet packages
- DirectX
- Background music
- Licensing
- Applying these principles
- Best practices in sound design
- Interaction design
- Immersion
- User attention
- Grounding
- The benefits of spatial sound
- The design principles for spatial sound
- Sound design
- Spatial sound in computer programs
- Echo
- Moving our heads
- Head Related Transfer Functions
- Up and down
- Front and back
- Left and right
- Head Related Transfer Function
- How our bodies work when it comes to sound
- Make Some Noise - Sounds
- Summary
- Creating the creation code
- Creating a prefab
- Gestures in Unity
- The SpatialGestureRecognizer
- The InteractionManager class
- Gestures in DirectX
- Events
- Testing for touch
- Implementing the cursor code
- Using the script in Unity
- Editing the script in Visual Studio
- Creating the assets
- The cursor
- Gaze in Unity
- Next steps
- Rotating
- Positioning
- Using our new class
- Updating after changes
- The Render() method
- Rendering and updating
- Our square cursor
- Defining images in three dimensions.
- Additional data
- Adding shaders to our project
- Programming shaders
- The processing pipeline
- A word about shaders
- The bare HoloCursor class
- Gaze in DirectX
- Getting to grips with gaze
- Types of feedback in the HoloLens world
- Feedback
- Natural user interface
- Graphical user interface globally
- Command-line interface
- A brief history of user interfaces
- Some UX considerations
- Working with gestures
- Gestures and Events
- Summary
- Making some small adjustments
- Using the device
- Using the emulator
- Deploying the project
- Building the project
- Adding assets to the scene
- The role of Visual Studio in developing for the HoloLens
- Getting started with Unity3D
- Creating a new project
- Developing with Unity3D
- Developing with DirectX
- Decision time - tooling
- How do we get there?
- What do we want to achieve?
- Introducing the RockOn app
- Implementing your app
- Prioritizing must-haves
- Separating must-haves from nice-to-haves
- Removing ideas that don't support the mission statement
- Brainstorming all ideas
- Writing down your mission statement
- The workflow to identify your features
- Where do holographic apps differ?
- Where holographic apps are "just another app"
- Using your experience
- Small projects need small teams
- Big projects need big teams
- Forming a design team
- Give your user superpowers!
- The social aspect in collaborative situations
- People do not expect sudden changes
- Audio
- Gestures
- Dealing with limited input methods
- Sounds
- Pointers
- Making sure objects can be found
- Making sure objects can be reached
- Making sure objects are in a logical place
- Thinking in three dimensions
- Unique features of the device
- Designing Your App
- Summary
- Building and running your HoloLens Unity app
- Build configurations with Unity
- The structure of a Unity HoloLens UWP app solution
- Continuing in Visual Studio after Unity
- Building the project
- Create a sample script
- Adding holographic objects
- Changing the background color
- Changing the position
- Fixing the camera
- Our first HoloApp in Unity3D
- Using Unity3D to create great holographic apps
- Inside the AppView class
- The structure of the project
- Let's have a look at the code
- Deploying through USB
- Deploying through Wi-Fi
- Deploying the app to the device
- How to use the emulator
- Deploying your first app to the emulator
- Your very first application
- The tools we need to write software
- Writing your first holographic application
- The Views menu in the portal
- The different menus in the portal
- Overview of the portal
- The device portal
- Calibrating the device
- Learning the gestures
- Turning the device on for the first time
- Wearing the device
- Displaying 3D images
- The device in a nutshell
- Processors
- Spatial speakers
- Holographic lenses
- Microphones
- Cameras
- The sensors
- A wearable computer
- The device
- Welcome to the HoloLens!
- Lets Begin!
- Questions
- Piracy
- Errata
- Downloading the color images of this book
- Downloading the example code
- Customer support
- Reader feedback
- Conventions
- Who this book is for
- What you need for this book
- What this book covers
- Preface
- Customer Feedback
- Why subscribe?
- www.PacktPub.com
- About the Reviewer
- Acknowledgments
- About the Author
- Credits
- Title Page
- coverpage
- coverpage
- Title Page
- Credits
- About the Author
- Acknowledgments
- About the Reviewer
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- 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
- Lets Begin!
- Welcome to the HoloLens!
- The device
- A wearable computer
- The sensors
- Cameras
- Microphones
- Holographic lenses
- Spatial speakers
- Processors
- The device in a nutshell
- Displaying 3D images
- Wearing the device
- Turning the device on for the first time
- Learning the gestures
- Calibrating the device
- The device portal
- Overview of the portal
- The different menus in the portal
- The Views menu in the portal
- Writing your first holographic application
- The tools we need to write software
- Your very first application
- Deploying your first app to the emulator
- How to use the emulator
- Deploying the app to the device
- Deploying through Wi-Fi
- Deploying through USB
- Let's have a look at the code
- The structure of the project
- Inside the AppView class
- Using Unity3D to create great holographic apps
- Our first HoloApp in Unity3D
- Fixing the camera
- Changing the position
- Changing the background color
- Adding holographic objects
- Create a sample script
- Building the project
- Continuing in Visual Studio after Unity
- The structure of a Unity HoloLens UWP app solution
- Build configurations with Unity
- Building and running your HoloLens Unity app
- Summary
- Designing Your App
- Unique features of the device
- Thinking in three dimensions
- Making sure objects are in a logical place
- Making sure objects can be reached
- Making sure objects can be found
- Pointers
- Sounds
- Dealing with limited input methods
- Gestures
- Audio
- People do not expect sudden changes
- The social aspect in collaborative situations
- Give your user superpowers!
- Forming a design team
- Big projects need big teams
- Small projects need small teams
- Using your experience
- Where holographic apps are "just another app"
- Where do holographic apps differ?
- The workflow to identify your features
- Writing down your mission statement
- Brainstorming all ideas
- Removing ideas that don't support the mission statement
- Separating must-haves from nice-to-haves
- Prioritizing must-haves
- Implementing your app
- Introducing the RockOn app
- What do we want to achieve?
- How do we get there?
- Decision time - tooling
- Developing with DirectX
- Developing with Unity3D
- Creating a new project
- Getting started with Unity3D
- The role of Visual Studio in developing for the HoloLens
- Adding assets to the scene
- Building the project
- Deploying the project
- Using the emulator
- Using the device
- Making some small adjustments
- Summary
- Gestures and Events
- Working with gestures
- Some UX considerations
- A brief history of user interfaces
- Command-line interface
- Graphical user interface globally
- Natural user interface
- Feedback
- Types of feedback in the HoloLens world
- Getting to grips with gaze
- Gaze in DirectX
- The bare HoloCursor class
- A word about shaders
- The processing pipeline
- Programming shaders
- Adding shaders to our project
- Additional data
- Defining images in three dimensions.
- Our square cursor
- Rendering and updating
- The Render() method
- Updating after changes
- Using our new class
- Positioning
- Rotating
- Next steps
- Gaze in Unity
- The cursor
- Creating the assets
- Editing the script in Visual Studio
- Using the script in Unity
- Implementing the cursor code
- Testing for touch
- Events
- Gestures in DirectX
- The InteractionManager class
- The SpatialGestureRecognizer
- Gestures in Unity
- Creating a prefab
- Creating the creation code
- Summary
- Make Some Noise - Sounds
- How our bodies work when it comes to sound
- Head Related Transfer Function
- Left and right
- Front and back
- Up and down
- Head Related Transfer Functions
- Moving our heads
- Echo
- Spatial sound in computer programs
- Sound design
- The design principles for spatial sound
- The benefits of spatial sound
- Grounding
- User attention
- Immersion
- Interaction design
- Best practices in sound design
- Applying these principles
- Licensing
- Background music
- DirectX
- Getting the right NuGet packages
- Loading and preparing the sound we want to play
- Playing the sound
- Actually play the sounds
- Unity
- Spatial sound
- DirectX
- The SpatialSound library
- Using the library
- Unity
- Setting the audio settings in Unity3D
- Adding spatial sound to GameObjects
- Play the sound at the right time.
- Some final thoughts on spatial sound
- General concepts when it comes to sounds
- What is next?
- Summary
- Be Heard - Voice Interactions
- Let the HoloLens speak
- General principles behind voice generation
- Voice generation in DirectX
- Creating the base of the VoicePlayer class
- Initializing the sound system for streaming
- Implementing IDispose the right way
- Playing the sound
- Synthesizing voice
- Setting things up
- Calling Play to hear the voice
- Making the voice spatial
- Voice generation in Unity3D
- Creating the Unity app
- Adding the helper script
- Creating the scripts for the asset
- Our SpatialVoicePlayer script
- What is it about these #if statements?
- Asynchronous stream generating
- Creating the reusable asset
- Adding voice to RockOn
- Making things more lifelike
- Introducing the SSML stream
- Overview of the most important SSML tags
- Listen up - voice commands
- Default commands
- Select
- Hey Cortana
- App commands
- Hologram manipulations
- Dictation
- Troubleshooting speech recognition
- Building a VoiceRecognizer in DirectX
- The VoiceRecognizer class
- Building the VoiceRecognizer in Unity3D
- What is next?
- Summary
- Take a Look around You - Spatial Mapping
- VR AR and MR
- Virtual reality
- Augmented reality
- Mixed reality
- Usages of spatial mapping
- Occlusion
- Navigation
- Placement
- Visualization
- Physics
- Masquerading imperfection
- Things to be aware of in spatial mapping
- Errors in the spatial mapping
- Holes
- Fake surfaces
- Misaligned surfaces
- Causes for errors
- The user's movements
- The physical qualities of the surfaces
- Lighting
- Moving objects
- App-specific requirements
- Optimizing meshes
- Spatial understanding in DirectX
- Initial app
- Spatial capabilities
- Initial classes
- Checking capabilities
- Setting up device-dependent resources
- Creating the SpatialSurfaceObserver
- Getting the surface data
- Getting the actual mesh data
- Pruning the list
- The SurfaceMesh class
- Updating and rendering
- Mesh updating and rendering
- Cleaning up
- Putting it all to work
- Spatial understanding in Unity3D
- Writing scripts for spatial mapping in Unity3D
- Adding surface mapping
- Capabilities
- Spatial mapping in code
- Handling changes in the surfaces
- New and updated surfaces
- Wireframe
- The easy way
- Occlusion
- Summary
- Lets Talk! Communications between Devices
- The position of holograms
- Local coordinate systems
- Spatial mapping and coordinate systems
- Spatial anchors
- Using the spatial anchors in DirectX
- Using SpatialAnchors in Unity3D
- Changing GestureHandler.cs
- Problems with anchors
- Stationary frame of reference
- Using the stationary frame of reference in DirectX
- Using the stationary frame of reference in Unity3D
- Spatial locator-attached frame of reference
- Using the locator attached frame in DirectX
- What this does?
- Using the locator-attached frame in Unity3D
- Sharing
- Setting up networking
- Sharing scenarios
- Using a hub
- Setting up the data
- Setting up the TCP/IP layer
- Creating the thread for handling data traffic
- Handling connections
- Sending data
- Creating the mixed-reality client app
- Setting up the connection
- Consuming the connection
- Connecting from Unity3D
- Peer to peer
- Introducing Bluetooth advertisements
- Setting up the advertisement
- Watching for other devices
- Handling found devices
- Connecting to the other HoloLens
- Sharing world coordinates
- Sharing spatial anchors in DirectX
- Should you send one or multiple anchors?
- Sharing world anchors in Unity3D
- Sending the data from Unity3D
- Receiving the data in Unity3D
- Summary
- Speed Up Your Development - Advanced Unity3D
- Framework versions
- Mono runtime
- .NET in HoloLens
- Script compiling in Unity3D
- Compilation errors and how to fix them
- Three possible solutions
- Option 1 - do not go back and forth
- Option 2 - sprinkle the code with #if/#endif statements
- Option 3 - placeholder assemblies
- Why does this work?
- Performance in Unity3D
- Remoting in Unity3D
- Profiling in Unity3D
- Unity3D performance tricks
- QualitySettings
- Polygon/vertex reduction
- Static objects
- Level of Detail
- Lighting optimizations
- Texture optimizations
- Scripts optimizations
- Threading
- Garbage collections
- Structs versus classes
- Shader optimizations
- Introducing the HoloToolkit
- Where to get it
- Importing the toolkit
- Using the toolkit
- Menu items
- Assets
- Shaders
- Sharing service
- And much more
- Summary 更新時間:2021-07-02 19:09:04