ARKit从入门到精通(3)-ARKit自定义实现(1)

本文详细介绍了如何在iOS应用中使用ARKit进行ARSession的配置,包括ARWorldTrackingSessionConfiguration的使用,以及如何在触摸事件中添加3D模型并调整其位置。内容涉及AR视图、会话管理和3D建模技术。
摘要由CSDN通过智能技术生成

//1.创建世界追踪会话配置(使用ARWorldTrackingSessionConfiguration效果更加好),需要A9芯片支持

ARWorldTrackingSessionConfiguration *configuration = [[ARWorldTrackingSessionConfiguration alloc] init];

//2.设置追踪方向(追踪平面,后面会用到)

configuration.planeDetection = ARPlaneDetectionHorizontal;

_arSessionConfiguration = configuration;

//3.自适应灯光(相机从暗到强光快速过渡效果会平缓一些)

_arSessionConfiguration.lightEstimationEnabled = YES;

return _arSessionConfiguration;

}

//懒加载拍摄会话

  • (ARSession *)arSession

{

if(_arSession != nil)

{

return _arSession;

}

//1.创建会话

_arSession = [[ARSession alloc] init];

//2返回会话

return _arSession;

}

//创建AR视图

  • (ARSCNView *)arSCNView

{

if (_arSCNView != nil) {

return _arSCNView;

}

//1.创建AR视图

_arSCNView = [[ARSCNView alloc] initWithFrame:self.view.bounds];

//2.设置视图会话

_arSCNView.session = self.arSession;

//3.自动刷新灯光(3D游戏用到,此处可忽略)

_arSCNView.automaticallyUpdatesLighting = YES;

return _arSCNView;

}


1.3-开启AR扫描


  • 我们只需要先将AR视图添加到当前UIView中,然后开启AR会话即可开始我们的AR之旅

  • ***这里需要特别注意的是,最好将开启ARSession的代码放入viewDidAppear而不是viewDidLoad中,这样可以避免线程延迟的问题。开启ARSession的代码可不可以放入viewDidLoad中呢?答案是可以的,但是笔者不建议大家那么做***

@implementation ARSCNViewViewController

  • (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

}

  • (void)viewDidAppear:(BOOL)animated

{

[super viewDidAppe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值