【问题标题】:counting number of pixels smaller than a certain value with GPU用GPU计算小于某个值的像素数
【发布时间】:2013-02-08 18:58:45
【问题描述】:

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

【问题讨论】:

  • 如果我错了,请纠正我,但在我的屏幕上,所有像素的大小都相同。也许只是因为我的电脑是 Apple 产品?
  • 我的意思是像素RGB值

标签: c++ image directx gpu


【解决方案1】:

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

  1. 将所有 rgb 值替换为 1 或 0,具体取决于值如何超过阈值。

  2. 使用过滤器内核逐步减小纹理的大小,该过滤器内核汇总了纹素。 假设您的纹理大小为 64x64。首先你把它缩小到 32x32 并总结输入纹理的 4 个相关纹素。重复直到您拥有 4x4 或 8x8 纹理并将其锁定在 CPU 端并将其余部分相加。结果是您想要的 texelcount。您可以使用更大的内核(如 4x4)来减少绘制调用并将更多工作转移到着色器。

【讨论】:

    猜你喜欢
    • 2018-09-17
    • 2021-04-14
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多