Configuración de la cámara en Unity

Cuando usas un casco de realidad mixta, se convierte en el centro de tu mundo holográfico. El componente Cámara de Unity controlará automáticamente la representación estereoscópica y seguirá el movimiento y la rotación de la cabeza. Sin embargo, para optimizar completamente la calidad visual y la estabilidad del holograma, debe establecer la configuración de la cámara que se describe a continuación.

Cascos envolventes de HoloLens frente a VR

La configuración predeterminada en el componente cámara de Unity es para las aplicaciones 3D tradicionales, que necesitan un fondo similar a skybox, ya que no tienen un mundo real.

  • Cuando se ejecuta en un casco envolvente, está representando todo lo que ve el usuario, por lo que es probable que quiera mantener el skybox.
  • Sin embargo, cuando se ejecuta en un casco holográfico como HoloLens, el mundo real debería aparecer detrás de todo lo que representa la cámara. Establezca el fondo de la cámara para que sea transparente (en HoloLens, el negro se representa como transparente) en lugar de una textura de Skybox:
    1. Seleccione la cámara principal en el panel Jerarquía.
    2. En el panel Inspector, busque el componente Cámara y cambie la lista desplegable Borrar marcas de Skybox a Color sólido.
    3. Seleccione el selector de colores de fondo y cambie los valores RGBA a (0, 0, 0, 0)
      1. Si establece esto desde el código, puede usar unity. Color.clear

MRTK controlará automáticamente la configuración específica de la cámara, en función de la configuración del perfil del sistema de cámara.

Espacio de nombres:Microsoft.MixedReality.Toolkit.CameraSystem
Type:MixedRealityCameraSystem

Para comprobar la opacidad de la cámara, el sistema MixedRealityCamera tiene una IsOpaque propiedad .

CoreServices.CameraSystem.IsOpaque;

Instalación de cámara

Sea cual sea el tipo de experiencia que desarrolle, la cámara principal siempre es el componente de representación estéreo principal conectado a la pantalla montada en la cabeza del dispositivo. Será más fácil diseñar la aplicación si imaginas la posición inicial del usuario como (X: 0, Y: 0, Z: 0). Puesto que la cámara principal está realizando el seguimiento del movimiento de la cabeza del usuario, la posición inicial del usuario se puede establecer estableciendo la posición inicial de la cámara principal.

La elección central que debe hacer es si está desarrollando para cascos envolventes de HoloLens o VR. Una vez que lo tenga, vaya a la sección de configuración que se aplique.

Configuración de la cámara de HoloLens

En el caso de las aplicaciones de HoloLens, debe usar delimitadores para los objetos que quiera bloquear en el entorno de la escena. Se recomienda usar espacio sin enlazar para maximizar la estabilidad y crear anclajes en varias salas.

Siga este tutorial paso a paso para agregar y configurar automáticamente Mixed Reality Toolkit en el proyecto de Unity. También es posible trabajar directamente con la clase MixedRealityPlayspace de MRTK para Unity y establecer la escala de destino en Mundo:

Ventana de configuración de MRTK

MRTK debe controlar la posición del espacio de reproducción y la cámara automáticamente, pero es bueno comprobarlo de nuevo:

Espacio de reproducción de MRTK

  1. En el panel Jerarquía , expanda mixedRealityPlayspace GameObject y busque el objeto secundario Cámara principal .
  2. En el panel Inspector , busque el componente Transformar y cambie la posición a (X: 0, Y: 0, Z: 0)

Configuración de la cámara vr

Windows Mixed Reality admite aplicaciones en una amplia gama de escalas de experiencia, desde aplicaciones de solo orientación y de escalado vertical a través de aplicaciones a escala de sala. En HoloLens, puede ir más allá y crear aplicaciones a escala mundial que permitan a los usuarios caminar más allá de 5 metros, explorar un piso completo de un edificio y más allá.

El primer paso para crear una experiencia de realidad mixta en Unity es determinar qué experiencia escalará la aplicación:

Experiencias de escala de sala o de pie

Nota

Si va a compilar para HL2, se recomienda crear una experiencia de nivel ocular o considerar el uso de Scene Understanding para razonar sobre el piso de la escena.

Use la clase MixedRealityPlayspace de MRTK para Unity y establezca la escala de destino en Room o Standing:

Ventana de configuración de MRTK

MRTK debe controlar la posición del espacio de reproducción y la cámara automáticamente, pero es bueno comprobarlo de nuevo:

Espacio de reproducción de MRTK

  1. En el panel Jerarquía , expanda mixedRealityPlayspace GameObject y busque el objeto secundario Cámara principal .
  2. En el panel Inspector , busque el componente Transformar y cambie la posición a (X: 0, Y: 0, Z: 0)

Experiencias sentados

Use la clase MixedRealityPlayspace de MRTK para Unity y establezca la escala de destino en Sentado:

Ventana de configuración de MRTK

MRTK debe controlar la posición del espacio de reproducción y la cámara automáticamente, pero es bueno volver a comprobar:

Espacio de reproducción de MRTK

  1. En el panel Hierarchy (Jerarquía ), expanda mixedRealityPlayspace GameObject y busque el objeto secundario Cámara principal .
  2. En el panel Inspector , busque el componente Transformar y cambie la posición a (X: 0, Y: 0, Z: 0)

Configuración del fondo de la cámara

Si usa MRTK, el fondo de la cámara se configura y administra automáticamente. Para los proyectos de XR SDK o WSA heredado, se recomienda establecer el fondo de la cámara en negro sólido en HoloLens y mantener el skybox para VR.

Uso de varias cámaras

Cuando hay varios componentes de cámara en la escena, Unity sabe qué cámara usar para la representación estereoscópica en función de la cual GameObject tiene la etiqueta MainCamera. En XR heredado, también usa esta etiqueta para sincronizar el seguimiento de encabezados. En el SDK de XR, el seguimiento de la cabeza se controla mediante un script TrackedPoseDriver asociado a la cámara.

Uso compartido de búferes de profundidad

Compartir el búfer de profundidad de la aplicación en Windows cada fotograma dará a la aplicación uno de los dos aumentos en la estabilidad del holograma, en función del tipo de casco para el que se representa:

  • Los cascos envolventes de VR pueden encargarse de la reproyecto posicional cuando se proporciona un búfer de profundidad, ajustando los hologramas para que se produzcan errores de preparación tanto en posición como en orientación.
  • Los cascos holoLens tienen algunos métodos diferentes. HoloLens 1 seleccionará automáticamente un punto de enfoque cuando se proporcione un búfer de profundidad, optimizando la estabilidad del holograma a lo largo del plano que interseca el contenido más. HoloLens 2 estabilizará el contenido mediante el LSR de profundidad (consulte los comentarios).

El cuadro de diálogo de configuración de MRTK intentará establecer la configuración del búfer de profundidad para el SDK de XR y WSA heredado, pero es bueno comprobar esas pestañas y comprobar la configuración en Unity.

Uso de planos de recorte

La representación del contenido demasiado cerca del usuario puede resultar incómodo en la realidad mixta. Puedes ajustar los planos de clip cercanos y lejanos en el componente Cámara.

  1. Seleccione la cámara principal en el panel Jerarquía .
  2. En el panel Inspector , busque el componente CámaraRecorte planos y cambie el cuadro de texto Near de 0.3 a 0.85. El contenido representado aún más cerca puede provocar molestias del usuario y debe evitarse según las directrices de distancia de representación.

Recentering the camera (Recientes de la cámara)

Si va a crear una experiencia de escalado sentado, puede obtener el origen mundial de Unity más reciente en la posición principal actual del usuario mediante una llamada a la XR. Método InputTracking.Recenter en XR heredado o en el método XRInputSubsystem.TryRecenter en el SDK de XR.

Teleportabilidad

Esta característica se reserva normalmente para las experiencias de VR:

MRTK proporciona un sistema de teletransporte integrado que funciona automáticamente en manos y controladores articulados.

Modos de reproyecto

Tanto HoloLens como cascos envolventes volverán a crear cada fotograma que se represente la aplicación para ajustarse a cualquier preparación incorrecta de la posición real de la cabeza del usuario cuando se emiten fotones.

De manera predeterminada:

  • Los cascos envolventes de VR se encargarán de la reproyecto posicional si la aplicación proporciona un búfer de profundidad para un fotograma determinado. Los cascos envolventes también ajustarán los hologramas para que se produzcan errores de posición y orientación. Si no se proporciona un búfer de profundidad, el sistema solo corregirá errores de referencia en la orientación.
  • Los cascos holográficos como HoloLens 2 se encargarán de la reproyecto posicional tanto si la aplicación proporciona su búfer de profundidad como si no. La reproyecto posicional es posible sin búferes de profundidad en HoloLens, ya que la representación suele dispersarse con un fondo estable proporcionado por el mundo real.

MRTK no tiene actualmente asistentes para el modo de reproyecto. Consulte una de las otras pestañas para obtener más información.

Siguiente punto de control de desarrollo

Si sigue el recorrido de desarrollo de Unity que hemos diseñado, está en medio de explorar los bloques de creación principales de MRTK. Desde aquí, puede continuar con el siguiente bloque de compilación:

O bien puede saltar a las funcionalidades y las API de la plataforma de realidad mixta:

Puede volver a los puntos de control de desarrollo de Unity en cualquier momento.

Consulte también