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