Soporte de EasyAR para el marco de trabajo XR de Unity
EasyAR no depende del marco de trabajo XR de Unity para proporcionar funciones de AR, pero puede admitir algunos paquetes de componentes del marco de trabajo XR de Unity. Esto permite aprovechar las funciones proporcionadas por el marco de trabajo XR de Unity cuando se utilizan las capacidades de AR de EasyAR en Unity. A continuación, se describe la compatibilidad de EasyAR con el marco de trabajo XR de Unity y en qué casos se podría considerar usar AR Foundation.
Soporte de Unity XR
Unity admite el desarrollo de XR a través de su marco de trabajo de complementos y un conjunto de paquetes de características y herramientas. EasyAR también admite estos paquetes de componentes de Unity XR para permitir el uso de las funciones proporcionadas por el marco de trabajo XR de Unity cuando se emplean las capacidades de AR de EasyAR.
EasyAR admite los siguientes paquetes de Unity XR:
| Nombre para mostrar | Nombre del paquete | Versión mínima admitida | ¿Es necesario? | Propósito |
|---|---|---|---|---|
| XR Core Utilities | com.unity.xr.core-utils | 2.0.0 | No | Proporciona soporte para Unity.XR.CoreUtils.XROrigin |
| AR Foundation | com.unity.xr.arfoundation | 5.0.0 | No | Proporciona soporte para AR Foundation |
| XR Plugin Management | com.unity.xr.management | 3.0.0 | No | Proporciona compatibilidad con la administración de SDK de ARCore y obtención del tipo XR Loader en tiempo de ejecución |
| XR Interaction Toolkit | com.unity.xr.interaction.toolkit | 2.0.0 | No | No se utiliza directamente |
| PolySpatial visionOS | com.unity.polyspatial.visionos | 2.0.41 | No | No se utiliza directamente |
| com.unity.xr.visionos | 2.0.41 | No | No se utiliza directamente | |
| Apple ARKit XR Plugin | com.unity.xr.arkit | 5.0.0 | No | No se utiliza directamente |
| Google ARCore XR Plugin | com.unity.xr.arcore | 5.0.0 | No | Proporciona compatibilidad con la administración de SDK de ARCore |
Nota
EasyAR no depende del marco de trabajo XR de Unity para proporcionar funciones de AR. Por lo tanto, cuando no hay necesidad de usar componentes de Unity XR como AR Foundation, no es necesario instalar estos paquetes, y EasyAR seguirá funcionando correctamente en dispositivos compatibles.
Soporte para AR Foundation
AR Foundation es el marco de trabajo de desarrollo de AR proporcionado por Unity. Sus capacidades de AR se implementan a través de sistemas subyacentes o de terceros, y se utiliza comúnmente para admitir ARCore, ARKit y algunos visores.
Relación entre EasyAR y AR Foundation
block
columns 6
block:groupApp:6
block:groupAppWrapper
space
App1["EasyAR<br>App"]
space
App2["EasyAR + AR Foundation<br>App"]
space
App3["AR Foundation<br>App"]
end
end
block:groupSensePlugin:4
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupAREngineInterop
columns 1
AREngineInterop["EasyAR<br>AR Engine Interop"]
space
end
block:groupSense:3
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
Image["Image<br>Tracker"]
Object["Sparse<br>SpatialMap"]
MotionTracker["Motion<br>Tracker"]
MARCore["ARCore"]
MARKit["ARKit"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:6
columns 1
System["Biblioteca del sistema"]
block:groupSystemWrapper
space
AREngine["AR Engine<br> Library "]
space
ARCore["ARCore<br> Library "]
space
ARKit["ARKit<br> Library "]
space
end
end
SensePlugin --> App1
SensePlugin --> App2
ARF --> App2
ARF --> App3
groupSense --> SensePlugin
groupAREngineInterop --> SensePlugin
AREngine --> groupAREngineInterop
XRSubsystem --> ARF
XRSubsystem --> XRI
ARCore --> MARCore
ARKit --> MARKit
ARCore --> XRSDK
ARKit --> XRSDK
style groupApp fill:none,stroke:none,stroke-width:0px
style groupAppWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePlugin fill:none,stroke:none,stroke-width:0px
style groupARF fill:none,stroke:none,stroke-width:0px
style groupXRI fill:none,stroke:none,stroke-width:0px
style AREngineInterop fill:none,stroke:none,stroke-width:0px,color:#fff
style Sense fill:none,stroke:none,stroke-width:0px,color:#fff
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px,color:#fff
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class groupAREngineInterop EasyAR
class groupSense EasyAR
class SensePlugin EasyAR
classDef Unity fill:#636,stroke:#333,color:#fff
class groupXRSubsystem Unity
class ARF Unity
class XRI Unity
EasyAR y AR Foundation son dos marcos de trabajo de AR independientes; EasyAR no depende de AR Foundation para implementar sus funciones de AR. EasyAR también puede utilizar bibliotecas del sistema como ARKit o ARCore para proporcionar capacidades de seguimiento de movimiento. Además, EasyAR ofrece dos implementaciones de seguimiento de movimiento que AR Foundation no proporciona: la propia implementación de seguimiento de movimiento de EasyAR y la implementación a través de AR Engine, lo que brinda un soporte más amplio de dispositivos en comparación con AR Foundation.
Al mismo tiempo, EasyAR puede obtener datos en tiempo de ejecución de AR Foundation y utilizar sus capacidades de seguimiento de movimiento para impulsar otras funciones de AR, proporcionando así compatibilidad con AR Foundation. Estas funciones incluyen:
- Mega
- Mapa espacial disperso
- Mapa espacial denso
- Seguimiento de imágenes y objetos mediante fusión de movimiento
Se puede consultar Seguimiento de movimiento y funciones de EasyAR para obtener información detallada sobre la relación entre el seguimiento de movimiento y las funciones de EasyAR.
Cuándo se debe usar AR Foundation
En la mayoría de los casos, no es necesario usar AR Foundation, ya que EasyAR funcionará correctamente en un rango más amplio de dispositivos que los admitidos por AR Foundation. Generalmente, se puede considerar el uso de AR Foundation en dos situaciones:
Cuando se necesitan funciones de ARKit o ARCore no encapsuladas por EasyAR
Si se requieren funciones específicas de ARCore o ARKit que no están encapsuladas en EasyAR, se puede usar AR Foundation. Por ejemplo, AR Foundation proporciona soporte para el seguimiento facial de ARKit ARFaceManager, que EasyAR no encapsula.
Cuando se usa el seguimiento de movimiento implementado por ARCore en lugar de EasyAR en algunos teléfonos Xiaomi con problemas del sistema
Si se desea usar ARCore en todos los teléfonos Xiaomi y Redmi compatibles, se puede considerar habilitar AR Foundation. Debido a problemas en el sistema de algunos teléfonos Xiaomi y Redmi, la encapsulación de ARCore de EasyAR no admite estos dispositivos, incluyendo las series Mi 9, Mi 10, Redmi K20, Redmi K30, Redmi K40, entre otros (la lista no es exhaustiva y el soporte de dispositivos se actualiza continuamente). En estos teléfonos, en la configuración predeterminada no se usará ARCore; en su lugar, se utilizará el seguimiento de movimiento de EasyAR en dispositivos compatibles.
El rendimiento de las funciones de EasyAR no es óptimo cuando se usa AR Foundation. Existen dos situaciones:
- En los teléfonos Xiaomi y Redmi no admitidos directamente por EasyAR, los datos de entrada son imágenes en escala de grises en lugar de imágenes en color, lo que afecta la eficacia de algunos algoritmos. Esto no se puede solucionar mediante configuración debido a los problemas inherentes del dispositivo.
- Cuando se usa Mega, la configuración predeterminada utilizada por AR Foundation no es la óptima.
Precaución
Es posible modificar ARCameraManager.currentConfiguration de AR Foundation para obtener datos de entrada más óptimos. Habilitar ARCoreARFoundationFrameSource.OptimizeConfigurationForTracking selecciona automáticamente la mejor ARCameraManager.currentConfiguration. Sin embargo, algunos teléfonos (como el Xiaomi 10) tienen problemas propios y no pueden obtener imágenes después de modificar la configuración, lo que provoca que EasyAR no funcione (la aplicación muestra un fondo de imagen, pero las funciones de EasyAR no responden). Por lo tanto, generalmente no se recomienda habilitar esta opción, y si se usa, se debe implementar un plan de contingencia para cuando EasyAR no funcione.
Soporte para dispositivos de visualización
Debido a que el marco de trabajo XR de Unity no proporciona interfaces de datos suficientemente completas, EasyAR no admite dispositivos de visualización a través del marco de trabajo XR de Unity.
En dispositivos de visualización compatibles con el marco de trabajo XR de Unity, EasyAR admite el uso de Unity.XR.CoreUtils.XROrigin a través de XR Core Utilities, pero no utiliza el marco de trabajo XR de Unity para implementar el soporte de dispositivos de visualización. EasyAR no afecta las funciones de XR Interaction Toolkit, que se pueden usar normalmente siempre que el dispositivo sea compatible.
Generalmente, los fabricantes de dispositivos de visualización proporcionan SDK o interfaces del sistema para ofrecer estos datos, y EasyAR admite los dispositivos de visualización a través de interfaces del sistema y SDK de los fabricantes. A veces, estos SDK no son completamente públicos, por lo que EasyAR colabora con los fabricantes para brindar soporte completo. Soporte para dispositivos de visualización en Unity describe los dispositivos de visualización admitidos por EasyAR y cómo usarlos.
Próximos pasos
- Aprende cómo habilitar AR Foundation en proyectos de EasyAR
- Conoce la configuración y uso de escenas de AR Foundation en proyectos de EasyAR
- Aprende a cambiar automáticamente a AR Foundation según la compatibilidad del dispositivo