什么使得支持ARCore的设备支持ARCore?
哪些功能使得该设备支持ArCore?
ARCore设备与其他不支持设备有何区别?
发生的事情与手机有多新无关,而在于设计和构建时是否进行了一些测试和测量。
加速度计:测量加速度,即速度变化除以时间。简单地说,它是速度变化的衡量标准。加速度力可以是静态/连续的 - 如重力 - 或动态的,比如运动或振动。
陀螺仪:测量和/或维持方向和角速度。当您在使用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像素每英寸 - 呈现出丰富,生动的图像。@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);
}
}
availability.isSupported()
总是返回true,因此代码的else部分没有被执行。这就是为什么我无法为不支持的设备放置消息的原因。 - roccoAR Core 需要具备六自由度的设备,不支持的设备通常只有三自由度(DOF)。