metaio Mobile SDK FAQs

General questions

Which platforms are supported?

The metaio Mobile SDK is currently supported on two major smartphone platforms:

  • iOS (for optical tracking iOS 4.0 is required)
  • Android (starting from version 2.2)

For each platform the metaio Mobile SDK offers the similar functionality and behavior. This makes it easy to develop on one platform and later one port the application to a different platform.

The following platforms were previously supported and have been discontinued.

  • Android 1.6 and 2.1
  • Windows Mobile 6.5
  • Symbian S60 (starting from FP1)

The following platforms are not supported due to technical limitations:

If you like to see the metaio Mobile SDK on another platform, contact us.

What are the minimum hardware requirements?

The mimimun hardware requirement depend on the platform and the mobile phone. We fully support the iPhone 3G S and iPhone 4. For Android and custom platforms we expect an 800 Mhz processor and a dedicated graphics processor.

Minimum:

  • CPU with about 800 MHz.
  • CPU with ARMv7
  • 32 MB RAM (without ROM memory).
  • Integrated GPU with full OpenGL ES 2.0 support (PowerVR MB/MBX).
  • Integrated camera with about a 3 Megapixel resolution.

Recommended:

  • CPU with 1Ghz
  • 64 MB RAM
  • OpenGL 2.0 class GPU

What is Application Identifier and Signature?

The Application Identifier (or Application ID) refers to a string that uniquely identifies the application. In case of iOS, it is the so called Bundle identifier, while on Android it is the application package name declared in AndroidManifest.

The Application Signature refers to a string that correspondes to the Application Identifier. Any application that is using metaio Mobile SDK needs to provide an Application Signature string which has to match the Application Identifier.

Important: If the Application Identifier is changed, the corresponding Application Signature has to be changed as well.

Please refer also to the next question for generating an Application Signature from an Application Identifier.

How to generate an Application Signature for a given Application Identifier?

Creating an Application Signature is free of charge. The following steps are required:

  1. Register at the Mobile SDK Developer Portal
  2. Add the Application Identifier (i.e. Application ID) of your application. This will instantly create an according signature that corresponds to the Application ID. You will receive it via email or you can use it directly from the developer portal.
  3. Copy & paste the signature into your application for using it with the function CreateUnifeyeMobileIPhone() or CreateUnifeyeMobileAndroid() (depending on the according platform).

Please note that whenever you change the Application Identifier a new Application Signature has to be created.

Which 3D content formats are supported?

The Mobile SDK supports OBJ and MD2 file formats. Also have a look at our content tutorials, especially on how to export from Blender and 3Ds Max.

What is the difference between PC SDK and the Mobile SDK?

The interfaces of the Mobile SDK and the PC SDK are very similar. Therefore, anyone with programming experience for Unifeye SDK can easily switch to mobile development.

How to create non-overlapping Junaio-like billboards

  • Make sure that a valid tracking configuration for GPS/inertial sensors is loaded
  • Create a billboard group by calling createBillboardGroup, this will return billboard group instance
  • Next, add the billboards to this group by calling addBillboard
  • Optionally, set billboard expand parameters by calling setBillboardGroupExpandFactors

The billboards will automatically expand if they overlap. For more details on the functions, please have a look at the API documentation.

How to determine if we are currently tracking a target

To determine if the Mobile SDK is currently tracking a target, you can use the method getTrackingValues( int cosID ). This will return a pose structure which contains a quality value. This quality value will be 1.0 in case the system is currently tracking the respective coordinate system. In case it's not tracking anymore, but a smoothing fuser is active, the quality value will be 0.5. In all other cases the quality value is 0.0 to indiciate that the system is not tracking.

How to read Barcodes and QR codes?

Barcodes and QR codes reading has been added to Mobile SDK v3.0. To use, you need to load a tracking configuration for barcodes reading. The following is an example configuration:

<TrackingData>
    <Sensors>
        <Sensor type="BarCodeSensorSource">
            <SensorID>BarCodeSensor</SensorID>
            <SensorCOS>
                <SensorCosID>COS1</SensorCosID>
            </SensorCOS>
        </Sensor>
    </Sensors>
</TrackingData>

Once the tracking configuration is loaded, the barcode (or QR code) data can be retrieved by calling getValidTrackingValues.

The first pose will contain barcode data if its quality is greater than 0. The data can be obtained by calling Pose.getAdditionalValues.

Updating to the new 3.0 SDK interface

We try to prevent API changes as much as possible, but sometimes it just makes sense to simpilfy the API to cleanly integrate new featuers. You may have a look at the new example applications for iPhone and Android, they show the new interfaces in detail. Other things you may keep in mind when updating your application are:

  • The renderer needs to be initialized in a separate function initializeRenderer for Android and iPhone
  • The android example do no longer require to directly create a camera in the application. This will be done by the SDK internally
  • We added a new interface IUnifeyeMobileCallback to handle all the callback in a convinient way. For iPhone, there is also a delegate available.
  • IUnifeyeMobile::getCoordinateSystemName() has bee removed
  • displayRenderingFrameRateCounter(..) is no longer supported, please use getRendererFrameRate() and native GUI elements to draw a FPS counter.
  • setImage( const ImageStruct& image ) is not supported, please use setImageSource(const std::string& source) instead
  • setCameraFormat(..) has been replace by activateCamera(..) width a wished format
  • freezeTracking(..) and unfreezeTracking(..) are now merged to setFreezeTracking( bool freeze )
  • The onError callback has been replaced by direct error logging output

Creating Movie Textures

The movie textures can be used with any 3D geometry:

  • loading a 3D geometry
  • call geometry->setMovieTextre( filename )

The geometry you can use, is any 3D object, even animated MD2 models. The only thing to keep in mind is texture coordinates. Use a 256x256 texture, the movie will then be copied to the 176x144 upper left region.

To support video playback on Android and iPhone, the codec and video specifaction is limited. On the junaio.com developer section you will find a tutorial on how-to convert a movie. There you will also find example 3D models. There is also an example movie for download to start with.

How to create ID Markers?

ID markers can be created using Marker Generator Tool which can be found in Unifeye Design installer.

A PDF containing all 512 ID Markers can be download from here.

Known Issues

The following is a list of known issues with current Mobile SDK. If you experience any issues, please report us.

General

  • Billboard geometries will not be correctly rendered if attached to camera coordinate system (0)
  • Front facing camera is mirrored on iOS, not mirrored on Android
  • texturecoordinates can sometimes have inaccuracies (visible on borders of semi-transparent shadow planes)

Android

The following are known issues on some of the Android devices

  • Samsung Galaxy Tab 7"
    • Some devices may not be able to start the camera.
    • Loading large models can fail.
    • Crashes if screen is locked and unlocked by the user.
  • ASUS Eee Pad devices
    • Back facing camera (0) fails on Asus EEE Pad Transformer TF101G and ASUS Eee Pad Slider SL101

Unity Plugin

  • The Unity3d plugins currently do not support sensors (accelerometer, compass or location).

Android

The Android FAQs can be found here.

iOS

The iOS FAQs can be found here

Topic revision: r53 - 2012-05-03 - 09:09:09 - SupportMetaio
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback