Cámara en UnityCamera in Unity

Cuando se gasta un auricular de realidad mixta, se convierte en el centro del mundo holográfica.When you wear a mixed reality headset, it becomes the center of your holographic world. El componente de cámara Unity controlará automáticamente la representación de Stereoscopic y seguirá el movimiento y la rotación del cabezal.The Unity Camera component will automatically handle stereoscopic rendering and follow your head movement and rotation. 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.However, to fully optimize visual quality and hologram stability, you should set the camera settings described below.

ConfigurarSetup

  1. Vaya a la sección otras opciones de configuración del reproductor de la tienda Windows .Go to Other Settings section of the Windows Store Player Settings
  2. Elija Windows Mixed Reality como el dispositivo, que puede aparecer como Windows Holographic en versiones anteriores de Unity.Choose Windows Mixed Reality as the device, which may be listed as Windows Holographic in older versions of Unity
  3. Seleccionar realidad virtual compatibleSelect Virtual Reality Supported

Nota

Esta configuración debe aplicarse a la cámara en cada escena de la aplicación.These settings need to be applied to the Camera in each scene of your app.

De forma predeterminada, cuando se crea una nueva escena en Unity, contiene una cámara principal GameObject en la jerarquía que incluye el componente de cámara, pero no tiene la configuración que se aplica correctamente.By default, when you create a new scene in Unity, it will contain a Main Camera GameObject in the Hierarchy which includes the Camera component, but does not have the settings below properly applied.

Auriculares holográfica frente a auriculares envolventeHolographic vs. immersive headsets

La configuración predeterminada del componente de cámara Unity es para las aplicaciones 3D tradicionales, que necesitan un fondo similar a SkyBOX, ya que no tienen un mundo real.The default settings on the Unity Camera component are for traditional 3D applications, which need a skybox-like background as they don't have a real world.

  • Cuando se ejecuta en un auricular envolvente, está representando todo lo que ve el usuario y, por lo tanto, es probable que quiera mantener el skybox.When running on an immersive headset, you're rendering everything the user sees, and so you'll likely want to keep the skybox.
  • Sin embargo, cuando se ejecuta en un casco holográfica como HoloLens, el mundo real debe aparecer detrás de todo lo que se representa en la cámara.However, when running on a holographic headset like HoloLens, the real world should appear behind everything the camera renders. Establezca el fondo de la cámara para que sea transparente (en HoloLens, las representaciones en negro como transparente) en lugar de una textura SKYBOX:Set the camera background to be transparent (in HoloLens, black renders as transparent) instead of a Skybox texture:
    1. Seleccionar la cámara principal en el panel de jerarquíasSelect the Main Camera in the Hierarchy panel
    2. En el panel Inspector, busque el componente Camera y cambie la lista desplegable Clear flags de SKYBOX a Solid color.In the Inspector panel, find the Camera component and change the Clear Flags dropdown from Skybox to Solid Color
    3. Seleccione el selector de colores de fondo y cambie los valores RGBA a (0, 0, 0, 0)Select the Background color picker and change the RGBA values to (0, 0, 0, 0)

Puede usar el código de script para determinar en tiempo de ejecución si el casco es inmersivo o Holographic comprobando HolographicSettings. IsDisplayOpaque.You can use script code to determine at runtime whether the headset is immersive or holographic by checking HolographicSettings.IsDisplayOpaque.

Posicionamiento de la cámaraPositioning the Camera

Es más fácil diseñar la aplicación si se imagina la posición inicial del usuario como (X: 0, Y: 0, Z: 0).It will be easier to lay out your app if you imagine the starting position of the user as (X: 0, Y: 0, Z: 0). Dado que la cámara principal está realizando el seguimiento del movimiento del usuario, la posición inicial del usuario se puede establecer estableciendo la posición inicial de la cámara principal.Since the Main Camera is tracking movement of the user's head, the starting position of the user can be set by setting the starting position of the Main Camera.

  1. Seleccionar cámara principal en el panel jerarquíaSelect Main Camera in the Hierarchy panel

  2. En el panel Inspector, busque el componente de transformación y cambie la posición de (X: 0, Y: 1, Z:-10) a (X: 0, Y: 0, Z: 0)In the Inspector panel, find the Transform component and change the Position from (X: 0, Y: 1, Z: -10) to (X: 0, Y: 0, Z: 0)

    Cámara en el panel del inspector en UnityCamera in the Inspector pane in Unity
    Cámara en el panel del inspector en UnityCamera in the Inspector pane in Unity

Planos de recortesClip planes

La representación de contenido demasiado cercana al usuario puede resultar incómodo en la realidad mixta.Rendering content too close to the user can be uncomfortable in mixed reality. Puede ajustar los planos de clips cercanos y alejados en el componente de cámara.You can adjust the near and far clip planes on the Camera component.

  1. Seleccionar la cámara principal en el panel de jerarquíasSelect the Main Camera in the Hierarchy panel
  2. En el panel Inspector, busque los planos de recorte del componente de cámara y cambie el cuadro de texto Near de 0,3 a 0,85.In the Inspector panel, find the Camera component Clipping Planes and change the Near textbox from 0.3 to 0.85. El contenido representado aún más cerca puede dar lugar a la molestia del usuario y debe evitarse según las directrices de distancia de representación.Content rendered even closer can lead to user discomfort and should be avoided per the render distance guidelines.

Varias cámarasMultiple Cameras

Cuando hay varios componentes de cámara en la escena, Unity sabe qué cámara usar para la representación de Stereoscopic y el seguimiento de encabezado en función de qué GameObject tiene la etiqueta MainCamera.When there are multiple Camera components in the scene, Unity knows which camera to use for stereoscopic rendering and head tracking based on which GameObject has the MainCamera tag.

Recentro de una experiencia sentadaRecentering a seated experience

Si va a crear una experiencia de escalado original, puede volver a centrar el origen mundial de Unity en la posición principal del usuario mediante una llamada a XR. Método InputTracking. recenter .If you're building a seated-scale experience, you can recenter Unity's world origin at the user's current head position by calling the XR.InputTracking.Recenter method.

Modos de ReproyecciónReprojection modes

Tanto HoloLens como los auriculares envolventes se reproyectan en cada fotograma que representa la aplicación para ajustarse a cualquier predicción de la posición principal real del usuario cuando se emiten las fotos.Both HoloLens and immersive headsets will reproject each frame your app renders to adjust for any misprediction of the user's actual head position when photons are emitted.

De manera predeterminada:By default:

  • Los auriculares envolventes se encargarán de la Reproyección posicional si la aplicación proporciona un búfer de profundidad para un fotograma determinado.Immersive headsets will take care of positional reprojection if the app provides a depth buffer for a given frame. Los auriculares envolventes también ajustarán los hologramas para una predicción inesperada en la posición y la orientación.Immersive headsets will also adjust your holograms for misprediction in both position and orientation. Si no se proporciona un búfer de profundidad, el sistema solo corregirá errores de predicciones en la orientación.If a depth buffer isn't provided, the system will only correct mispredictions in orientation.
  • Los auriculares holográficas como HoloLens se encargarán de la Reproyección posicional si la aplicación proporciona su búfer de profundidad o no.Holographic headsets like HoloLens will take care of positional reprojection whether the app provides its depth buffer or not. La Reproyección posicional es posible sin búferes de profundidad en HoloLens, ya que la representación suele ser dispersa con un fondo estable proporcionado por el mundo real.Positional reprojection is possible without depth buffers on HoloLens as rendering is often sparse with a stable background provided by the real world.

Si sabe que está creando una experiencia de solo orientación con contenido rígidomente bloqueado por el cuerpo (por ejemplo, contenido de vídeo de 360 grados), puede establecer explícitamente el modo de Reproyección en Orientation solo estableciendo HolographicSettings. ReprojectionMode en HolographicReprojectionMode. OrientationOnly.If you know that you're building an orientation-only experience with rigidly body-locked content (for example, 360-degree video content), you can explicitly set the reprojection mode to orientation only by setting HolographicSettings.ReprojectionMode to HolographicReprojectionMode.OrientationOnly.

Uso compartido de los búferes de profundidad con WindowsSharing your depth buffers with Windows

Compartir el búfer de profundidad de la aplicación en Windows cada fotograma proporcionará a la aplicación una de estas dos aumentos en la estabilidad del holograma, en función del tipo de casco que se está representando:Sharing your app's depth buffer to Windows each frame will give your app one of two boosts in hologram stability, based on the type of headset you're rendering for:

  • Los auriculares envolventes pueden encargarse de la Reproyección posicional cuando se proporciona un búfer de profundidad, ajustando los hologramas para una predicción inesperada en la posición y la orientación.Immersive headsets can take care of positional reprojection when a depth buffer is provided, adjusting your holograms for misprediction in both position and orientation.
  • Los auriculares holográficas tienen varios métodos diferentes.Holographic headsets have a few different methods. 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 intersecta el mayor contenido.HoloLens 1 will automatically select a focus point when a depth buffer is provided, optimizing hologram stability along the plane that intersects the most content. HoloLens 2 estabilizará el contenido mediante LSR de profundidad (vea la sección comentarios).HoloLens 2 will stabilize content using Depth LSR (see Remarks).

Para establecer si la aplicación de Unity proporcionará un búfer de profundidad a Windows:To set whether your Unity app will provide a depth buffer to Windows:

  1. Vaya a Editar > configuración de proyecto > reproductor > plataforma universal de Windows pestaña > XR configuración.Go to Edit > Project Settings > Player > Universal Windows Platform tab > XR Settings.
  2. Expanda el elemento SDK de Windows Mixed Reality .Expand the Windows Mixed Reality SDK item.
  3. Active o desactive la casilla Habilitar uso compartido del búfer de profundidad .Check or uncheck the Enable Depth Buffer Sharing check box. La opción Habilitar el uso compartido de búfer de profundidad está activada de forma predeterminada en los proyectos nuevos, ya que esta característica se ha agregado a Unity y se desactivará de forma predeterminada para los proyectos anteriores que se actualizaron.Enable Depth Buffer Sharing is checked by default in new projects, since this feature was added to Unity and will be unchecked by default for older projects that were upgraded.

Un búfer de profundidad puede mejorar la calidad visual, siempre y cuando Windows pueda asignar con precisión los valores normalizados de profundidad por píxel en el búfer de profundidad a distancias en metros, con los planos cercanos y lejanos que haya establecido en Unity en la cámara principal.A depth buffer can improve visual quality so long as Windows can accurately map the normalized per-pixel depth values in your depth buffer back to distances in meters, using the near and far planes you've set in Unity on the main camera. Si las pasadas de representación controlan los valores de profundidad de maneras típicas, generalmente debería estar bien aquí, aunque las pasadas de representación translúcidas que escriben en el búfer de profundidad mientras se muestran a los píxeles de color existentes pueden confundir la Reproyección.If your render passes handle depth values in typical ways, you should generally be fine here, though translucent render passes that write to the depth buffer while showing through to existing color pixels can confuse the reprojection. Si sabe que las fases de representación van a dejar muchos de los píxeles de profundidad finales con valores de profundidad inexactos, es probable que obtenga una mejor calidad visual si desactiva "habilitar el uso compartido del búfer de profundidad".If you know that your render passes will leave many of your final depth pixels with inaccurate depth values, you are likely to get better visual quality by unchecking "Enable Depth Buffer Sharing".

Configuración automática de escenas y cámaras con el kit de herramientas de realidad mixtaAutomatic Scene and Camera Setup with Mixed Reality Toolkit

Siga la guía paso a paso para agregar el kit de herramientas de realidad mixta al proyecto de Unity y se configurará el proyecto automáticamente.Follow the step-by-step guide to add Mixed Reality Toolkit to your Unity project and it will configure your project automatically. También puede configurar manualmente el proyecto sin MRTK con la guía de la sección siguiente.You can also manually configure the project without MRTK with the guide in the section below.

Siguiente punto de control de desarrolloNext Development Checkpoint

Si está siguiendo el viaje de desarrollo de Unity que hemos diseñado, está a la mitad de explorar los bloques de creación principales de MRTK.If you're following the Unity development journey we've laid out, you're in the midst of exploring the MRTK core building blocks. Desde aquí, puede continuar con el siguiente bloque de compilación:From here, you can continue to the next building block:

O bien puede saltar a las funcionalidades y las API de la plataforma de realidad mixta:Or jump to Mixed Reality platform capabilities and APIs:

Puede volver a los puntos de control de desarrollo de Unity en cualquier momento.You can always go back to the Unity development checkpoints at any time.

Consulte tambiénSee also