WWDC2017:ARKit初探

一.【Session602】Introducing ARKit:Augmented Reality for iOS

二. 官网API

SceneKit: What’s New
Going Beyond 2D with SpriteKit

session配置

ARSessionConfiguration

if ARWorldTrackingSessionConfiguration.isSupported {
        configuration = ARWorldTrackingSessionConfiguration()
} else {
        configuration = ARSessionConfiguration()
}

//Run your session
session.run(configuration)

//Pause your session
session.pause()

//Resume your session
session.run(session.configuration)

//Change your configuration
session.run(otherConfiguration)

//Reset tracking

ARFrame

捕获图片
跟踪信息
场景信息

ARAnchor 锚

Tracing

World Tracking

坐标和方向
物理距离
关联开始坐标

//Create a session
let mySession = ARSession()

//Set ourselves as the session delegate
mySession.delegate = self

//Create a world tracking configuration
let configuration =  ARWorldTrackingSessionConfiguration()

//Run the session
mySession.run(configuration)

ARCamera

Transform
Tracking state
Camera intrinsics

//计划探测
configuration.planeDetection = .horizontal

ARPlaneAnchor

Transform
Extent
Center

Hit-Testing

Intersect ray with real world
Users scene information
Results sorted by distance

Hit-Test Types

Existing plane using extent
Existing plane
Estimate plane
Feature point

//
let point = CGPoint(x: 0.5, y: 0.5)

let results = frame.hitTest(point, types: [.existingPlane, .estimatedHorizontalPlane])

if let closestResult = results.first {

        let anchor = ARAnchor(transform: closestResult.worldTransform)
        session.add(anchor: anchor)
}

Light Estimation

configuration.isLightEstimationEnabled = true

SceneKit
SpriteKit
Metal

SceneKit
ARSCNView

Custom Rendering 自定义渲染器

func updateRenderer(_ frame: ARFrame){

    drawCameraImage(withPixelBuffer:frame.capturedImage)

    let viewMatrix = simd_inverse(frame.came.transform)
    let prijectionMatrix = frame.camera.prijectionMatrix
    updateCamera(viewMatrix, projectionMatrix) 

    updateLighting(frame.lightEstimate?.ambientIntensity)

    drawGeometry(forAnchors: frame.anchors)

}

Summary

High-level API
Tracking
Scene Understanding
Rendering

ARSession ARSessionConfiguration SceneKit SpriteKit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sailip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值