使用GPU对小于某个值的像素数进行计数
counting number of pixels smaller than a certain value with GPU
假设您有一个2D GPU纹理资源。使用GPU(使用DirectX,无论是否使用着色器)计算小于某个值的纹素数量的最佳方法是什么?
您可以使用两个着色器进行计数。
-
将所有rgb值替换为1或0,具体取决于该值是否超过限制。
-
使用过滤器内核一步一步地减小纹理的大小,过滤器内核将纹理像素相加。假设您的纹理大小为64x64。首先,将其减少到32x32,并将inputtexture的4个相关纹理像素相加。重复此操作,直到你有一个4x4或8x8纹理,并将其锁定在CPU侧,然后对其余部分求和。结果就是你想要的texelcount。您可以使用更大的内核(如4x4)来减少绘制调用,并将更多工作转移到着色器。
相关文章:
- OpenGL - 每个三角形的像素数不正确
- C++ 在给定像素数据数组的表单上绘制矩形
- 从位图提取像素数据的问题
- 如何在 sfml 中使用图像中的像素数组
- 如何将 QImage 中的像素数据转换为其他格式
- 如何将CImg函数与像素数据一起使用?
- 将原始像素数据转换为qpixmap
- qimage:如何正确破坏指向像素数据的指针
- 如何通过 c++ 获取图像的所有像素数据 (RGB)
- 如何从窗口中获取像素数据像素缓冲区并提取RGB
- 设备定位的像素数组(从 C++ AMP)到 使用 D3D / D2D 的窗口
- SetPixel在像素数量后崩溃
- I'm试图将像素数据转换为OpenCV Mat对象
- 使用opencv将像素数据分配到向量中
- 如何在 c++ 中最有效地将像素数组呈现到窗口
- 将浮点像素数据从文件中读回 C#
- 在窗口中的屏幕上获取坐标像素数据的简单方法
- 有没有办法在不复制所有像素的情况下将现有的像素数组转换为位图
- 在 C 或 C++ 中将 JPEG 或 PNG 图像作为像素数据打开
- 使用GPU对小于某个值的像素数进行计数