用几何体放置 SCNNode
Placing SCNNode with geometry
我正在使用以下代码创建一个框以放置在我的 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
我想弄清楚的是如何使盒子在屏幕尺寸(图片 space)中具有恒定尺寸。
我想让放置在 3D 场景中的盒子节点看起来总是一样的大小,比方说 30x30 像素...
因此,无论我在 ARKit 相机周围移动 phone 时离盒子多远或多近,我都希望盒子在视口中始终在屏幕上显示相同的大小。
我怎样才能做到这一点?
如果您需要您的对象是 3D 的,解决方案是使用对象和相机之间的距离在每一帧中对其进行缩放。有一个 similar answer here.
如果您想要一个 2d 平面,您可以使用 UIKit
放置它,并通过将 3D 点投影到 2D 系统并使用这些值作为视图的坐标来更新每一帧的位置。 (Reference)
我正在使用以下代码创建一个框以放置在我的 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
我想弄清楚的是如何使盒子在屏幕尺寸(图片 space)中具有恒定尺寸。
我想让放置在 3D 场景中的盒子节点看起来总是一样的大小,比方说 30x30 像素...
因此,无论我在 ARKit 相机周围移动 phone 时离盒子多远或多近,我都希望盒子在视口中始终在屏幕上显示相同的大小。
我怎样才能做到这一点?
如果您需要您的对象是 3D 的,解决方案是使用对象和相机之间的距离在每一帧中对其进行缩放。有一个 similar answer here.
如果您想要一个 2d 平面,您可以使用 UIKit
放置它,并通过将 3D 点投影到 2D 系统并使用这些值作为视图的坐标来更新每一帧的位置。 (Reference)