scenekit - 如何使用 Scenekit(ARKit) iOS 11 以编程方式在相机上创建具有给定宽度和高度的正方形或矩形覆盖层(平面)?

标签 scenekit ios11 xcode9-beta arkit

我是 AR 新手,我想使用 iOS 11 ARKit-Scenekit 根据相机上给定的宽度和高度创建一个正方形或矩形叠加层。

我尝试使用https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip它在中心显示了一个焦点方 block ,我们可以使用它来定位任何 3D 模型。但它确实不稳定。

是否可以根据我们要放置的 3D 模型的大小创建一个类似于上面示例中的焦点方 block 的平面,以便

1)我们可以将飞机拖到任何地方

2)旋转平面

3) 将 3D 模型放置在焦点方 block (平面)上

与此类似的东西 http://www.madewitharkit.com/post/163259313638/arkit-furniture-dropping-app-by

最佳答案

实现您的需求的简单方法:准备一个矩形图标,并使用以下方法生成 SCNNode:

func geometryNodeFromImage(named name: String, width: CGFloat, height: CGFloat, length: CGFloat) -> SCNNode {
    let box = SCNBox(width: width, height: height, length: length, chamferRadius: 0)

    let rectangleMaterial = SCNMaterial()
    rectangleMaterial.diffuse.contents = UIImage(named: name)
    box.materials = [rectangleMaterial]

    return SCNNode(geometry: box)
}

关于scenekit - 如何使用 Scenekit(ARKit) iOS 11 以编程方式在相机上创建具有给定宽度和高度的正方形或矩形覆盖层(平面)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45508070/

相关文章:

swift - SceneKit:导出 UVSet 或将 UV 从一个对象复制到另一个对象

swift - 3d模型SceneKit/ARKit最好使用哪种格式文件

ios - 如何防止iOS11内置屏幕录制功能(如Amazon Prime)以保护DRM内容?

ios - 如何避免警告 : Preparing debugger support of iPAD

ios - 在 iOS 上的 SceneKit 中导入 3d 模型

ios - GKAgent 不会更新 ARKit/SCNScene/GamplayKit 游戏中团队中注册为实体的 SCNNode 的位置

ios - 从 iOS 11 搜索 Controller 导航时不需要的 UITableView 重新加载动画

ios - 如何使用iOS11集成二维码阅读器打开应用

ios - 导航栏标题和导航按钮未出现在 iOS 11 上