OpenXROpenXR

OpenXR logo

O OpenXR é um padrão de API livre de royalties aberto da Khronos, fornecendo aos mecanismos acesso nativo a uma variedade de dispositivos em todo o espectro de realidade misturada.OpenXR is an open royalty-free API standard from Khronos, providing engines with native access to a range of devices across the mixed reality spectrum.

Faça o desenvolvimento com o OpenXR em um headset imersivo do HoloLens 2 ou do Windows Mixed Reality na área de trabalho.You can develop using OpenXR on a HoloLens 2 or Windows Mixed Reality immersive headset on the desktop. Se você não tiver acesso a um headset, poderá usar o emulador do HoloLens 2 ou o simulador de realidade mista do Windows.If you don't have access to a headset, you can use the HoloLens 2 Emulator or the Windows Mixed Reality Simulator instead.

Por que OpenXR?Why OpenXR?

Com o OpenXR, você pode criar mecanismos destinados a dispositivos Holographic, como o HoloLens 2 e dispositivos de imersão, como headsets de realidade mista do Windows para PCs desktop.With OpenXR, you can build engines that target both holographic devices, like HoloLens 2, and immersive devices, like Windows Mixed Reality headsets for desktop PCs. O OpenXR permite que você escreva código depois de ser portátil em uma ampla gama de plataformas de hardware.OpenXR lets you write code once that's then portable across a wide range of hardware platforms.

A API OpenXR usa um carregador para conectar seu aplicativo diretamente ao suporte de plataforma nativa do headset.The OpenXR API uses a loader to connect your application directly to your headset's native platform support. Os usuários finais obtêm desempenho máximo e latência mínima, se estiverem usando uma realidade mista do Windows ou qualquer outro headset.End users get maximum performance and minimum latency, whether they're using a Windows Mixed Reality or any other headset.

O que é o OpenXR?What is OpenXR?

A API OpenXR fornece a previsão de pose principal, o tempo de quadro e a funcionalidade de entrada espacial que você precisará para criar um mecanismo que possa ter como alvo os dispositivos Holographic e imersiva.The OpenXR API provides the core pose prediction, frame timing, and spatial input functionality you'll need to build an engine that can target both holographic and immersive devices.

Para saber mais sobre a API do OpenXR, confira a especificaçãodo OpenXR 1,0, a referência de APIe o Guia de referência rápida.To learn about the OpenXR API, check out the OpenXR 1.0 specification, API reference, and quick reference guide. Para obter mais informações, consulte a página Khronos OpenXR.For more information, see the Khronos OpenXR page.

Para direcionar o conjunto de recursos completo do HoloLens 2, você também usará extensões de OpenXR específicas de fornecedor e de fornecedor que habilitam recursos adicionais além do OpenXR 1,0 Core, como controle de mão articulado, acompanhamento de olho, mapeamento espacial e âncoras espaciais.To target the full feature set of HoloLens 2, you'll also use cross-vendor and vendor-specific OpenXR extensions that enable additional features beyond the OpenXR 1.0 core, such as articulated hand tracking, eye tracking, spatial mapping, and spatial anchors. Para obter mais informações, consulte a seção de roteiro abaixo sobre as extensões lançadas no futuro neste ano.For more information, see the Roadmap section below on the extensions coming later this year.

O OpenXR não é, em si, um mecanismo de realidade misturada.OpenXR isn't itself a mixed reality engine. Em vez disso, o OpenXR permite que mecanismos como Unity e inreais gravem código portátil uma vez que possam acessar os recursos da plataforma nativa do dispositivo Holographic ou de imersão do usuário, qualquer fornecedor que tenha criado essa plataforma.Instead, OpenXR enables engines like Unity and Unreal to write portable code once that can then access the native platform features of the user's holographic or immersive device, whatever vendor built that platform.

RoteiroRoadmap

A especificação OpenXR define um mecanismo de extensão que permite que implementadores de tempo de execução exponham funcionalidades adicionais além dos principais recursos definidos na especificação OpenXR 1,0 base.The OpenXR specification defines an extension mechanism that enables runtime implementers to expose additional functionality beyond the core features defined in the base OpenXR 1.0 specification.

Há três tipos de extensões OpenXR:There are three kinds of OpenXR extensions:

  • Extensões de fornecedor (por exemplo, MSFT ): habilita a inovação por fornecedor em recursos de hardware ou software.Vendor extensions (for example, MSFT): Enables per-vendor innovation in hardware or software features. Qualquer fornecedor de tempo de execução pode introduzir e enviar uma extensão de fornecedor a qualquer momento.Any runtime vendor can introduce and ship a vendor extension at any time.
    • Extensões experimentais do fornecedor (por exemplo, MSFT_preview ): extensões experimentais do fornecedor sendo visualizadas para coletar comentários.Experimental vendor extensions (for example, MSFT_preview): Experimental vendor extensions being previewed to gather feedback. MSFT_preview as extensões são apenas para dispositivos de desenvolvedor e serão removidas quando a extensão real for entregue.MSFT_preview extensions are for developer devices only and will be removed when the real extension ships. Para experimentá-los, você pode habilitar as extensões de visualização em seu dispositivo de desenvolvedor.To experiment with them, you can enable preview extensions on your developer device.
  • Extensões entre fornecedores EXT : extensões entre fornecedores que várias empresas definem e implementam.Cross-vendor EXT extensions: Cross-vendor extensions that multiple companies define and implement. Grupos de empresas interessadas podem introduzir extensões EXT a qualquer momento.Groups of interested companies can introduce EXT extensions at any time.
  • KHR Extensões oficiais: extensões Khronos oficiais ratificadas como parte de uma versão de especificação principal.Official KHR extensions: Official Khronos extensions ratified as part of a core spec release. As extensões KHR são cobertas pela mesma licença que a principal espec.KHR extensions are covered by the same license as the core spec itself.

A partir de julho de 2020, o tempo de execução do Windows Mixed Reality OpenXR dá suporte a um conjunto de MSFT EXT extensões e que traz o conjunto completo de recursos do HoloLens 2 para aplicativos OpenXR:As of July 2020, the Windows Mixed Reality OpenXR Runtime supports a set of MSFT and EXT extensions that brings the full set of HoloLens 2 features to OpenXR applications:

Área do recursoFeature area Disponibilidade da extensãoExtension availability
Sistemas + sessõesSystems + sessions Especificação de núcleo do OpenXR 1,0:OpenXR 1.0 core spec:
XrInstance, XrSystemId, XrSessionXrInstance, XrSystemId, XrSession
Espaços de referência (exibição, local, estágio)Reference spaces (view, local, stage) Especificação de núcleo do OpenXR 1,0:OpenXR 1.0 core spec:
XrSpace
Exibir configurações (mono, estéreo)View configurations (mono, stereo) Especificação de núcleo do OpenXR 1,0:OpenXR 1.0 core spec:
XrView...
Permuta + cronometragem do quadroSwapchains + frame timing Especificação de núcleo do OpenXR 1,0:OpenXR 1.0 core spec:
XrSwapchain... + xrWaitFrame
Camadas de composiçãoComposition layers
(projeção, Quad)(projection, quad)
Especificação de núcleo do OpenXR 1,0:OpenXR 1.0 core spec:
XrCompositionLayer... + xrEndFrame
Entrada e hapticsInput and haptics Especificação de núcleo do OpenXR 1,0:OpenXR 1.0 core spec:
XrAction...
Integração do Direct3D 11Direct3D 11 integration KHRExtensão oficial liberada:Official KHR extension released:
XR_KHR_D3D11_enable
Integração do Direct3D 12Direct3D 12 integration KHRExtensão oficial liberada:Official KHR extension released:
XR_KHR_D3D12_enable
Espaço de referência não associado
(experiências de escala mundial)
Unbounded reference space
(world-scale experiences)
MSFT extensão liberada:MSFT extension released:
XR_MSFT_unbounded_reference_space
Âncoras espaciaisSpatial anchors MSFT extensão liberada:MSFT extension released:
XR_MSFT_spatial_anchor
Interação manual
(alça/AIM pose, Air-TAP, segure)
Hand interaction
(grip/aim pose, air-tap, grasp)

Somente HoloLens 2HoloLens 2 only

MSFT extensão liberada:MSFT extension released:
XR_MSFT_hand_interaction
Mão Articulation + malha à mãoHand articulation + hand mesh

Somente HoloLens 2HoloLens 2 only

EXT extensão liberada no tempo de execução 102:EXT extension released in runtime 102:
XR_EXT_hand_tracking

MSFT extensão liberada no tempo de execução 102:MSFT extension released in runtime 102:
XR_MSFT_hand_tracking_mesh
Foco com o olharEye gaze

Somente HoloLens 2HoloLens 2 only

EXT extensão liberada:EXT extension released:
XR_EXT_eye_gaze_interaction
Interoperabilidade com outros SDKs do HoloLensInterop with other HoloLens SDKs
(por exemplo, QR)(for example, QR)

Somente HoloLens 2HoloLens 2 only

MSFT extensão liberada no tempo de execução 102:MSFT extension released in runtime 102:
XR_MSFT_spatial_graph_bridge

MSFT extensão no tempo de execução de visualização 104:MSFT extension in preview runtime 104:
XR_MSFT_perception_anchor_interop_preview

Captura de realidade mista
(terceiro processamento da câmera PV)
Mixed Reality Capture
(third render from PV camera)

Somente HoloLens 2HoloLens 2 only

MSFT extensões liberadas no tempo de execução 102:MSFT extensions released in runtime 102:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interoperabilidade com a API CoreWindow UWPInterop with UWP CoreWindow API
(por exemplo, para teclado/mouse)(for example, for keyboard/mouse)
MSFT extensão liberada no tempo de execução 103:MSFT extension released in runtime 103:
XR_MSFT_holographic_window_attachment
Perfis de interação do controlador de movimento (Samsung Odyssey e HP reverbs G2)Motion controller interaction profiles (Samsung Odyssey and HP Reverb G2) MSFT extensões liberadas no tempo de execução 103:MSFT extensions released in runtime 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modelos de renderização do controlador de movimentoMotion controller render models MSFT extensão no tempo de execução de visualização 104:MSFT extension in preview runtime 104:
XR_MSFT_controller_model
Compreensão da cena (planos, malhas)Scene understanding (planes, meshes)

Somente HoloLens 2HoloLens 2 only

No tempo de execução de visualização 102 ou posterior:In preview runtime 102 or later:
Usar XR_MSFT_spatial_graph_bridge com o SDK de compreensão da cenaUse XR_MSFT_spatial_graph_bridge with Scene Understanding SDK

MSFT_preview extensão no tempo de execução de visualização futura (planejada)MSFT_preview extension in future preview runtime (planned)

Outras extensões entre fornecedoresOther cross-vendor extensions

KHRExtensões oficiais lançadas:Official KHR extensions released:

XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time

EXT extensões liberadas:EXT extensions released:

XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Embora algumas dessas extensões possam ser iniciadas como MSFT extensões específicas do fornecedor, a Microsoft e outros fornecedores de tempo de execução OpenXR estão trabalhando juntos para projetar EXT vários fornecedores ou KHR extensões para muitas dessas áreas de recursos.While some of these extensions may start out as vendor-specific MSFT extensions, Microsoft and other OpenXR runtime vendors are working together to design cross-vendor EXT or KHR extensions for many of these feature areas. As extensões entre fornecedores farão com que o código que você escreve para esses recursos sejam portáteis em fornecedores de tempo de execução, assim como na Especificação principal.Cross-vendor extensions will make the code you write for those features portable across runtime vendors, as with the core specification.

Introdução ao OpenXRGetting started with OpenXR

Captura de tela de Minecraft sendo reproduzida por um usuário utilizando um headset de realidade misturada

O novo mecanismo de RenderDragon do Minecraft está criando seu desktop VR support usando o OpenXRMinecraft's new RenderDragon engine is building its desktop VR support using OpenXR

A Microsoft vem trabalhando com jogos do Unity e do Epic para garantir que o futuro da realidade misturada esteja aberto, não apenas para o HoloLens 2, mas em toda a amplitude do PC VR, incluindo o novo headset de reverberação do HP.Microsoft has been working with Unity and Epic Games to ensure the future of mixed reality is open, not just for HoloLens 2, but across the full breadth of PC VR, including HP’s new Reverb G2 headset. Para obter mais informações sobre como desenvolver para o HoloLens (1º gen), consulte as notas de versão.For more information on developing for HoloLens (1st gen), see the release notes.

Para saber como você pode começar a usar o OpenXR no Unity, mecanismo inreal ou seu próprio mecanismo, continue lendo!To learn how you can get started with OpenXR in Unity, Unreal Engine or your own engine, read on!

OpenXR no UnityOpenXR in Unity

Hoje, o caminho de desenvolvimento do Unity com suporte para o HoloLens 2, o HoloLens (1º gen) e o headset da realidade mista do Windows é o Unity 2019 LTS com o back-end da API do WinRT existente.Today, the supported Unity development path for HoloLens 2, HoloLens (1st gen), and Windows Mixed Reality headsets is Unity 2019 LTS with the existing WinRT API backend. Você pode ir para o OpenXR com o Unity; Se você estiver direcionando o novo controlador do HP reverberar G2 em um aplicativo do Unity 2019, consulte nossos documentos de entrada do HP reverbo G2.You can jump into OpenXR with Unity; If you’re targeting the new HP Reverb G2 controller in a Unity 2019 app, see our HP Reverb G2 input docs.

A partir do unity 2020 LTS, o Unity enviará um back-end OpenXR que dá suporte a headsets do HoloLens 2 e do Windows Mixed Reality.Starting with Unity 2020 LTS, Unity will ship an OpenXR backend that supports HoloLens 2 and Windows Mixed Reality headsets. Isso inclui suporte para as extensões de OpenXR que iluminam os recursos completos de headsets do HoloLens 2 e do Windows Mixed Reality, incluindo acompanhamento de mão/olho, âncoras espaciais e controladores de reverberação HP.This includes support for the OpenXR extensions that light up the full capabilities of HoloLens 2 and Windows Mixed Reality headsets, including hand/eye tracking, spatial anchors and HP Reverb G2 controllers. O suporte do MRTK-Unity para OpenXR está em desenvolvimento no mrtk_development Branch e estará disponível juntamente com esse pacote de visualização do OpenXR.MRTK-Unity support for OpenXR is currently under development in the mrtk_development branch and will be available alongside that OpenXR preview package.

A partir do Unity 2021, a OpenXR será então formada como o único back-end de Unity com suporte para direcionamento de headsets do HoloLens 2 e do Windows Mixed Reality.Starting in Unity 2021, OpenXR will then graduate to be the only supported Unity backend for targeting HoloLens 2 and Windows Mixed Reality headsets.

OpenXR no mecanismo inrealOpenXR in Unreal Engine

A partir do mecanismo inreal 4,23, o suporte completo para os headsets do HoloLens 2 e do Windows Mixed Reality está disponível por meio do plug-in do WinRT (Windows Mixed Reality).As of Unreal Engine 4.23, full support for HoloLens 2 and Windows Mixed Reality headsets are available through the Windows Mixed Reality (WinRT) plugin.

O mecanismo inreal 4,23 também foi a primeira versão principal do mecanismo de jogos para fornecer suporte de visualização para OpenXR 1,0!Unreal Engine 4.23 was also the first major game engine release to ship preview support for OpenXR 1.0! Agora em um mecanismo inreal 4,26, o suporte para o HoloLens 2, a realidade mista do Windows e outros headsets de VR da área de trabalho estarão disponíveis por meio de um plug-in OpenXR interno do mecanismo inreal.Now in Unreal Engine 4.26, support for HoloLens 2, Windows Mixed Reality and other desktop VR headsets will be available through Unreal Engine’s built-in OpenXR plugin. O mecanismo inreal 4,26 também será fornecido com seu primeiro conjunto de plug-ins de extensão OpenXR habilitando a interação manual e o suporte ao controlador do HP reverberate G2, iluminando o conjunto completo de recursos de headsets do HoloLens 2 e do Windows Mixed Reality.Unreal Engine 4.26 will also ship with its first set of OpenXR extension plugins enabling hand interaction and HP Reverb G2 controller support, lighting up the full feature set of HoloLens 2 and Windows Mixed Reality headsets. O mecanismo inreal 4,26 está disponível na visualização hoje no iniciador de jogos Epic, com a versão oficial em breve neste ano.Unreal Engine 4.26 is available in preview today on the Epic Games Launcher, with the official release coming later this year. MRTK-Unreal suporte para OpenXR também estará disponível juntamente com essa versão.MRTK-Unreal support for OpenXR will be available alongside that release as well.

OpenXR para desenvolvimento nativoOpenXR for native development

Faça o desenvolvimento com o OpenXR em um headset imersivo do HoloLens 2 ou do Windows Mixed Reality na área de trabalho.You can develop using OpenXR on a HoloLens 2 or Windows Mixed Reality immersive headset on the desktop. Se você não tiver acesso a um headset, poderá usar o emulador do HoloLens 2 ou o simulador de realidade mista do Windows.If you don't have access to a headset, you can use the HoloLens 2 Emulator or the Windows Mixed Reality Simulator instead.

Para começar a desenvolver aplicativos OpenXR para fones de ouvido do Windows com o HoloLens 2 ou de imersão, consulte como começar a usar o desenvolvimento do OpenXR.To start developing OpenXR applications for HoloLens 2 or immersive Windows Mixed Reality headsets, see how to get started with OpenXR development.

Para obter um tour por meio de todos os principais componentes da API do OpenXR, juntamente com exemplos dos aplicativos do mundo real usando o OpenXR hoje, confira este vídeo passo a passos de 60 minutos:For a tour through all the major components of the OpenXR API, along with examples of the real-world applications using OpenXR today, check out this 60-minute walkthrough video:

Confira tambémSee also