dotnetmálaga 2017 - taller hololens con wave engine

59

Upload: javier-suarez-ruiz

Post on 21-Jan-2018

2.869 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 2: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 3: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Visual Studio Technologies & Windows Platform Development MVP

Xamarin MVP

Software Developer at Plain Concepts

• Blog: http://geeks.ms/blogs/jsuarez

• Email: [email protected]

• Twitter: @jsuarezruiz

Page 4: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 5: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Si, váis a

poder

probar!

Page 6: dotNetMálaga 2017 - Taller Hololens con Wave Engine

VR vs AR

Page 7: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 8: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Virtual Reality

Page 9: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 10: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Agumented Reality

Page 11: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Las HoloLens en detalle

Page 12: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Un holograma es un objeto como cualquier otro del mundo

real, con una gran diferencia, no es físico, esta

enteramente realizado por luz.

Los objetos holográficos se pueden ver desde diferentes

ángulos, distancias, como un objeto físico real.

Los hologramas no ofrecen ningun tipo de Resistencia al ser

presionados o tocados porque en realidad, no tienen

cuerpo físico ni masa.

Page 13: dotNetMálaga 2017 - Taller Hololens con Wave Engine

¿Qué son?

Microsoft HoloLens es el primer ordenador

holográfico con Windows 10.

Es totalmente independiente, no necesita ninguna

conexión a PC, teléfono, etc.

Microsoft HoloLens permite anclar hologramas en el

espacio real físico ofreciendo una nueva forma de

interacción

Microsoft Hololens soporta realidad aumentada.

Page 14: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Principales características

1. Cámara

2. PC

3. Lentes

4. Audio

5. Sensores

6. Botones

Page 15: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Características

Intel Atom x5-Z8100

2 GB RAM

64 GB HDD (54GB espacio libre)

4 cámaras de entorno (“Kinect”)

4 Micrófonos (2 laterales cancelación ruido)

GPU/HPU

2-3h duración batería (uso intenso entorno a 2h)

Windows 10 32 bits

Apps oscilan entre 20MB 200MB.

Page 16: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Page 17: dotNetMálaga 2017 - Taller Hololens con Wave Engine

DEMODEMODEMO

Un vistazo a las HoloLens

Page 18: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Desarrollo

Page 19: dotNetMálaga 2017 - Taller Hololens con Wave Engine

El SDK:

• Plantillas Visual Studio

• Emulador

• Unity 5.4 o superior para HoloLens

Page 20: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 21: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Requisitos:

• Hyper-V

• 64Bits

• Soporte para DirectX 10

Podemos interactuar usando el ratón para emular el movimiento de la cabeza,

el gaze y la acción.

También podemos usar el teclado para ejecutar acciones.

Page 22: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Holographic DirectX 11 App

App UWP que usa SharpDX y C#.

Page 23: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Page 24: dotNetMálaga 2017 - Taller Hololens con Wave Engine

DEMODEMODEMO

Vemos plantillas y emulador

Page 25: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

• Unity es un motor de

videojuego

multiplataforma.

• Añade soporte a

HoloLens.

• Toolkit con

herramientas para

tener acceso a

características.

Page 26: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 27: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Page 28: dotNetMálaga 2017 - Taller Hololens con Wave Engine

1. Mirada (Gaze)

2. Gestos

3. Voz

4. Sonido especial

5. Spatial mapping

Page 29: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Gaze input

Page 30: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

HD color camera

Page 31: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Spatial Mapping

Page 32: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Spatial Mapping

Page 33: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Gesture input

Air Tap Bloom

Page 34: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Voice input

Page 35: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Spatial Sound

Page 36: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Bluetooth connectivity

Page 37: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Compartir Holograma por Wifi

Page 38: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

Page 39: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

¿Qué vamos a ver?• Crear App 3D con el sistema solar.

• Uso de modelos 3D.

• Crear proyectos para HoloLens.

• Gestión de cámara y posicionamiento.

• Spatial Sound.

• Air Tap.

• Comandos de voz.

Page 40: dotNetMálaga 2017 - Taller Hololens con Wave Engine

dotNetMálaga 2017

https://goo.gl/xXB73aConjunto de Assets (texturas, modelos, etc.) a utilizar.

Page 41: dotNetMálaga 2017 - Taller Hololens con Wave Engine
Page 42: dotNetMálaga 2017 - Taller Hololens con Wave Engine

File > New Project

1. Introduce el nombre del proyecto

2. Selecciona la localización del proyecto.

3. OK.

Page 43: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Los proyectos Wave Engine cuentan con la siguiente

estructura:

• El archivo .weproj, archivo de solución Wave Engine.

• Carpeta Content, contiene todos los assets de la app,

puedes importar directamente desde herramientas como

Photoshop, 3dsMax, Blender, etc.

• Una solución Visual Studio por profile(Cada profile o

perfil se asocia con una plataforma como UWP, Windows,

Android, etc..)

Page 44: dotNetMálaga 2017 - Taller Hololens con Wave Engine

WaveEngine cuenta con una serie de componentes que permiten utilizar una

cámara estéreo de acuerdo a diferentes tecnologías de AR / VR (Oculus, Google

Cardboard, HoloLens…).

Page 45: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Tras crear una entidad básica,

contaremos con lo básiso.

Añadimos el componente

VRCameraRig a la entidad anterior.

Page 46: dotNetMálaga 2017 - Taller Hololens con Wave Engine

El componente anterior ya se encarga de crear una jerarquía como la siguiente:

Esta jerarquía se utiliza para mantener un sistema 3D de cámara estéreo, que permite “dibujar”

en cada ojo por separado y ayuda a los desarrolladores a saber dónde se encuentra cada

característica especial (ojos, posicionador de posición, etc ...).

Page 47: dotNetMálaga 2017 - Taller Hololens con Wave Engine

• TrackingSpace: Permite ajustar el espacio de seguimiento a los

requisitos de la aplicación. Por ejemplo, por defecto, todas las unidades de

posición de seguimiento proporcionadas por Microsoft HoloLens se miden

en metros, por lo que si desea utilizar centímetros en lugar de metros, sólo

necesita escalar la entidad TrackingSpace 100 veces.

• LeftEyeAnchor: Esta es la entidad de la cámara del ojo izquierdo.

Siempre coincide con la posición del ojo izquierdo.

• RightEyeAnchor: Esta es la entidad de la cámara del ojo

derecho. Siempre coincide con la posición del ojo derecho.

• CenterEyeAnchor: Esta entidad se coloca en la posición media

entre la posición de los ojos izquierdo y derecho. Esta entidad se utiliza

comúnmente para conocer la posición "cabeza".

• TrackerAnchor: Cámara de seguimiento de posición.

Page 48: dotNetMálaga 2017 - Taller Hololens con Wave Engine

También se añade el componente HololensProvider a la entidad cámara (la entidad que tiene

el componente VRCameraRig). Este componente es responsable de actualizar las entidades de

jerarquía VRCameraRig con la información de las HoloLens y configura las cámaras adaptarlas

a las gafas HoloLens.

Page 49: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Una aplicación HoloLens es básicamente una aplicación

Universal Windows Platform (UWP) con alguna

inicialización especial.

Edit > Project Properties

Page 50: dotNetMálaga 2017 - Taller Hololens con Wave Engine

A nivel visual el usuario DEBE tener feedback.

Normalmente esto se consigue con

indicadores visuales. En Wave Engine

contamos con el behavior GazeBehavior para

este objetivo junto a GazeCollider.

Estados:

• Undetected

• Ready

• AirTap

Page 51: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Todos los gestos de HoloLens están disponibles a través del

servicio SpatialInputService. Por lo tanto, para empezar a

interactuar con los gestos, es necesario registrar ese

servicio. Esto se suele hacer en Game.cs

WaveServices.RegisterService(new SpatialInputService());

Page 52: dotNetMálaga 2017 - Taller Hololens con Wave Engine

var spatialInput = WaveServices.GetService<SpatialInputService>();

if (spatialInput.IsConnected){var state = spatialInputService.SpatialState;if (state.IsSelected){// Do an action while the Select gesture is active

}}

Page 53: dotNetMálaga 2017 - Taller Hololens con Wave Engine

La voz es una forma importante de entrada en HoloLens.

Le permite dirigir directamente un holograma sin depender

de los gestos. Sólo necesitas…hablar.

Estas funciones se exponen en

KeywordRecognizerService. Para comenzar a interactuar

con comandos de voz, se debe registrar el servicio. Esto se

suele hacer en Game.cs:WaveServices.RegisterService(new KeywordRecognizerService());

Page 54: dotNetMálaga 2017 - Taller Hololens con Wave Engine

var keywordService = WaveServices.GetService<KeywordRecognizerService>();

if (keywordService.IsConnected){// 1. Sets the keywordsthis.keywordService.Keywords = new string[] { "Begin Action", "End Action" };

// 2. Start voice recognitionthis.keywordService.Start();

// 3. That event is fired when a specified keyword is recognizedthis.keywordService.OnKeywordRecognized += this.OnKeywordRecognized;

}

Page 55: dotNetMálaga 2017 - Taller Hololens con Wave Engine

// This method is fired when a keyword is recognizedprivate void OnKeywordRecognized (KeywordRecognizerResult result){switch (result.Text){case “Test":// Begin the actionbreak;

}}

Page 56: dotNetMálaga 2017 - Taller Hololens con Wave Engine

DEMODEMODEMO

App desde cero paso a paso

Page 57: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Preguntas y respuestas.

¿Dudas?

&

Page 58: dotNetMálaga 2017 - Taller Hololens con Wave Engine

Gracias!

Page 59: dotNetMálaga 2017 - Taller Hololens con Wave Engine