是什么让ARCore支持的设备支持ARCore?哪些功能使该设备支持ArCore? ARCore设备和其他不支持的设备有什么区别?
为了获得AR体验,与ARCore兼容的设备必须具有4个传感器:
如果您的智能手机没有陀螺仪(或者它有一个虚拟陀螺仪)来测量太空中的方向(旋转) - 您的Android设备被认为是与ARCore不兼容的。每个与ARCore兼容的设备必须使用6个自由度(XYZ位置和XYZ旋转)来完成3D跟踪。
当您为Google Play商店开发AR应用时,您应该编写一个代码来检查ARCore兼容性。
如何执行运行时检查。
检查是否支持ARCore(仅适用于AR Optional应用程序)。
AR可选应用程序可以使用
ArCoreApk.checkAvailability()
来确定当前设备是否支持ARCore。在不支持ARCore的设备上,AR可选应用程序应禁用AR相关功能并隐藏关联的UI元素:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Enable AR related functionality on ARCore supported devices only.
maybeEnableArButton();
}
void maybeEnableArButton() {
ArCoreApk.Availability availability = ArCoreApk.getInstance().checkAvailability(this);
if (availability.isTransient()) {
// Re-query at 5Hz while compatibility is checked in the background.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
maybeEnableArButton();
}
}, 200);
}
if (availability.isSupported()) {
mArButton.setVisibility(View.VISIBLE);
mArButton.setEnabled(true);
// indicator on the button.
} else { // Unsupported or unknown.
mArButton.setVisibility(View.INVISIBLE);
mArButton.setEnabled(false);
}
}
发生的事情并不是关于移动设备有多新,而是移动设备在构建和构建时是否有一些测试和测试。
加速度计:测量加速度,即速度的变化除以时间。简而言之,它是衡量速度变化的标准。加速力可以是静态的/连续的,如重力或动态的,例如运动或振动。
陀螺仪:测量和/或保持方向和角速度。当您在使用AR体验时更改手机的旋转时,陀螺仪会测量旋转,而ARCore可确保数字资产正确响应。
手机摄像头:通过移动AR,您的手机摄像头可以提供周围现实世界的实时信息,其上覆盖了AR内容。除了相机本身之外,像Google Pixel这样的支持ARCore的手机依赖于机器学习,复杂图像处理和计算机视觉等互补技术来为移动AR生成高质量的图像和空间地图。
磁力计:为智能手机提供与地球磁场相关的简单方向。由于磁力计,您的手机始终知道哪个方向是北方,允许它根据您的身体方向自动旋转数字地图。此设备是基于位置的AR应用程序的关键。
GPS:全球导航卫星系统,为GPS接收器提供地理定位和时间信息,就像在智能手机中一样。对于支持ARCore的智能手机,此设备可帮助启用基于位置的AR应用。
显示:智能手机上的显示对于清晰图像和显示3D渲染资源非常重要。例如,Google Pixel XL的显示器规格为5.5英寸AMOLED QHD(2560 x 1440)534ppi显示屏,这意味着手机每英寸可以显示534像素,从而可以拍摄出丰富生动的图像。
您可以在Introduction to Augmented Reality and ARCore by Google AR & VR上找到此信息和更多信息
AR核心需要具有6个自由度的设备,不支持的设备通常具有3个自由度(DOF)。