ios - 在 ARKit 中设置 ARCamera 曝光时间
问题描述
我正在努力开发一个使用 ARKit 的应用程序。为了让应用程序实现其主要目的,即跟踪面部,良好的照明条件是必不可少的。在 AVFoundation 中,有一个设置自定义曝光时间的功能。但是我没有找到在 ARKit 中设置它的方法。我刚刚找到了 get 对象frame.camera.exposureDuration
。那么如何使用 ARKit 设置曝光时间呢?我必须在哪里调用该函数?
func session(_ session: ARSession, didUpdate frame: ARFrame) {
// frame.camera.exposureDuration = ...
}
解决方案
唉,但是您不能在 ARKit 3.5 和 ARKit 3.0 中更改相机的曝光参数。有两个实例属性exposureDuration和exposureOffset,但它们只能获取,不能设置。
var exposureDuration: TimeInterval { get }
var exposureOffset: Float { get }
但是,如果您使用 ARKit 3.5 和配备 LiDAR 扫描仪的设备,您将不再依赖环境中的照明条件。这是因为即使在完全黑暗的环境中,Apple LiDAR 扫描仪也能让您追踪表面。
尽管如此,您可以实施AVFoundation
和Metal
更改 ARKit 相机的曝光参数的方法,但这对您作为开发人员来说是一个真正的挑战。
推荐阅读
- python - 请求beautifulsoup 解析来自选择标签的值
- android - 带有阴影和箭头的自定义微调器
- react-native - 如何在排毒测试代码中选择位于另一个视图(视图上的按钮)但可见的视图(FlatList)?
- postgresql - 根据名称删除多个列?
- java - 仅用于登录的 Spring CSRF 保护
- r - 选择并离开加入:错误:找不到函数,语法问题?
- c - const C 结构中的指针
- c++ - 用最少的代码行数替换 c++ 中的 sef 字符
- c# - 我有一个thread.pool,我怎样才能让主线程等到所有任务完成?
- ios - 滚动表格视图时,TableViewCell 中的 ProgressView 进度会更改