AR-ARKit-如何在iOS中使用网络下载.dae 3D模型文件并使用

AR-ARKit-如何在iOS中使用网络下载.dae 3D模型文件并使用

  • 背景:
  • 如果我们把.dae模型直接丢到沙盒里,是获取不到的。 原因是Xcode会帮我们对.scnassets文件夹里的.dae文件做一次优化,所以iOS不能直接使用.dae文件那我们怎么做呢?

.dae文件的处理

  • 第一种方法:
    • 新建一个.scnassets文件,将.dae和素材放进去,编译,找到编译后的.scnassets, 将编译后的该文件作为3D模型的下载文件,下载沙盒使用
  • 第二种方法:
    • 使用copySceneKitAssets 、 scntool 这2个命令脚本对包含了.dea和素材的.scnassets文件进行处理。命令如下:
      ./copySceneKitAssets old.scnassets -o new.scnassets

      方便起见,可将copySceneKitAssets 、 scntool和old.scnassets 放在同一级目录下,详细参考文章(1)

模型加载

iOS是使用SCNScene类来加载和管理3D模型的,模型加载实际上就是SCNScene的初始化,有以下两种方式,详细见[SCNScene API](https://developer.apple.com/documentation/scenekit/scnscene)

  • 第一种方法:init with Name
guard let myScene = SCNScene(named: "MyScene") 
    else { fatalError("Unable to load scene file.") }
scnView.scene = myScene // Your app's SCNView

  • 第二种方法:init with URL
convenience init(url: URL, options: [SCNSceneSource.LoadingOption : Any]? = nil) throws
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,171评论 1 32
  • 本文主要讲解如何加载一些3D模型到AR项目中去。 0. 写在前面 本文分三节内容: 第一节会介绍与之相关的一些基本...
    TankXie阅读 17,629评论 8 17
  • WWDC 2017全球开发者大会上,苹果公布了其第一款具有AR功能平台的iOS操作系统iOS11。ARKit 是一...
    Spykerking阅读 2,574评论 2 10
  • 一 个人,最重要的品质——坚持! 年少时有个童真的梦,长大了要当个作家。只因学习不给力,对读书的胆...
    梦知缘阅读 148评论 0 0
  • 马上要过年了,工作室的节奏一下子停下来了!工人们也陆续回家过年了,快递也不送了,正好借此机会,用思维导图好好想...
    徐建辉_b113阅读 154评论 0 0