1

我正在为 XBOX 360 开发,我在一些光照计算中使用 pow() 内在函数。

6-8 年前,通常使用一维查找纹理来近似 pow()。还有人这样做吗?

对于 6 岁的 XBOX 360 是否值得尝试,还是不太可能提高性能?

4

1 回答 1

3

使用pow指令(或 HLSL 中的等效内在函数)。它需要 3 个指令槽,这表明它相当快。

我还没有坐下来计算出查找表的确切成本。但是您将很难在更少的指令槽中找到有用的实现。显然,它需要读取纹理(它本身不是免费的,而且很有可能是依赖纹理读取,因此非常慢)。

(另外:如果查找纹理是更好的选择,那么 GPU 可以pow自己实现这样的指令。)

过去使用纹理很常见的原因是着色器模型 1.xpow中不存在用于顶点着色器或像素着色器的指令。在 2.x 和所有更新的版本中都可以使用(更多指令集)。

于 2011-04-28T05:01:45.727 回答