ARKit基础(一)——ARkit环境搭建

空间中放置了一架飞船,这是一个最基础的ARkit世界,首先了解几个基本的概念:

ARKit与SceneKit
ARkit负责相机捕捉现实世界图像,SceneKit负责在图像中显示3D模型

ARSCNView
基础视图容器类,用于显示AR内容,继承于SCNView,SCNView继承与UIView。

ARSession
每一个ARSCNView包含一个ARSession,用于管理底层设备,是底层数据与AR视图之间的桥梁。

SCNScene
3D场景,包含几何模型,灯光相机和其他属性。

ARWorldTrackingSessionConfiguration
追踪相机捕捉平地。

代码:

#import "ARKitBaseViewController.h"

@interface ARKitBaseViewController (){
    IBOutlet ARSCNView *sceneView;
}

@end

@implementation ARKitBaseViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 创建一个场景
    SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn"];
    // 把场景赋值给sceneView
    sceneView.scene = scene;
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    
    // 创建一个 session configuration
    ARWorldTrackingConfiguration *configuration = [ARWorldTrackingConfiguration new];
    // 运行 session
    [sceneView.session runWithConfiguration:configuration];
    // 显示特征点(屏幕中的黄点)
    sceneView.debugOptions = ARSCNDebugOptionShowFeaturePoints;
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    // 暂停 session
    [sceneView.session pause];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

@end

你可能感兴趣的:(ARKit基础(一)——ARkit环境搭建)