我在将浮点MTLTexture转换回浮点cv::Mat时遇到了问题。
通常这不是问题,但标准的 32 位纹理浮点在 Metal 中是不可写的。我必须使用可读/写 16 位/通道浮点纹理;获得 16 位纹理数据后,我无法单独访问每个通道,因为本机浮点数的长度为 32 位,并且具有 16 位数据的指针算术会有问题。
我考虑过预定义我自己的 16 位浮点数,但我想检查是否有其他更简单的方法来实现这一点。
iOS 支持 float16 类型,您是否尝试过提取半值并转换为 float32?
我在写入浮动纹理时遇到了同样的问题,所以我只使用了一个缓冲区,如果你不需要采样,这很好。
最近苹果可能改变了一些东西,因为我能够写入浮动纹理。确保您拥有最新版本。