金属或露天的碎片着色器中的共享变量



这可能是不可能的,但是是否有一个共享的全局变量的概念,可以在金属& amp;露天?处理每个像素后,我想更新一些统计信息。我认为随着每个片段着色器并行运行时,会有很多问题。

类似atomic_uint的东西?我最近需要做类似的事情,这就是我使用的。在此处查看我的问题的答案:如何在金属碎片着色器中实现/使用原子计数器?

fragment着色器的原子能表现很可能很糟糕,因为您会得到很多平行的读物,并从多个着色器内核中写下,因为如果您选择着色器,则它们会很短Naieve 1片段每个输入Texel方法。

通常的实现是将直方图编码为帧缓冲器。

从顶点着色器中的纹理中读取,并在位置放置一个与"直方图"坐标相匹配的位置。

可以使用混合操作累积直方图。

使用GlreadPixels读回CPU的直方图。

最新更新