【发布时间】:2020-12-26 20:09:50
【问题描述】:
任务
我想capture 一个真实世界的纹理并将其应用到借助激光雷达扫描仪生成的 3D 网格。我想应该使用 Projection-View-Model 矩阵。必须从固定的视点(例如,从房间的中心)制作纹理。但是,如果我们可以应用 environmentTexturing 数据,在场景中收集为 cube-map 纹理,那将是一个理想的解决方案。
看看3D Scanner App。这是一个参考应用程序,允许我们导出带有纹理的模型。
我需要通过一次迭代来捕获纹理。我不需要实时更新它。我意识到改变 PoV 会导致错误的纹理感知,换句话说,会导致纹理失真。此外,我意识到 RealityKit 中有一个动态镶嵌,并且有一个自动纹理 mipmapping(纹理的分辨率取决于它捕获的距离)。
import RealityKit
import ARKit
import MetalKit
import ModelIO
class ViewController: UIViewController, ARSessionDelegate {
@IBOutlet var arView: ARView!
override func viewDidLoad() {
super.viewDidLoad()
arView.session.delegate = self
arView.debugOptions.insert(.showSceneUnderstanding)
let config = ARWorldTrackingConfiguration()
config.sceneReconstruction = .mesh
config.environmentTexturing = .manual
arView.session.run(config)
}
}
问题
- 如何为重建的 3D 网格捕捉和应用真实世界的纹理?
【问题讨论】:
-
你检查过这种方法吗? developer.apple.com/forums/thread/654431
-
是的,这是关于纯色,而不是关于现实世界对象的纹理。
-
哦!我误读了你的问题。我以为你想对导出的网格应用分类。
标签: swift augmented-reality arkit metal realitykit