ios - 用几何体放置 SCNNode

标签 ios swift scenekit arkit

我正在使用下面的代码创建一个盒子放置在我的 AR 场景中:

let box = SCNBox(width: side, height: side, length: side, chamferRadius: 0.008)
box.firstMaterial?.diffuse.contents = UIColor(red: 220/255, green: 65/255, blue: 23/255, alpha: 0.6)
box.firstMaterial?.diffuse.contents = UIImage(named:"test1")!
let nodo = SCNNode(geometry: box)
nodo.position = position

我想弄清楚的是如何使盒子在屏幕尺寸(图像空间)中具有恒定尺寸。

我想让放置在 3D 场景中的盒子节点看起来总是相同的大小,比方说 30x30 像素...

因此,无论我在移动手机的 ARKit 相机周围移动时离盒子多远或多近,我都希望盒子在视口(viewport)中始终在屏幕上显示相同的大小。

我怎样才能做到这一点?

最佳答案

如果您需要您的对象处于 3D 状态,解决方案是使用对象和相机之间的距离在每一帧中对其进行缩放。有一个 similar answer here .

如果您想要一个 2d 平面,您可以使用 UIKit 放置它,并通过将 3D 点投影到 2D 系统并使用这些值作为 View 的坐标来更新它每一帧的位置。 ( Reference )

关于ios - 用几何体放置 SCNNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54989620/

相关文章:

ios - CALayer 的实心边框

string - 如何将字符串拆分为等长的子字符串

ios - 旋转 SCNCamera 节点,观察一个假想球体周围的物体

swift - SceneKit - 运动 + 重力 = 奇怪的运动

ios - Xcode - SKSceneKit 关卡编辑器 - 如何连接到 .h 中的变量

ios - Swift Playground 力下一页

iphone - SenTesting 在第一次 STAsert 失败后停止测试

ios - 如何影响同一个 youtube 应用程序?

ios - 如何在按下回车键时 swift 隐藏键盘?

arrays - 将 XML 数据存储为数组,Swift