在Metal计算内核中存储每像素持久性数据的正确方法是什么



我正在尝试实现基于opencv-cuda实现的MoG背景减法算法

我需要的是为多帧中的每个像素位置独立地维护一组高斯参数。目前,我只分配一个大的MTLBuffer来完成这项工作,在每一帧上,我都必须调用commandEncoder.setBufferneneneba API。有更好的方法吗?我读过关于imageblock的文章,但我不确定它是否相关。

此外,如果你能发现任何不应该直接从古巴语翻译成金属的东西,我会非常高兴。

分配一个8位纹理,并将中间值存储到计算着色器中的纹理中。然后,在渲染该纹理后,可以将其作为输入纹理重新绑定到其他渲染中需要从中读取的任何其他方法。在这个github示例项目中,你可以找到一个非常详细的例子,在Metal上创建一个并行前缀和。此示例还显示了如何为Metal着色器编写XCTest回归测试。Github MetalPrefixSum

最新更新