ARKit - 第一個AR項目

移動AR平臺
高級API
支持A9以上設備(不支持模擬器)
Xcode9及以上 iOS 11及以上
移動設備:SE 6S 6SP 7 7SP...

三大特性

追蹤

1则酝、全局追蹤
2闰集、視覺慣性測距VIO
3武鲁、沒有外部設備

場景理解

1蝠检、平面檢測(現實世界的理解)
2叹谁、命中測試(動作)
3、光估計

渲染

簡單集合
憔涉。析苫。。
SceneKit
SpriteKit
Metal

相機捕捉現實世界 ARKit
3D
SceneKit


QQ截圖20170901210224.png

ARSession


QQ截圖20170901210720.png

QQ截圖20170901210840.png

開始 創(chuàng)建項目

QQ20170901-232414@2x.png

QQ20170901-232540@2x.png

ARKit 入門掌握的四大點

1议街、幾何

2璧榄、節(jié)點

3、渲染

4涂身、手勢

//先實例化一個空的SCNScene類
let scene = SCNScene()

1搓蚪、幾何

//創(chuàng)建幾何實例妒潭,定義一個SCNBox類的幾何實例,然后創(chuàng)建盒子漠酿,并將其作為根節(jié)點的子節(jié)點谎亩,根節(jié)點就是scene  
 let box = SCNBox(width:0.1,height:0.1,length:0.1,chamferRadius:0)

2、節(jié)點

//創(chuàng)建子節(jié)點
let boxNode = SCNNode(geometry:box)
//x,y,z軸   -0.2就是前邊
boxNode.position = SCNVector3(0,0,-0.2)
//把節(jié)點添加到根節(jié)點scene上
scene.rootNode.addChildNode(boxNode)

3夫凸、渲染

let material = SCNMaterial()//先創(chuàng)建一個渲染器
// material.diffuse.contents = UIColor.red//設置顏色
material.diffuse.contents = UIImage(named:"1.png")//設置圖片到節(jié)點上
box.materials = [material]//使用這個渲染器渲染

4夭拌、手勢

registerGestureRe();//調用
func registerGestureRe() {
//創(chuàng)建手勢
        let tap = UIGestureRecognizer(target:self ,action: #selector(tapPed))
//將手勢添加到sceneView上
        self.sceneView.addGestureRecognizer(tap)
    }
 
{
//球體 加上手勢
        let scene = SCNScene()
        let sphere = SCNSphere(radius:0.3)//0.3米
        let material = SCNMaterial()
        material.diffuse.contents = UIImage(named:"1.png")
        sphere.materials = [material]
        
        let sphereNode = SCNNode(geometry:sphere)
        sphereNode.position = SCNVector3(0,0,-0.5)
        scene.rootNode.addChildNode(sphereNode)
        sceneView.scene = scene
registerGestureRe();//調用
}
@objc func tapPed(gestureRecognizer:UIGestureRecognizer){
        
        let sceneView = gestureRecognizer.view as!ARSCNView
        let touchLocation = gestureRecognizer.location(in: sceneView)
        let hitRersults = sceneView.hitTest(touchLocation, options: [:])
        //一開始的時候 index = 0
        if !hitRersults.isEmpty {
            if index == self.textures.count{
                
                index = 0
                
            }
            guard let hitRersult = hitRersults.first else {
                return
            }
            let node = hitRersult.node
            node.geometry?.firstMaterial?.diffuse.contents =UIImage(named:textures[index])
            index += 1
        }
        

OVER!

探索:

除了立方體道逗、球體還有什么形狀的圖形可以嘗試一把呢献烦?
碳原子模型
參考文章:http://www.cocoachina.com/ios/20141113/10205.html

渲染上:視頻卖词、 gif

渲染視頻:要用到SpriteKit框架中的一個類SKVideoNode,這個類主要用來在2D游戲中渲染視頻的,今天我們就借助這個類,實現在3D場景中播放視頻
參考:http://www.reibang.com/p/be06bf357564

//1
let scnView = SCNView(frame: self.view.bounds);
 scnView.scene = SCNScene()
 self.view.addSubview(scnView);
// 2創(chuàng)建一個攝像機
let cameraNode = SCNNode()
 scnView.scene?.rootNode.addChildNode(cameraNode);
//3創(chuàng)建一個節(jié)點并綁定一個平面幾何對象
  let boxNode = SCNNode()
  scnView.scene?.rootNode.addChildNode(boxNode);
//4創(chuàng)建一個2D游戲場景和一個播放視頻的對象
let url = Bundle.main.url(forResource: "123-pad", withExtension: "mp4")
let videoNode = SKVideoNode(url: url!)
let skScene = SKScene()
skScene.addChild(videoNode)
//5 給平面體設置渲染內容
 plane.firstMaterial?.diffuse.contents = skScene
//6 播放視頻
 videoNode.play()
//7打開攝像頭控制查看效果
 scnView.allowsCameraControl = true;

渲染 gif:nill??

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末即横,一起剝皮案震驚了整個濱河市裆赵,隨后出現的幾起案子战授,更是在濱河造成了極大的恐慌,老刑警劉巖植兰,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楣导,死亡現場離奇詭異筒繁,居然都是意外死亡,警方通過查閱死者的電腦和手機驮宴,發(fā)現死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門幻赚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人落恼,你說我怎么就攤上這事佳谦〈骼裕” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵钻蔑,是天一觀的道長啥刻。 經常有香客問我,道長咪笑,這世上最難降的妖魔是什么可帽? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮窗怒,結果婚禮上映跟,老公的妹妹穿的比我還像新娘。我一直安慰自己扬虚,他們只是感情好努隙,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布辜昵。 她就那樣靜靜地躺著荸镊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪堪置。 梳的紋絲不亂的頭發(fā)上躬存,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音舀锨,去河邊找鬼优构。 笑死,一個胖子當著我的面吹牛雁竞,可吹牛的內容都是我干的钦椭。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼碑诉,長吁一口氣:“原來是場噩夢啊……” “哼彪腔!你這毒婦竟也來了?” 一聲冷哼從身側響起进栽,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤德挣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后快毛,有當地人在樹林里發(fā)現了一具尸體格嗅,經...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡番挺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了屯掖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玄柏。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贴铜,靈堂內的尸體忽然破棺而出粪摘,到底是詐尸還是另有隱情,我是刑警寧澤绍坝,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布徘意,位于F島的核電站,受9級特大地震影響轩褐,放射性物質發(fā)生泄漏椎咧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一把介、第九天 我趴在偏房一處隱蔽的房頂上張望勤讽。 院中可真熱鬧,春花似錦劳澄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至飒硅,卻和暖如春砂缩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背三娩。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工庵芭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雀监。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓双吆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親会前。 傳聞我的和親對象是個殘疾皇子好乐,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容

  • 發(fā)現 關注 消息 iOS 第三方庫、插件瓦宜、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,124評論 4 61
  • 你希望如何被別人記得蔚万? 你認為什么最重要? 你要怎么從當下到達目的地临庇? 以上三個問題是相關聯的反璃,我是誰昵慌?...
    Aloe_慧閱讀 395評論 2 4
  • 蔡康永在《給殘酷社會的善意短信》中寫道:15歲覺得游泳難,放棄游泳淮蜈,到18歲遇到一個你喜歡的人約你去游泳斋攀,你只好說...
    李欣悅1996L閱讀 161評論 0 0
  • 管理的負循環(huán)-人員流動大,很多崗位總是新人履職礁芦,工作不熟悉蜻韭,大錯不犯,小錯不斷 柿扣。此起彼皮肖方,重視解決問題 忙來忙去...
    三月天olivia閱讀 1,416評論 0 0
  • 《艾倫詩集》第6篇 《艾倫日記本》第84篇原創(chuàng)文章 《怎留明月照山崗司草?艰垂!》 ——艾倫 中/秋/月/明/人/盡/望,...
    艾倫教練閱讀 213評論 0 2