Xamarin for iOS 11(一) - 初尝ARKit

7 篇文章 0 订阅

编者语: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


   

       

            

          

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值