首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
ARKit Tips
苹果API搬运工
创建于2021-05-21
订阅专栏
专注于分享 ARKit 开发中的边边角角的小知识,小技巧。篇幅短小精悍,容易理解。
等 84 人订阅
共39篇文章
创建于2021-05-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
ARKit 中用好 unprojectPoint: 效率又提升一倍
unprojectPoint 的作用其实很类似hitTest方法,都是从屏幕指定位置发射射线,与 3D 空间某处相交,得到交点。 unprojectPoint 是将屏幕上的点投影到一个3D 空间内的平面上,可脱离 SCNNode 类和 SCNGeometry 类来使用。 ARK…
AR 开发中那些好用的 simd 函数
由于别名很多,也导致构建函数名有很多,同时也导致很多其他函数名有很多。 这里不做过多列举,只是说明一下,以免产生误会。一般在使用中,个人推荐优先使用 simd 开头的类型和函数。 为什么要单独说四元数的构建?因为向量类型初始化太简单了,也只能从几个数来初始化;而矩阵类型的初始化…
再谈 SCNNode 贴图类型选择问题
上次写到《SCNNode到底应该怎么贴图?UIImage,UIImageView,CALayer用哪个?》列举了贴图的使用。但是,实际使用中发现,不同的贴图其实有不同的问题。 这些贴图实际就是图片,整体支持较好,但是当我们需要复杂内容布局时,只能是都转化为图片。 官方不推荐直接…
AR/3D 开发中数学基础怎么学?
这系列视频能帮助你非常形象地理解:什么是向量,什么是矩阵,各种运算的几何意义是什么。还有一点非常重要,视频中使用的是列主序的矩阵,和 ARKit 保持了一致。 一般新手入门,非常不推荐数学书籍,因为一般都极其枯燥。另一方面是,很多书籍中矩阵都是行主序的,有的还是左手坐标系,这与…
AR 中的 3D 素材那些事儿
一般 3D 素材都是外部工具开发的,Xcode 支持的常见类型有 .dae 和 .obj 格式,其中 dae 格式支持多模型和动画,最为好用。 同时 Xcode 也提供了转换方法,可以将这些格式转换为 .scn 文件。 3D 文件由外部工具创建,再导出,然后放在 Xcode 中…
出一些短期内没什么用的 AR 面试题
这是一篇短期内几乎没什么用的面试题,因为现在很少有人研究 ARKit。在面试中,即使招聘 AR 开发者,更多还是考察应聘者的 iOS 基础知识
ARKit 中巧用物理引擎,解决距离问题
在 AR 开发中,我们有时会遇到这样的问题:让一个物体根据距离来决定显示还是隐藏,比如当你走到 2 米处,显示一个详情介绍页等;或者是场景非常大,希望走远 100 米外,隐藏某些物体。 在 RealityKit 中,我们可以用接近触发器来实现,但 ARKit 中并没有直接提供相…
AR贴图中 contentsTransform 的正确使用
上次在给物体贴图时,我尝试调整了node.geometry.firstMaterial.diffuse.contentsTransform,结果并不如我想象的那样好用,甚至完全搞不明白。这个旋转到底是怎么回事,应该怎么理解才对。。。。 首先,不管贴图本身的尺寸是多少,当被应用到…
3D 布局小练习:如何在 AR 中给地球贴瓷砖?
本文完成一个球形布局,借此说明 Xcode 中 3D 编辑器用法,及坐标转换 API 的使用。最终效果如图,将 48 个方形平面贴在球体表面: 首先,创建一个球体,半径为 2 米,供我们参考。(其实不创建也没关系) 然后添加第一块平面,修改它的大小和位置,将它放置在赤道位置,与…
ARKit 中用好 lookAt: 效率提升一倍
但实际上,我们可以不用这么麻烦,使用 ARKit 提供的 lookAt 方法可以让我们方便地完成“指向”操作。 lookAt操作可以让一个 node “指向”某个位置,默认的情况下,就是以 z 轴的正方向来对着目标位置。 如下图,飞机的头部指向了 z 轴的正方向。 而 loca…
判断 AR 中坐标系的姿态和位置的简单方法
坐标轴一般是用颜色来区分的,(x,y,z) 轴对应 RGB 三种颜色。因为苹果在 AR/3D 中使用右手系,也可以用手指来表示:大拇指,食指,中指 分别对应 (x,y,z) 轴: 但是前面所讲的 Position 和 Euler 角度是相对于谁的呢?一般调整的是 Local ,…
如何在 AR 中完成一个简单的点击移动虚拟物体操作?
在 AR 开发中,我们经常需要通过手机屏幕与 AR 物体进行交互,比如旋转、缩放和移动。 但是移动就稍微麻烦一点,在二维的手机屏幕上,操作三维物体的位置并不容易。常见的做法是点击屏幕时,将物体固定在手机前,跟随手机移动,松开后放下物体。 但这种方式有个缺点,就是会改变物体的旋转…
ARKit 中如何使用传统的二维手势?
其实就是给 AR 物体贴图,在贴图中放一个 UIButton 或 UIScrollView,又或者自定义 View, 看它们能不能正常响应手势,以及能响应哪些手势。 需要注意的是:苹果官方目前(至 iOS13)都并不推荐贴图使用 UIView 类,可能会有潜在的布局问题,内存问…
SCNCamera 在 SceneKit 和 ARKit 中有什么不同?
在 ARKit 和 SceneKit 开发中,相机位置都是用 SCNView 对象的 pointOfView 结点来表示的,相机的具体参数则在scnView.pointOfView.camera中。 我们先来看看 SCNCamera 中几个不太好理解的参数,然后再来看看它在 S…
ARAnchor 到底有什么用?我的一些简单认识
ARAnchor 是 ARKit 中重要类型,也是一个重要概念。但是在使用中却让人有很多问题:ARAnchor 是啥?用起来怎么老出问题?没看出来什么明显好处,不用行不行? 苹果工程师也曾经说过:Anchor 是虚拟和现实之间的连接点。 恰好,苹果在 WWDC2019 上讲多人…
ARKit 开发中好用的第三方库
目前,ARKit 开发者并不多,在开发过程中,当我们遇到复杂效果时,总是感觉无从下手。其实除了官方 Demo 中的代码外,github 上还有很多第三方的库,质量很高,对我们开发很有帮助。 Awesome-ARKit包括了一系列的 AR 开源项目、app store 已上架应用…
ARKit 中矩阵的简单再理解
一般在苹果的 ARKit 和 SceneKit 中,用到的矩阵有三种SCNMatrix4,simd_float4x4和GLKMatrix4。 GLKMatrix4是从 OpenGL 框架 GLKit 中带过来的,各种函数很全面。 SCNMatrix4最初是给 SceneKit …
SCNNode到底应该怎么贴图?UIImage,UIImageView,CALayer用哪个?
这样子,但是 SCNNode 类型支持的贴图有很多种,官方文档中说明中主要有:UIColor,UIImage, CALayer,NSURL,SKScene,SKTexture...甚至还支持AVCaptureDevice相机和AVPlayer播放视频。 实际开发中,我还发现 U…
多快好省的 iOS 平台 AR 展示方案已经成熟了
最近,终于翻译完成了 WWDC 2019 上所有关于 AR 相关的 session。 然而今天,我不是想来讨论这些技术细节的。而是在翻译完成 Session 612 - Advances in AR Quick Look 之后,深深地感觉到: AR Quick Look(AR …