As a part of our continual efforts to explore new technologies and discover what they can do for interactive advertising, we came across two exciting new mobile augmented reality platforms built upon Unity3D. The QCar SDK from Qualcomm being the only solution for Android, and String is the only solution for iOS. Both solutions have their individual strengths and weaknesses, but in the end, both prove to be excellent products. For this demo, we used the demo release version of String, and QCar v1.0.0. Our goal was to create a a multi-platform experience, note differences in workflow, and share what we came up with.
The general workflow for AR really isn't any different from any other Unity project. Overall, we'd say String is a little bit easier to work with, because of the in editor desktop preview using your webcam. Using QCar you have to publish to the device every time you want to test anything. As a workaround, another camera was set up to use in editor, and disable/enable when publishing to device. Qualcomm's marker creation process is a little more robust; everything is generated for you on their online developer portal. One annoying using String; you will need to manually tweak the world scale through trial and error if you're trying to get something sized just right. Qualcomm's solution places a plane in your scene that represents the marker (and textured), allowing you to position and scale things relative to it, eliminating guess work.
Tracking and Performance:
We can't accurately gauge performance head to head - testing on a Nexus S and a iPad 2, which are very different from each other. We will say however, that String's solution breaks a little less and finds the target faster. Qualcomm's solution on the other hand tracks a bit more accurately, and allows for quite a bit more freedom in choice of a marker. String's marker requires you to have a black border, surrounded by a white border. On the positive side, this allows you to frame just about anything you want inside, so long as it isn't too symmetrical. This makes it easier to frame existing art (or posters), like done for the movie transformers. Unfortunately, If at any point the camera can't see the entire Marker, the experience breaks.
Qualcomm's marker can be just about anything, with a few limitations. It's internal content needs to be pretty complicated and full of contrast, which is a bit harder than it sounds to make interesting. It tracks based on points generated throughout the image, so you can zoom in to only part of the marker, or stand back and frame the entire thing. It also allows for you to create box shaped markers (imagine using a cereal box as a marker, that can cull objects that pass behind it).
Overall both solutions work surprisingly well and we're excited to possible use these in commercial projects. In the creation of the car demo, we were able to deploy the same solution to both Android and iPhone, with very little effort. In choosing which one is better of the two, it really depends on the project and what kind of marker you require. It will be interesting to see Qualcomm's iOS solution when it becomes available to give a full head-to-head comparison. If both solutions remain in the state they are in, we think String will need to re-evaluate their pricin