我正在为Xbox360进行开发,并且我在一些光照计算中使用了内在的pow()。
6-8年前,它使用一维查找纹理来近似used to be common ()。现在还有人这么做吗?
有6年历史的Xbox360值得一试吗?还是不太可能提高性能?
发布于 2011-04-28 13:01:46
使用 (或等效的 .** )它需要3个指令槽,这表明它相当快。
我还没有坐下来计算出做一个查找表的确切成本。但是你很难在更少的指令槽中找到一个有用的实现。显然,它需要一个纹理读取(这本身并不是免费的,很有可能是一个依赖的纹理读取,所以非常慢)。
(另外:如果查找纹理是更好的选择,那么图形处理器可以像它自己那样实现pow指令。)
过去经常使用纹理的原因是,在着色器模型1.x中,vertex或pixel shaders都不存在pow指令。在2.x和所有更新的版本中都可以使用(more instruction sets.
https://stackoverflow.com/questions/5804865
复制相似问题