前言:
上一篇文章介绍了 iOS-SceneKit3D引擎展示本地obj模型、 不过只是加载的本地模型。
项目需求是:通过服务器动态下载并展示3D模型。
Demo下载地址:点击Github下载,SceneKitDemo02案例
思路流程:
1、服务器给下载地址
2、下载得到一个压缩包存入沙盒
3、解压得到一个obj和jpg文件,存入沙盒的model-o.scnassets目录下。疑问参考该文章:iOS-SceneKit网络下载模型无法加载贴图解决方案、
4、模型展示,代码参考上一篇 iOS-SceneKit3D引擎展示本地obj模型、
流程线稿:
注解:为了方便沙盒目录管理,避免混乱,才设置的3dDataDir和3dShowDir文件夹。
3dDataDir:存放下载文件临时目录,待解压处理完毕,会清空该目录下所有文件。
3dShowDir:根据每个下载文件,创建同名的文件夹,方便后续规范管理。下面放置model-o.scnassets文件夹,最终文件存储于该目录。
前期准备:
1、服务器
假设: 将 head.obj 和head.jpg 文件压缩后得到200180808.zip并放入服务器。
下载地址: ftp://zcz:123456@47.107.172.158/200180808.zip
2、 第三方库
pod 'SSZipArchive' // 解压框架
pod 'AFNetworking' , '3.2.1' // 网络下载框架
代码详解:
1、工程准备工作
将model-o.scnassets压缩并拖入项目。
程序运行的时候复制到沙盒的Document根目录下(注:该操作只执行一次即可)。
参考链接:
2、下载工作
通过网络下载文件并存入沙盒Document的3dDataDir下。
3、根据下载压缩包名,创建同名文件夹
4、解压model-o.scnassets.zip得到model-o.scnassets文件夹到Document/3dShowDir/200180808目录下。
5、解压下载数据,并移动到model-o.scnassets文件夹下
6、展示工作
7、删除头模
8、最终效果
建议在运存为2G及以上机型测试,或者模拟器均可。(iPhone 6加载加载一篇空白,内存太小)
网友评论