First of all what is Augmented Reality and what can it do? Quick look at Wikipedia will give you all your answers, but a better way of learning is if you see it. Just type Augmented Reality in YouTube and see for your self.
I was amazed that more people hasn't heard about it. I'm not talking about your Average Jo, I'm talking about developers. I thought that more programmers at least heard about it, if they didn't use it.
The biggest effort of people hearing about it was that of Google with Google Goggles.
It's basically combination of virtual and normal reality - so the name Augmented Reality was a natural selection.You are basically using your smartphone to display 3d models or object in real time mapped to a image or a marker or even to a geographical coordinates. One of the most popular Android apps for AR is Google Sky Map and it's free (like most of AR stuff). You can download almost identical app for iOS called Star Walk.
When I show someone one a AR apps the reaction is the same - amazing. And AR is just that - amazing, and the options of what you can do with it are endless.
So let's take a look at some frameworks so you can do develop AR apps:
- Metaio (http://www.metaio.com/)
- AndAR (http://code.google.com/p/andar/)
- Layar (http://www.layar.com/)
- Junaio (http://www.junaio.com/)
- Vuforia (https://ar.qualcomm.at/qdevnet/)
Junaio is to be used by non programers to develop AR applications. It has a nice feature that you can publish a channel to their app so no need for a full development if you just want to try something, but that has it's limitation. And between Metaio and Layar i choose Meatio.
It free but you have a watermark Powered by Meataio when you run your app. If you want to get rid of it you have to pay. A lot (http://www.metaio.com/products/mobile-sdk/pricing/). But if a watermark is no problem I say go for it. It's a really good framework.
I made a app that uses ID markers, but you can use picture markers LLA markers, markerless, markerless 3d. Let me explain:
ID markers are 512 id markers that look similar to QR code and each has a ID of 1 - 512. You put it on things and in your app you bind a 3d model to a ID, and when you scan a ID marker the 3d model that you assigned to a marker id renders. It's easy as that.
Steps to making a ID marker Android app:
- You need to make a 3d model in 3ds Max Studio or Blender. I used 3ds Max, and exported the model to md2 format (because Metaio uses md2 format, you can use this to export: http://thegreystudios.com/blog/?p=278)
- Make a tracking file. It's a simple XML file where you define what ID markers you will use, or pictures that will serve as markers.
- Write some boilerplate code to set up the configuration for the camera and other things. Don't forget to add this permissions: <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> - And in the activity class bind the tracking xml file to models and that is it
Beside ID and picture markers you can use LLA Markets (Langitude longitude altitude markers) and bind a model to a coordinated so it will show up if you point your app at a certain location. So you can make 3d models of famous people and bind it to locations in your town where they were born or lived so you would point you phone and see who lived there. It is just a idea, you don't have to do it ;)
This is just a basic post to get to know you with AR, if I intrigued you and you would like to know more I suggest you visit http://dev.metaio.com/sdk/getting-started/ and download the Meataio SDK which contains the example app. You will have to build the example app (note it will not work with the emulator since the emulator doesn't work with a camera. The app will just crash) and in the bin folder you will find a apk file to install. Also note that if you make changes to the example you will need to manually uninstall the previous version of the app because otherwise you will get a error while installing the new app and you will thing that you did something wrong - I'm talking from experience ;).