使用GPU对小于某个值的像素数进行计数

counting number of pixels smaller than a certain value with GPU

本文关键字:像素数 GPU 小于 使用      更新时间:2023-10-16

假设您有一个2D GPU纹理资源。使用GPU(使用DirectX,无论是否使用着色器)计算小于某个值的纹素数量的最佳方法是什么?

您可以使用两个着色器进行计数。

  1. 将所有rgb值替换为1或0,具体取决于该值是否超过限制。

  2. 使用过滤器内核一步一步地减小纹理的大小,过滤器内核将纹理像素相加。假设您的纹理大小为64x64。首先,将其减少到32x32,并将inputtexture的4个相关纹理像素相加。重复此操作,直到你有一个4x4或8x8纹理,并将其锁定在CPU侧,然后对其余部分求和。结果就是你想要的texelcount。您可以使用更大的内核(如4x4)来减少绘制调用,并将更多工作转移到着色器。