4

I'm hoping to learn and dedicate serious amount of time on building 3D augmented reality apps since they are slowly but surely becoming the future for human and computer interaction.

I wish to learn ARCore but it only runs on limited number of brand new phones, it's not possible for me to test with, due to their prices,for now. I have few questions regarding to ARCore

  1. How is ARCore performence compared to other popular frameworks? Does it use extensive resources for simple operations such as motion detection, tracking and plane detection?
  2. Does it require knowledge and use of OpenGL as mentioned here? Is it just drawing meshes, vertices and simple objects or you should know more for simple 3D modelling? As far i've seen so far ARKit manages things with it's own framework which is a good thing.
  3. Is it stable? Does it crash often or cause ANR most of the time? I couldn't find the app link but users were complaining about how bad it was.
  4. Isn't there no way to test and debug code other than using these device? Can we run it on a emulator with some hack or other stuff?
  5. Can you access to manual camera features like ISO, metering, etc., is it easy like camera.getParameters() or some extensive work and/or NDK knowledge is required? Can you choose which camera api to use or is it just Camera2 api? I also wonder is there any AR framework that let you change camera parameters like Camera1 or Camera2 api with simple get or set methods?

I searched for ARToolKit but i got an impression that it's hard to learn and it's hard to implement things, Vuforia and Wikitude is not being free makes them out of question for now. I searched forums of each framework and this outdated thread and few others.

I'm trying to learn more technical and software development aspects of frameworks depending on empirical data. If you thing this question is off-topic please edit the question or direct me to prevent being so since there is no collective data about augmented reality on Android, at least, i haven't been able to find. Most of it is depracated, option based from a single user but no collective data is available from developers based on experience. I'm sure there are lots of developers wondering how to do it and which framework is suitable for them.

Thracian
  • 43,021
  • 16
  • 133
  • 222

1 Answers1

3

ARCore like other AR frameworks cost lot of resources : scene recognition and tracking are not simple things, so let's consider all AR engine as something important in resources usage.

Knowing OpenGL is a plus since you'll need to know how a 3D render loop works ot be able to work AR. No need to be an OpenGL master, but basics are required to understand samples and to be able to create your own 3D/AR project. Unless you'r working with ARKit & Metal, or AR with Unity maybe.

All AR lib I tested are stable, API are tested and quite never crash. It is more complex to have an AR tracking stable, some are better than other, and all have limitations (let's try ARCore and ARKit on a uniform white stone floor...) but markerless AR engine are pretty impressive on tracking, but need lastest devices and are still in beta.

Speaking about ARCore, only some devices are compatibles, no way to test without them as far as I know. Emulator would need a camera to test, don't know if it exists.

In most of the AR framework, Camera is not available : I mean, the framework configure and run the camera, you cannot get even an instance of Camera2 most of the time, sometimes it is even hard to get camera current settings (ARCore). The AR engine is more or less a black box, with tracking as output.

I practiced all these engines, I used some with success, and some are still not working (takes time to going deeper in the implementation and making it work as I want and not as the sample does). My opinion is ARKit and ARCore are going to make Vuforia & Wikitude deprecated since tracking is better, markerless (the more important point) and ... free of charge!

Good luck!

Vince
  • 70
  • 8
  • Thanks for your answer. It's easy to understand and very detailed. If anything else comes to your mind feel free to update any time. I really like AR and quite excited about the new technologies on the subject. I develop, simple location based applications using Camera, Location and few other stuff. AR libraries are becoming easy to implement and with good features make them appealing. I will not accept your answer yet for this topic to get some attraction but i will accept it after a point if any better answer is posted. I purchased a MacBook to learn Swift because of ARKit. – Thracian Oct 24 '17 at 13:45
  • I'm an Android veteran and would like to develop a 3D AR app for my master's thesis, also release it as a commercial product. I will go with AR Core but those devices with huge taxes are not affordable. Some of them are 5 times the minumum wage. I will check OpenGL, SLAM algorithm too to learn 3D AR thouroughly. Is there anything essential needed if my intend is to develop an academic product? – Thracian Oct 24 '17 at 13:49
  • I wish it was possible to set camera parameters. Can you record a video with any of these frameworks? – Thracian Oct 24 '17 at 13:58
  • 1
    Depends of what you are trying to do, ARCore is still a beta, let's hope some missing features will be added soon... Starting with OpenGL and Slam, why not, but let's start from the beggining and learn how to make a 3D engine, manage object, render them, move camera and so on. When you'll be good with this, you can consider playing with AR. I'm a 3D engines veteran, not good at openGl, and I worked on each of the AR framework mentioned here, and still working on them since each one is different and need adaptations to be integrated in the same 3D engine I did. – Vince Oct 24 '17 at 14:13
  • 1
    With ARKit, you can get the camera's last picture as YUV buffer, so let's say you can register a video.... if you do it by yourself. Since I'm currently on ARCore, i'm don't remember ARKit features, but ARKit is still in developpement too, so API can change, but they seems to have something quite good and quite simple to make work. – Vince Oct 24 '17 at 14:17