【发布时间】:2015-04-22 17:01:34
【问题描述】:
在计算着色器(使用 Unity)中,我有一个光线投射,可以找到与网格三角形的交点。在某个时候,我想返回找到了多少个交叉点。
我可以通过标记像素清楚地看到有多少交叉点,但是如果我只是为计算着色器中的每个交叉点增加一个全局 int (并通过缓冲区返回),那么我得到的数字毫无意义。我认为这是因为我正在创建一个竞争条件。
我看到 opengl 有“原子计数器”:https://www.opengl.org/wiki/Atomic_Counter,这似乎是我在这种情况下所需要的。我在 Unity 和 DirectCompute 文档中都没有找到这样的功能。有什么好办法吗?
我可以创建一个 appendBuffer,但这似乎很愚蠢,因为我实际上只需要返回一个 int。
【问题讨论】:
标签: unity3d compute-shader directcompute