![](/img/trans.png)
[英]Pass MTLTexture to SCNProgram with metal vertex and fragment shaders
[英]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.