美文网首页
ARKit 最简单的一个Demo

ARKit 最简单的一个Demo

作者: sunny冲哥 | 来源:发表于2017-06-09 12:38 被阅读166次

AR最简单的一个Demo

参考了苹果官网关于搭建一个最基本的AR效果,然后这里把demo讲一下,由于有很多概念没有理解完全,所以有些地方有纰漏的话,可以拍砖一起讨论。

这里一定要注意,开发环境为Xcode 9, 运行环境是iphone 6s及以上设备,系统是iOS11

因为苹果规定(点这里查询)ARKit是运行在 A9 和 A10处理器上,所以 iphone 或者 ipad 自行对照自己的CPU。

如果运行Demo后出现这个提示,都表示当前运行的设备不支持ARKit:

2017-06-07 11:41:35.317768+0800 ARDemo[2970:1228240] [Session] Unable to run the session, configuration is not supported on this device: ARWorldTrackingSessionConfiguration: 0x60800009f310 planeDetection=Horizontal worldAlignment=Gravity lightEstimation=Enabled>

使用ARKit需要理解有2个东西:

1、ARSCNView 一种显示AR体验的视图,它通过3D SceneKit内容增强了相机视图。

2、ARSKView 一种显示AR体验的视图,增加了2D SpriteKit内容的相机视图。

这里使用了第一个,增加一个3D效果的视图。

在使用前,首先得需要再viewWillAppear方法里面实例化一个会话配置类,在配置类对象里设置会话如何将真实的设备运动映射到3D场景的坐标系统里,这里默认是使用重力,应该是使用陀螺仪;还需要制定其他几个值。最后再把配置类对象设置到视图的会话中。如下:

- (void)viewWillAppear:(BOOL)animated {

[superviewWillAppear:animated];

// Create a session configuration

ARWorldTrackingSessionConfiguration*configuration = [ARWorldTrackingSessionConfigurationnew];

configuration.worldAlignment=ARWorldAlignmentGravity;

//configuration.lightEstimationEnabled = YES;

configuration.planeDetection=ARPlaneDetectionHorizontal;

// Run the view's session

[self.sceneView.sessionrunWithConfiguration:configuration];

}


接下来在viewDidLoad方法里面设置了ARSCNView的代理,然后在下述这个方法里添加在视图里要显示的内容:

- (void)renderer:(id)renderer didAddNode:(SCNNode*)node forAnchor:(ARAnchor*)anchor

{

ARPlaneAnchor*planeAnchor =anchor;

SCNPlane*plane = [SCNPlaneplaneWithWidth:planeAnchor.extent.xheight:planeAnchor.extent.z];

SCNNode*planeNode = [SCNNodenodeWithGeometry:plane];

planeNode.position=SCNVector3Make(planeAnchor.center.x,0, planeAnchor.center.z);

planeNode.transform=SCNMatrix4MakeRotation(-M_PI/2,1,0,0);

[nodeaddChildNode:planeNode];

}


这里添加一个系统的视图ARPlaneAnchor,其实系统还内置了很多视图,可以用作基本使用。在这个代理方法设置好 视图的各种属性后,就添加到ARSCNView对象中。

运行效果如下:

模拟器运行效果:

最后把Demo献上,点击这里下载

感谢博主

相关文章

  • ARKit 最简单的一个Demo

    AR最简单的一个Demo 参考了苹果官网关于搭建一个最基本的AR效果,然后这里把demo讲一下,由于有很多概念没有...

  • ARKit简单Demo

    ARKit 官网介绍地址官网文档地址 运行版本 1.新建并运行官方自带的demo XCode : File -->...

  • 简单的ARKit demo

    首先创建一个空项目。 一切从最初开始。我是这么想的,当然你也可以选择隔壁的AR 项目开始创建~~~ ViewCon...

  • ARKit识别平面-Objective-C

    简单的ARKit的Demo,网上很多,包括Xcode自建的AR项目也可以直接实现一个飞机效果的Demo,不在赘述基...

  • 最火热的AR demo集合

    最火热的AR demo集合https://github.com/olucurious/awesome-arkit

  • ARKit 在你眼前显示一个真实的月球

    一个ARKit的简单demo,实现的是显示一个3D月球的效果。 简单说一下代码吧 完整代码在git:https:/...

  • ARKit Demo

    来源:https://www.jianshu.com/p/396a0d1c16f9 创建项目时,选择Augment...

  • ARKit 学习礼记

    ARKit demo传送门 持续优化更新中... ARKit 简介 增强现实技术(Augmented Realit...

  • ARKit -- 最简单的创建

    项目配置 Xcode : Version 9.0 (9A235) 语言 : OC 说明 : 习惯用OC开发的可以简...

  • SceneKit(1): 解析 WWDC2017 ARKit D

    在WWDC2017上,苹果推出了ARKit,在介绍完基本概念和用法后,演示了一个很小的 demo,虽然比较简单,但...

网友评论

      本文标题:ARKit 最简单的一个Demo

      本文链接:https://www.haomeiwen.com/subject/gyaxqxtx.html