2013-02-08 82 views
1

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

+0

纠正我,如果我错了,但在我的屏幕上,所有像素都是相同的大小。也许只是因为我的电脑是苹果产品? – 2013-02-08 19:10:47

+1

我的意思是像素的RGB值 – Allyson 2013-02-08 20:09:28

回答

1

你可以用两个着色器来计数。

  1. 用1或0替换所有rgb值,具体取决于值是否超过阈值。

  2. 使用总结纹理元素的滤镜内核逐步缩小纹理的大小。 假设您的纹理尺寸为64x64。首先将其缩小到32x32,然后总结输入纹理的4个相关纹理元素。重复,直到你有一个4x4或8x8的纹理,并将其锁定在CPU端并对其余部分进行总结。结果是你想要的texelcount。您可以使用更大的内核(如4x4)来减少drawcalls并将更多工作移至着色器。