Configuración de la cámara en Unity

Cuando se usa un casco de realidad mixta, se convierte en el centro de su mundo holográfico. El componente cámara de Unity controlará automáticamente la representación estereomática 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.

HoloLens frente a cascos envolventes 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, se representa 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 debe 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 skybox:
    1. Selección de la cámara principal en el panel Jerarquía
    2. En el panel Inspector, busque el componente Camera (Cámara) y cambie la lista desplegable Clear Flags (Borrar marcas) de Skybox a Solid Color (Color sólido).
    3. Seleccione el selector color de fondo y cambie los valores RGBA a (0, 0, 0, 0)
      1. Si establece esto desde el código, puede usar el de 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 la cámara.

Espacio de nombres: Microsoft.MixedReality.Toolkit. CameraSystem
Tipo: 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 crear la aplicación si se imagine que la posición inicial del usuario es (X: 0, Y: 0, Z: 0). Puesto que la cámara principal está haciendo un 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 opción central que debe tomar es si está desarrollando para cascos envolventes HoloLens vr. Una vez que lo haya hecho, vaya a la sección de configuración que se aplique.

HoloLens configuración de la cámara

Para HoloLens aplicaciones, debe usar delimitadores para los objetos que quiera bloquear en el entorno de 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 juego y la cámara automáticamente, pero es bueno comprobarlo de nuevo:

Espacio de juego de MRTK

  1. En el panel Jerarquía, expanda el objeto GameObject MixedRealityPlayspace 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 aplicaciones a través de una amplia gama de escalasde experiencia, desde aplicaciones de solo orientación y de escala asentada hasta aplicaciones de escala de sala. En HoloLens, puede ir más allá y crear aplicaciones a escala mundial que permiten a los usuarios recorrer más de 5 metros, explorando toda la planta de un edificio y más allá.

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

Experiencias a escala de habitación o permanentes

Nota

Si va a crear para HL2, se recomienda crear una experiencia de nivel de ojo o usar Scene Understanding para razonar sobre el suelo 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 juego y la cámara automáticamente, pero es bueno comprobarlo de nuevo:

Espacio de reproducción de MRTK

  1. En el panel Hierarchy (Jerarquía), expanda MixedRealityPlayspace GameObject y busque el objeto secundario Main Camera (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 de sentado

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

Ventana de configuración de MRTK

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

Espacio de juego de MRTK

  1. En el panel Jerarquía, expanda el objeto GameObject MixedRealityPlayspace 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. En el caso del SDK de XR o los proyectos WSA heredados, 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 camera en la escena, Unity sabe qué cámara usar para la representación estereomática en función de qué 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 realiza mediante un script TrackedPoseDriver conectado a la cámara.

Uso compartido de búferes de profundidad

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

  • Los cascos envolventes de REALIDAD virtual pueden encargarse de la reproducción posicional cuando se proporciona un búfer de profundidad, ajustando los hologramas para que se despredicúen tanto en posición como en orientación.
  • HoloLens cascos tienen algunos métodos diferentes. HoloLens 1 seleccionará automáticamente un punto de enfoque cuando se proporciona un búfer de profundidad, lo que optimiza la estabilidad del holograma a lo largo del plano que forma una intersección con la mayor parte del contenido. HoloLens 2 estabilizará el contenido mediante LSR de profundidad (vea 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 de contenido demasiado cerca del usuario puede no estar incomodable en la realidad mixta. Puede ajustar los planos de recorte cercanos y lejanos en el componente Cámara.

  1. Selección de la cámara principal en el panel Jerarquía
  2. En el panel Inspector, busque el componente de cámara Planes de recorte y cambie el cuadro de texto Cerca de 0,3 a 0,85. El contenido representado aún más cerca puede provocar molestias en el usuario y debe evitarse según las directrices de distancia de representación.

Reciente de la cámara

Si va acrear una experiencia de escala asentada, puede hacer más reciente el origen del mundo de Unity en la posición principal actual del usuario mediante una llamada a la XR. Método InputTracking.Recenter en XR heredado o el método XRInputSubsystem.TryRecenter en el SDK de XR.

Teleportabilidad

Esta característica se reserva normalmente para experiencias de realidad virtual:

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

Modos de reproducción

Tanto HoloLens como los cascos envolventes volverán a proyectar cada fotograma que representa la aplicación para ajustarse a cualquier interpretación errónea de la posición de la cabeza real del usuario cuando se emiten fotones.

De manera predeterminada:

  • Los cascos envolventes vr se encargan de la reproducción 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 despredicúen tanto en la posición como en la orientación. Si no se proporciona un búfer de profundidad, el sistema solo corregirá las interpretaciones erróneas en la orientación.
  • Los cascos holográficos como HoloLens 2 se ocuparán de la reproducción posicional tanto si la aplicación proporciona su búfer de profundidad como si no. La reproducción posicional es posible sin búferes de profundidad en HoloLens, ya que la representación a menudo es dispersa con un fondo estable proporcionado por el mundo real.

MRTK no tiene actualmente asistentes para el modo de reproducción. 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, se encuentra en medio de la exploración de 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