比特替代方案

时间:2011-05-16 16:25:47

标签: random shader bit-manipulation operator-keyword

我正在尝试编写一个需要每像素生成伪随机数的着色器 - 从纹理中获取太贵了。

我发现的所有发生器都使用^,<<,&运营商,但我正在研究的着色器模型不支持这些。我可以使用这些算子的数学等价物吗?

作为参考,我估计速度超过精确度。

谢谢!

1 个答案:

答案 0 :(得分:0)

其中,我认识的唯一数学等价物是<<运算符。即:

  

N&lt;&lt; X = N *(2,4,8,16,32,64,128,256,512,1024等)

e.g。

  

N&lt;&lt; 5 = N * 32

只需为值(2 ^ X)创建一个查找,然后乘以该值。

其他的会更复杂,可能需要你编写一个算法来解决它们。我不认为他们有任何直接的数学等价物。

C运行时实现的源代码可能对此有用。或者只是搜索算法来实现每个算法,例如:Fast implementation/approximation of pow() function in C/C++