Xamarin for iOS 11(一) - 初尝ARKit
編者語:Xamarin 的兼容性是它最大的優(yōu)點,對于iOS?/?Android?新的功能支持也是無縫的,做到100%兼容。Xamarin.ios?for iOS 11.0的支持已經(jīng)開始,大家可以在這里下載最新的Preview支持 (https://releases.xamarin.com/preview-xcode-9-beta-4-ios-11-macos-10-13-support-preview-2/) .?iOS 11 個人覺得是一個比較大的更新,ARKit(增強現(xiàn)實)和CoreML(人工智能)是下一代移動平臺所必須的。而Xamarin在前兩天iOS 11 beta 4 發(fā)布后也同步更新了Xamarin.iOS ,這個新版本也正式和新的iOS 11 API 完全兼容了。(向Miguel和Xamarin團隊90度鞠躬)。今天先來看看ARKit。
? ? ? ?
? ? ? ??增強現(xiàn)實技術(shù)(Augmented Reality,簡稱 AR),是一種實時地計算攝影機影像的位置及角度并加上相應(yīng)圖像、視頻、3D模型的技術(shù),這種技術(shù)的目標是在屏幕上把虛擬世界套在現(xiàn)實世界并進行互動。AR系統(tǒng)具有三個突出的特點:①真實世界和虛擬的信息集成;②具有實時交互性;③是在三維尺度空間中增添定位虛擬物體。AR技術(shù)可廣泛應(yīng)用于多等領(lǐng)域。蘋果的ARKit利用設(shè)備攝像頭和傳感器完成增強現(xiàn)實的圖像渲染工作,你可以通過結(jié)合SceneKit和SpriteKit為現(xiàn)實場景添加3D/2D圖像。
? ? ? ?這里一個大致的ARKit 框架圖(如圖)
? ?. ??
? ? ? ?iOS是通過ARSCNView構(gòu)建AR視圖,你需要設(shè)置好一些配置,例如光暗度/方位等。然后需要設(shè)置場景,根據(jù)你場景的距離和方位利用SCNScene構(gòu)建3D模型。我在CSDN找到一個ARKit系列的文章很不錯如果想深入下去,建議大家看看?http://blog.csdn.net/u013263917/article/category/6959089?。
? ?我們嘗試通過Visual Studio for Mac 來嘗試構(gòu)建一個簡單的ARKit應(yīng)用。
? ?1. 由于暫時沒有Xcode 9 中的AR模版,我用一個Single View 做模版創(chuàng)建
? ??
? ?
? ?2.添加一個ARViewController,創(chuàng)建成功后添加ARKit和SceneKit應(yīng)用, 并添加全局變量,這里就是剛才提到的ARKit所需要的視圖,會話和配置文件
ARSCNView?arSCNView;??
ARSession?arSession;??
ARSessionConfiguration?arSessionConfig;??
? ?3.在ARViewController創(chuàng)建ViewWillAppear方法添加如下代碼,完成會話工作和視圖添加
ARWorldTrackingSessionConfiguration?config?=?new?ARWorldTrackingSessionConfiguration();??
config.PlaneDetection?=?ARPlaneDetection.Horizontal;??
arSessionConfig?=?config;??
arSessionConfig.LightEstimationEnabled?=?true;??
??
arSession?=?new?ARSession();??
??
arSCNView?=?new?ARSCNView();??
arSCNView.Frame?=?View.Bounds;??
arSCNView.Session?=?arSession;??
arSCNView.AutomaticallyUpdatesLighting?=?true;??
View.AddSubview(this.arSCNView);??
arSession.Run(this.arSessionConfig);??
? ?4.在項目中創(chuàng)建一個Models.scnassets文件夾,并添加一個3D模型(建模麻煩,給大家一個網(wǎng)站https://www.turbosquid.com/Search/3D-Models/free)
? ? ?
? ?5.繼續(xù)在ARViewController的ViewWillAppear延續(xù)剛才代碼,添加一個3D場景
var?scene?=?SCNScene.FromFile("Models.scnassets/chair/chair.scn");??
SCNNode?node?=?scene.RootNode.ChildNodes[0];??
node.Position?=?new?SCNVector3(0,?-1,?-1);??
arSCNView.Scene.RootNode.AddNodes(node);??
? ?6.在ViewController中添加Button并添加響應(yīng)事件跳轉(zhuǎn)到ARViewController
???partial?void?UIButton2935_TouchUpInside(UIButton?sender)??
??
ARViewController?arViewCtrl?=?new?ARViewController();??
??
this.PresentViewController(arViewCtrl,?true,?null);??
???}??
? ?7.別忘記開啟Info.plist的Camera授權(quán)
? ?
? ?8.最后就是運行了,打開按Button,一張桌子就加載進你的現(xiàn)實場景中了,棒極了
? ?? ?
? ?這樣我們就利用Xamarin構(gòu)建了一個ARKit場景,Cool吧。
? ?源代碼下載?https://github.com/lokinfey/ARDemo
原文地址:http://blog.csdn.net/kinfey/article/details/76281802
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的Xamarin for iOS 11(一) - 初尝ARKit的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Entity Framework Cor
- 下一篇: 浅谈 EF CORE 迁移和实例化的几种