繁体   English   中英

Metal或OpenGLES中片段着色器中的共享变量

[英]Shared variables in Fragment shaders in Metal or OpenGLES

这可能不太可能,但是有一个共享全局变量的概念,可以在Metal和OpenGLES中的片段着色器的每次传递中更新吗? 我想在处理每个像素后更新一些统计信息。 我假设每个片段着色器并行运行会出现很多并发问题。

有点像atomic_uint吗? 我最近需要做类似的事情,这就是我用过的东西。 请参阅我的问题的答案: 如何在Metal片段着色器中实现/使用原子计数器?

碎片着色器的原子性能很可能很老实,因为你会从多个着色器核心获得大量的并行读写,因为如果你按照输入纹理方法的方法选择naieve 1片段,着色器会非常短。

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

从顶点着色器中的纹理读取并将单个点放置在与“直方图”坐标匹配的位置。

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

使用glReadPixels将直方图读回CPU。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM