我想在我的 OpenGLES 项目中使用 depthDataMap 作为 iPhoneX 真实深度相机的纹理。已经下载了一些 Swift 示例,似乎可以在 Metal 上创建 depthMap 并将其采样为浮动纹理。但是在 OpenGLES 上,从深度缓冲区创建深度纹理的唯一方法是,
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, depthWidth, depthHeight, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, CVPixelBufferGetBaseAddress(depthBuffer));
样本值不同于从 DisparityFloat16 像素类型导出为 CIImage 的值。与 CIImage 相比,该值要低得多,并且不是线性比例。
这是通过代码:CIImage *image = [CIImage imageWithCVImageBuffer:depthData.depthDataMap];
有没有人有同样的问题?