我不确定这是否可行。所以,如果它不仅仅是向我解释为什么不能这样做。
我通过使用imageStore()在片段着色器中写入3D纹理。
现在,事情正在发挥作用,我要描述的内容本身并不算错误。
由于我写入纹理的方式,相同的纹理元素可能会随着时间的推移采用不同的颜色,因为在每个帧上任何线程都可能是写入该纹素的最后一个线程。
现在,假设我们正在进行普通的2D渲染,然后我可以检查写入纹素的z值,将其与我要写的z值进行比较,如果我的z值大于存储的值放弃手术。
假设我有一个类似的标准来确定是否应该覆盖纹理中的当前值。我怎样才能真正协调写作?
换句话说,我怎样才能原子地读取该值,根据我试图写入的值进行检查,然后原子地进行检查?