ARKitEnvironmentMapper 0.3.0

ARKitEnvironmentMapper 0.3.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新版本2017年12月
SwiftSwift 版本4.0
SPM支持 SPM

Halil Ibrahim Kayim维护。



ARKitEnvironmentMapper

CI Status
Version
License
Platform

示例

要运行示例项目,首先从 repo 克隆,然后在 Example 目录中运行 pod install

安装

ARKitEnvironmentMapper 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行:
用法

pod 'ARKitEnvironmentMapper'

要使用名为 "room" 的图像资源初始化基本环境图,请使用以下代码

请注意,输入图像需要有 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)

作者

Halil Ibrahim Kayim

软件工程师 @ Surreal

ARKitEnvironmentMapper 根据 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。
Twitter Github LinkedIn

许可证

CocoaPods 是由