1

着色器是否可以查询纹理读取中像素块的总和/平均值,而不是查找单个值?我在 Cg 工作,但欢迎提供任何示例和搜索词。

我特别指的是内置方式,而不是在我的着色器中手动循环。

4

1 回答 1

4

并不真地。

您能做的最好的事情是ARB_texture_gather 扩展(GL 4.0+ 中的核心)/ D3D10.1 的收集功能

这允许您从 2x2 纹素块中获取,但您一次只能获取该纹理的一个组件。此外,纯扩展/D3D10.1 版本只能获取纹理的红色分量。GL 4.0/D3D11.0 版本可以获取四个组件中的任何一个,但每次调用只会获取一个。

当然,你必须自己做 2x2 块的平均。

唯一真正可行的选择是按照 Lyth 所说的去做:为您的纹理生成 mipmap 并从中采样。纹理访问函数可以从特定的 mipmap 中获取,该 mipmap 表示特定范围像素的平均值。当然,这些也是有限的。

于 2011-12-15T17:34:11.463 回答