Post marked as solved
Click to stop watching this thread.
You have stopped watching this post. Click to start watching again.
contentPostList.repliessolved.tooltip
Ok I figured it out. This depth value is just "z" component of x,y,z coordinates.
rest of code:
var intrinsics = cameraIntrinsics
intrinsics[0][0] /= cameraToDepthRatio
intrinsics[1][1] /= cameraToDepthRatio
intrinsics[2][0] /= cameraToDepthRatio
intrinsics[2][1] /= cameraToDepthRatio
let depthMapPixelPoint = pointOnBuffer
let xrw = ((Float(depthMapPixelPoint.x) - intrinsics[2][0]) * depth / intrinsics[0][0])
let yrw = (Float(depthMapPixelPoint.y) - intrinsics[2][1]) * depth / intrinsics[1][1]
// Y is UP in camera space, vs it being DOWN in image space.
let localPoint = simd_float3(xrw, -yrw, -depth)
let worldPoint = viewMatrix.inverse * simd_float4(localPoint, 1)
let result = simd_float3(worldPoint.x, worldPoint.y, worldPoint.z)
let vector = result - cameraPosition
let distance = simd_length(vector)