玩转iOSARkit以及3D模型
文章目录
- 前言
- 解析下代码
- planeBox
- 换个模型
- 推荐的3D模型网站
- 下载模型注意事项
- 将新模型放到项目里
- 渲染模型
- 两个诡异错误
- Scene is modified in a rendering callback of another scene.
- 模型不出来
- 模型大小调整
前言
- 学AR的过程真的是很痛苦,网上搜搜靠谱的资料几乎没有,像样的Demo基本swift,关键的特性更是发现互联网白茫茫一大片,完全没我想要的
- 真的好痛苦,尤其是被一个问题卡了半天,后来发现其实是一个非常非常简单的小问题,唉,心塞
- 在这篇博客,主要讲一些3D模型在Xcode中怎么设置的知识,也很小白,适合对于3D模型两眼一抹黑,啥也不懂跟我一样的小白研究
- AR部分我都是看的这位大神的GitHub学习的ARKitDemo
- 我用到的部分是03-ARKit检测到平面自动增加3D模型
解析下代码
- 大家把整个Demo好好研究下就完事了,注释写的也是很详细,我也懂得不是清楚,就讲一个地方
planeBox
- 作者在添加花瓶前先放了一个planeBox,planeBox.firstMaterial.diffuse.contents = [UIColor clearColor];这里将颜色改成白色就能看见我们的planeBox了
- 他的思路就是先通过平地捕捉找到平面的锚点,在此锚点基础上添加一个高度为0的长方形模型(也就是像一张纸一样,当然是透明的)
- 然后添加花瓶模型vaseNode,再将其添加在planeBox上
换个模型
- 该Demo用的模型是一个花瓶,作为跃跃欲试的开发者第一步当然是换个模型啦
推荐的3D模型网站
- turbosquid
- free3d
下载模型注意事项
- 我自己用的是scn和dae格式的
- 下载的时候不要只下载模型文件,单单的模型文件是看不出那种狂拽酷炫屌炸天的模型效果的,因为那样子的没有渲染过,只是个灰色的铁憨憨
- 所以要把纹理图也下载下来,进行渲染
- 举个例子,我下载的是plate这个盘子
这里面除了dae文件下载下来之外,还有那个jpg文件也要下载下来,那个就是渲染文件
将新模型放到项目里
渲染模型
将你的模型文件放入Demo里的art.scnassets里
没有渲染过的模型长这样
进行渲染,先在左边的Scene graph中选择plate(如果你下的也是这个盘子的话,它里面好想写错了,写成plato了),在右边的工具栏中选择Materials(就是那个一个圆圈的栏目)在其中的diffuse一栏,点开,选择你的plate.jpg
然后把3D模型路径改成你的模型的
两个诡异错误
- 就在我写完这些有的没得之后以为大功告成的时候,悲哀的发现程序直接报错了
Scene is modified in a rendering callback of another scene.
- 这个报错给出了两个scene地址,后一个就是我们创建的,第一个是哪一个始终没找出来
- 搜索这个问题,找到了stack overflow上一个老哥问的同样的问题Scene is modified when rendering callback
- 他的解决方法其实就是另外开一个线程,照做之后这个问题也就解决了
- 当然为什么会这样,我是真的不懂,如果有知道的大神欢迎评论
模型不出来
- 这里注意这行代码SCNNode *vaseNode = scene.rootNode.childNodes.firstObject;看到没有,我们选择的是根结点的子节点的第一个节点
- 那么我们在哪里看我们的节点呢?其实就是在前面看到的Scene graph里,而我们会看到plato并不是第一个节点,我们把它换个位置,成为第一个节点就行
模型大小调整
- 这样之后看模型会发现模型特别特别大,看不到全貌,需要对模型进行大小调整
- 还是打开模型,选择右边第三个标签(一个正方体),在其中的scale里进行调整
玩转iOSARkit以及3D模型相关推荐
- AI画师技术又精进了? AI画师三维版试玩——Dreamfields和DreamFusion向文本生成3D模型领域进发
0.AI画师二维版的出圈 最近AI画师的杰出表现让人惊讶无比,2022虽然不是ai绘图这项技术诞生的时间,但却是到目前为止最爆火出圈的绘图元年,现在市场上也已经有了很多成熟的AI绘画APP:用户仅需打 ...
- 与虫子尾交3d动画网站_PPT中最酷的效果 —— 3D模型全解
Hello,大家好,我是利兄~ 前两天一个客户问我,该如何用PPT制作超级震撼的3D效果? 我突然发现,对于PPT种的3D玩法,我好像一直没有讲过,今天我们就来详细的聊聊这个PPT中的逆天功能. 先温 ...
- 如何破解游戏包中的素材与3D模型
我们做游戏的时候,往往缺素材,动画, 3D模型,如何解决这些问题呢?今天我们给大家介绍一个好用的技巧. 1: 我要做什么样的游戏, 用什么风格? 我们开始做游戏的时候,往往不知道自己要做什么样的游戏, ...
- 照片转3d模型_科技造假?3D打印的人像逼真到让人不敢相信!
现在关于"科技造假"的话题特别多.先有zao换脸,又有声音模拟器换声音骗钱,很多小伙伴再也不敢相信别人了. 点击添加图片描述(最多60个字) 这才哪到哪啊兄弟们,换脸换声音都是小儿 ...
- 【HTML5】3D模型--百行代码实现旋转立体魔方
最近研究魔方的玩法,就突然想用HMTL5写一个魔方的模型,由于魔方是一个3D的立方体,这次就试着用HTML5写了一个简单的3D模型. 下面是测试链接和预览画面. http://lufy.netne.n ...
- php 3d模型,3D模型如何使用?总结3D模型实例用法
一.总述 当代WebGL编程所使用的3D模型大多是从3DsMax模型或Blender模型转化而来,这种工作模式比较适合3D设计师和3D程序员分工配合的场景.但对于单兵作战的WebGL爱好者来讲这种模式 ...
- uniapp vue3中引入外部3D模型(适配App)
uniapp vue3中引入外部3D模型(适配App) 主要方式是通过renderjs来实现的, 因为使用threejs的话需要获取页面上的dom节点, 然后需要把threejs创建出来的canvan ...
- 没有美术基础也可以学习3D模型吗?| 零基础学建模小白篇
美术基础对于学习模型制作肯定有帮助,但绝对不是充分条件. 学过传统美术基础在做3D模型的时候主要优势是具备审美,比如做人体的时候,形体这块自己虽然不一定做得出,但至少知道啥是正确的方式,比如做金属破旧 ...
- 没有美术基础也可以学习3D模型吗?| 零基础学建模
美术基础对于学习模型制作肯定有帮助,但绝对不是充分条件. 学过传统美术基础在做3D模型的时候主要优势是具备审美,比如做人体的时候,形体这块自己虽然不一定做得出,但至少知道啥是正确的方式,比如做金属破旧 ...
最新文章
- java源码保护技术,sourceguard
- mysql server 5.6使用_关于MySQLServer5.6配置问题
- 微信小程序 canvas 文字自动换行
- 剑破冰山—Oracle开发艺术 前言
- ubuntu下的第一个脚本file.sh
- 测试系列之六---软件测试分类
- git统计每个人的代码行数_项目出了bug如何甩锅?使用这个Git工具帮你找到元凶...
- Sprig boot自动配置
- 【渝粤教育】国家开放大学2018年春季 7140-22T危急重症护理学(本) 参考试题
- listview bcb 行的颜色_文明交通安全行手抄报简单又漂亮
- echarts vue 柱状图实例_「源码学习」适用于 Vue3 的 ECharts 包装组件
- node mysql和koa_node+koa2+mysql搭建博客后台
- jdbc mysql url写法_Springboot项目连接MySql写了一个bug你也可能遇到
- 当下最流行的几个php论坛程序比较哪个好
- 《未来世界的幸存者-阮一峰》系列分享专栏
- 中药图片拍照识别系统全套开源
- 〖Python 数据库开发实战 - Python与MySQL交互篇⑪〗- 项目实战- 完善新闻管理系统中轮询的交互判断
- fdisk和parted对磁盘的分区总结
- 计算机控制系统转换的指标,(计算机控制系统实验平台.doc
- CV-Model【8】:ConvNeXt
热门文章
- Ubuntu18.04安装OBS Studio
- python解一元二次方程复数_python – SymPy和复数的平方根
- 微信小程序:页面有内容却不显示原因
- 英语学习者的十句经典名言
- Android 系统简单介绍
- 科视Christie 亮相上海国际电影论坛暨展览会 彰显 PLF 放映和 RGB 纯激光技术领域的领导地位
- 推荐几个值得关注的公众号平台
- 小程序使用本地图片报错问题 Failed to load local image resource
- 图片太普通,教你轻松制作画中画特效
- php商城积分兑换商品功能,ECSHOP积分商城添加金额+积分兑换功能