测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新版本 | 2017年12月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
要运行示例项目,首先从 repo 克隆,然后在 Example 目录中运行 pod install
。
ARKitEnvironmentMapper 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行:
用法
pod 'ARKitEnvironmentMapper'
请注意,输入图像需要有 2:1 的宽高比。
let environmentMapper = ARKitEnvironmentMapper(withImageName: "room")
或者,您可以使用高度和颜色初始化它
要开始映射过程,请调用 startMapping()
方法。应在运行 ARSession
几秒后调用此方法,以避免环境图映射出现错误。
let environmentMapper = ARKitEnvironmentMapper(withMapHeight: 512, withDefaultColor: .red)
要停止映射过程,请简单地调用 stopMapping()
。
要使用当前摄像头的当前帧更新环境图,您可以在实现 ARSessionDelegate
的类中使用以下代码
您可以在 didUpdate
中调用 updateMap(withFrame:)
,无论首选的 FPS 如何,因为此方法的频率默认限制在最多 10。在未来版本中,此频率将是可定制的。
func session(_ session: ARSession, didUpdate frame: ARFrame) {
environmentMapper.updateMap(withFrame: frame)
}
在映射环境一段时间后,您可以使用以下代码获取当前生成的环境图,并将其设置为 ARSCNView
的环境图
注意:将此设置为理想的应使用 .mtlTexture
作为输入,以绕过任何图像转换和内存操作开销。然而,由于苹果的一个错误,将 MTLTexture
设置为环境图目前没有任何效果。如果您认为这不是苹果的错误并且您有解决方案,请毫不犹豫地发送 pull request。
sceneView.scene.lightingEnvironment.contents = environmentMapper.currentEnvironmentMap(as: .cgImage)
作者
软件工程师 @ Surreal ARKitEnvironmentMapper 根据 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。 |
---|
CocoaPods 是由