etna dev 2016 - introduction to holographic development
TRANSCRIPT
Agenda
How develop HoloGraphic App
Setup and SDKMy first App
HoloToolKit Unity
Input: Gaze / Tap / VoiceSpatial Mapping
Performances
Q&A?
Unity 3D
Cross Platform
HoloLens Support
WYSIWYG Editor
Quick Interaction Times
Powerful Asset Pipeline
Easy to lean API’s
Programming Language: C#
Wrapper and dlls support: C++
HoloLens Toolkit-Unity
https://github.com/Microsoft/HoloToolkit-Unity
https://github.com/Microsoft/HoloToolkit-Unity/blob/master/GettingStarted.md
Input
Sharing
Spatial Mapping
Spatial Sound
Utilities
Build
Shaders
Programs that run on the GPU
Written in C like language (CG, HLSL, GLSL)
Used for lighting, effects, computation, etc
DX11 Rendering Pipeline
Structure of a Shader
Shader “Name”{}
Properties {}
SubShader {}
Pass {}
CDPROGRAMM … ENDCG
Defining Variables
Structs
Vertex Program
Black.shader & Color.shader
Shader “DTC-HoloLens/Black”{
SubShader
{Pass {}
}
}
Shader “DTC-HoloLens/Color”{Properties{
_Color (“Color”, Color) = (1,0,0)}
SubShader{
Color [_Color] Pass {}
}
}
Shadertoy
https://www.shadertoy.com/view/4tlXWs
https://www.shadertoy.com/view/MlfXzN
https://www.shadertoy.com/view/lsXSDn
https://www.shadertoy.com/view/XdcGzr#
Remember HW Limits
Goals• Frame Rate 60 fps
• Memory < 900 MB Total Commit
The the biggest factors for CPU performance are:• Too many objects being rendered (try to keep this under 100 unique Renderers or UI
elements)
• Expensive updates or too many object updates
• Hitches due to garbage collection
• Expensive graphics settings and shaders (shadows, reflection probes, etc.)
https://developer.microsoft.com/en-us/windows/holographic/performance_recommendations_for_unity
Optimize Player
Go to the player settings by navigating to "Edit > Project Settings > Player" page, click on the "Windows Store“
Use Shader preloading, preloading means you won't see any hitches due to runtime shader compilation.
Make sure "Rendering > Rendering Path" is set to Forward (this is the default).
The "Use 16-bit Depth Buffers" setting allows you to enable 16-bit depth buffers, which drastically reduces the bandwidth (and thus power) associated with depth buffer traffic.