As my title indicates, I would like to figure out how to run RoomCaptureSession with meshing turned on and also get the captured room data as well.
Here is my vars:
var captureSession: RoomCaptureSession?
var finalResults: CapturedRoom?
var roomCaptureSessionConfig: RoomCaptureSession.Configuration = RoomCaptureSession.Configuration()
My setup:
override func viewDidLoad() {
super.viewDidLoad()
captureSession = RoomCaptureSession()
captureSession?.delegate = self
arView.session = captureSession!.arSession
arView.session.delegate = self
//captureSession?.run(configuration: roomCaptureSessionConfig)
setupCoachingOverlay()
arView.environment.sceneUnderstanding.options = []
// Turn on occlusion from the scene reconstruction's mesh.
arView.environment.sceneUnderstanding.options.insert(.occlusion)
// Turn on physics for the scene reconstruction's mesh.
arView.environment.sceneUnderstanding.options.insert(.physics)
// Display a debug visualization of the mesh.
arView.debugOptions.insert(.showSceneUnderstanding)
// For performance, disable render options that are not required for this app.
arView.renderOptions = [.disablePersonOcclusion, .disableDepthOfField, .disableMotionBlur]
// Manually configure what kind of AR session to run
arView.automaticallyConfigureSession = false
let configuration = ARWorldTrackingConfiguration()
configuration.sceneReconstruction = .mesh
configuration.environmentTexturing = .automatic
arView.session.run(configuration)
captureSession?.run(configuration: roomCaptureSessionConfig)
}
I have the RoomCaptureSessionDelegate setup and can get the captured room but no meshing. Seems to me when I run captureSession, it overrides the arView.session.
Any help will be appreciated.
Thank you.