Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why ARCore Supported device Limited?

what makes the ARCore supported device supports ARCore? Which Features Makes This Device Support ArCore? What is difference between ARCore Device And Other non Supported Device?

like image 989
Sunny Sommanek Avatar asked Sep 29 '18 07:09

Sunny Sommanek


2 Answers

What happens is not about how new the mobile is, but if this mobile had some tests and mesures when it was design and build.

  • What it means, you cellphone today need some hardware like:

Accelerometer: measures acceleration, which is change in speed divided by time. Simply put, it’s the measure of change in velocity. Acceleration forces can be static/continuous—like gravity—or dynamic, such as movement or vibrations.

Gyroscope: measures and/or maintains orientation and angular velocity. When you change the rotation of your phone while using an AR experience, the gyroscope measures that rotation and ARCore ensures that the digital assets respond correctly.

enter image description here

Phone Camera: with mobile AR, your phone camera supplies a live feed of the surrounding real world upon which AR content is overlaid. In addition to the camera itself, ARCore-capable phones like the Google Pixel rely on complementary technologies like machine learning, complex image processing, and computer vision to produce high-quality images and spatial maps for mobile AR.

Magnetometer: gives smartphones a simple orientation related to the Earth's magnetic field. Because of the magnetometer, your phone always knows which direction is North, allowing it to auto-rotate digital maps depending on your physical orientation. This device is key to location-based AR apps.

GPS: a global navigation satellite system that provides geolocation and time information to a GPS receiver, like in your smartphone. For ARCore-capable smartphones, this device helps enable location-based AR apps.

enter image description here

Display: the display on your smartphone is important for crisp imagery and displaying 3D rendered assets. For instance, Google Pixel XL’s display specification is 5.5" AMOLED QHD (2560 x 1440) 534ppi display, which means that the phone can display 534 pixels per inch—making for rich, vivid images.

You can find this information and more on the Introduction to Augmented Reality and ARCore by Google AR & VR

like image 73
Canato Avatar answered Sep 17 '22 03:09

Canato


In order to get AR experience, ARCore-compatible device must have 4 sensors:

  • Accelerometer
  • Gyroscope
  • Back RGB Camera
  • Magnetometer (it'll be supported in the future)

If your smartphone doesn't have a gyroscope (or it has a virtual gyroscope) that measures an orientation (rotation) in space – your Android device is considered as ARCore-incompatible. Every ARCore-compatible device must fulfil 3D tracking using 6 degrees of freedom (XYZ position and XYZ rotation).

When you're developing AR apps for Google Play Store you should write a code that checks that ARCore compatibility.

How to perform runtime checks.

Check whether ARCore is supported (for AR Optional apps only).

AR Optional apps can use ArCoreApk.checkAvailability() to determine if the current device supports ARCore. On devices that do not support ARCore, AR Optional apps should disable AR related functionality and hide associated UI elements:

@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);
    }
}
like image 38
Andy Jazz Avatar answered Sep 19 '22 03:09

Andy Jazz