Compartir a través de


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 De cámara 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 de 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 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 color de fondo y cambie los valores RGBA a (0, 0, 0, 0, 0)
      1. Si establece esto desde el código, puede usar unity. Color.clear

MRTK controlará automáticamente la configuración de la cámara específica, en función de la configuración del perfil del sistema de 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;

Configuración de la cámara

Sea cual sea el tipo de experiencia que esté desarrollando, la cámara principal es siempre el componente principal de representación estéreo 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 un seguimiento del movimiento de la cabeza del usuario, se puede establecer la posición inicial del usuario estableciendo la posición inicial de la cámara principal.

La elección central que debes hacer es si estás 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 anclajes 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 comprobar lo siguiente:

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 salas. 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, explorando todo un piso de un edificio y más allá.

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

Experiencias de escala o de pie de sala

Nota:

Si va a compilar para HL2, se recomienda crear una experiencia de nivel de ojo 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 comprobar lo siguiente:

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 sentadas

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 comprobar lo siguiente:

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 del fondo de la cámara

Si usa MRTK, el fondo de la cámara se configura y administra automáticamente. En el caso de los proyectos del SDK de XR 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 la cabeza. 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 proporcionará 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 ocuparse de la reprotección posicional cuando se proporciona un búfer de profundidad, ajustando los hologramas para evitar errores de posición y 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 LSR de profundidad (consulte 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 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ámara Clipping Planos y cambie el cuadro de texto Near (Cerca) de 0.3 a 0.85. El contenido representado más cerca puede provocar molestias del usuario y debe evitarse según las directrices de distancia de representación.

Recentering the camera (Recentering the camera)

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 llamando 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 experiencias de VR:

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

Modos de reproyecto

Tanto HoloLens como cascos envolventes volverán a crear cada fotograma que tu aplicación represente para ajustar cualquier falta de preparación 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 evitar errores de posición y orientación. Si no se proporciona un búfer de profundidad, el sistema solo corregirá errores en la orientación.
  • Los cascos holográficos como HoloLens 2 se encargarán de la reproyecto posicional si la aplicación proporciona su búfer de profundidad o no. La reproyecto posicional es posible sin búferes de profundidad en HoloLens, ya que la representación suele estar dispersa con un fondo estable proporcionado por el mundo real.

MRTK no tiene asistentes actualmente 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 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