AliGenie AR SDK提供快速精准的识别、稳定的三维感知与跟踪和超轻量渲染引擎。支持百万级图片识别追踪,SLAM 能够达到亚像素级抖动。目前对外开放的接口基于UIViewController,用户使用方便。
开发者使用淘宝账号登录AR网站 https://open-ar.bot.tmall.com/console/apps, 并创建新应用
成功后如下
登录淘宝开放平台申请访问AR云服务的权限
点击应用的appkey, 进入申请AR云服务权限
需要的Framework、静态库和bundle:
打开工程文件,在App的Build Phases=>Copy Bundle Resources中手动添加Aivex.bundle和AGARCore.bundle
在Build Phases的Link Binary With Libraries中添加上如下图所示依赖:
其中AivexEngineCore.framework在AivexMagicARiOS.framework目录下
在App的Build Setting中添加linker flag, 如下图所示:
为当前App创建一个AGARCoreUIViewcontroller的子类,在该类的viewDidLoad方法中设置第一步申请的appkey,secret等参数,如下所示
- (void)viewDidLoad { // IMPORTANT: // 注意:这里设置appKey,secret, reqUrlStr必须在[super viewDidLoad]之前调用 self.appKey = xxxx; self.secret = xxxx; self.reqUrlStr = @"https://eco.taobao.com/router/rest"; [super viewDidLoad]; .... }
注意:**当前AGARCoreUIViewcontroller类仅支持Portrait模式**
调用API开始或者停止追踪
- (void)viewDidLoad { // IMPORTANT: ..... [super viewDidLoad]; .... // 开始追踪, 必须调用 [self startTracking]; .... }
目前默认自带有FocusRegion UI和阿里火眼FocusRegion UI保持一致,如下图所示:
如果用户想要自己设置FocusRegion UI,在viewDidLoad之前设置self.customFocusRegionUI = YES;
创建子view并添加到self.view中,随后设置startX,startY,scanWidth和scanHeight这几个属性,分别表示Focus Region裁剪区域的左上角坐标、宽和高,SDK会根据这个区域裁剪相机数据并做云识别和追踪。例如最简单的使用整屏做云识别和追踪:
self.customFocusRegionUI = YES; self.startX = 0; self.startY = 0; self.scanWidth = self.view.frame.size.width; self.scanHeight = self.view.frame.size.height;
目前SDK还提供了追踪成功事件回调和重扫事件回调, 可根据业务逻辑决定是否需要使用.
用户实现协议AGARCoreDelegate方法:
- (void)onObjectTracked
当识别并追踪到marker后会调用,此时访问属性self.objectId中是marker对应的Id, 注意: 如果需要使用self.objectId, 需要在AGARCoreUIViewcontroller子类的头文件中定义, 如下所示:
#import <AGARCore/AGARCore.h> @interface ViewController : AGARCoreUIViewController <AGARCoreDelegate> @property (nonatomic, copy) NSString *objectId; @end
- (void)onObjectTrackLost
当marker追踪丢失后会调用
- (void)onRescan
重扫回调函数, 用户可以在这个函数中实现自己的UI动画等
- (void)onOpenURL:(NSString *)url
处理如何展示URL内容,如果用户不定义的话,默认调用系统的API[[UIApplication sharedApplication] openURL:urlObj]
打开. 注意: 如果用户定义了该函数, 需要自己去调用相关api来打开url, 否则url跳转无效
目前SDK提供了实例方法- (BOOL)arFeatureIsSupported
来告知使用方AR功能是否能够在设备上运行, 当返回结果为YES, 调用方法来初始化AGARCoreUIViewcontroller的实例, 否则隐藏或者提示用户设备不支持即可,例如:
// 检测AliGenie AR SDK是否支持当前设备 if ([agarUtils arFeatureIsSupported]) { // 创建AGARCoreUIViewcontroller的子类实例 }else{ // 弹出AlertView提醒用户不支持该手机 UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"AGAR SDK" message:@"不支持该手机." preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}]; [alert addAction:defaultAction]; [self presentViewController:alert animated:YES completion:nil]; }
目前SDK中集成了3D物体追踪功能, 可以尝试扫天猫精灵实物体验, 如果您想要追踪定制的3D物体, 请联系我们
因为目前仅支持Portrait模式,所以需要在General=>Deployment Info=>Device Orientation中仅选中Portrait
实例化第四步创建的AGARCoreUIViewController,并调用即可
扫描 测试marker
功能体验中的marker