关于浮点:fmod等于HLSL中的%运算符

Is fmod equivalient to the % operator in HLSL

以下语句是有效的HLSL:

1
float3(300.0f,200.0f,100.0f) % 256.0f

显然te%运算符适用于浮点数吗? 与fmod有何不同?
以下语句是否等效?

1
fmod(float3(300.0f,200.0f,100.0f), 256.0f)

谢谢


我相信是的。 此处记录了%运算符,并定义了该运算符可用于浮点数和整数。


我不确定它们是否完全相同,但请不要在上面引用我的意思。
这是我的测试:

1
2
3
4
5
6
7
const float2 r = float2(
23.1406926327792690,  // e^pi (Gelfond's constant)
2.6651441426902251); // 2^sqrt(2) (Gelfond–Schneider constant)

return frac( cos( fmod( 12345678., 1e-7 + 256. * dot(p,r) ) ) );  

//return frac( cos( 12345678.% (1e-7 + 256. * dot(p,r)) ) );

当映射为纹理时,第二个版本返回视觉图案,而第一个版本纯粹是随机的。
也许我误会了一些东西,但是在这种情况下,它们的行为显然有所不同。

也许我只是愚弄了测试,但以为我会提及它,因为它似乎很重要。

编辑:此代码起源于这里
我可以在像素着色器中生成随机数吗? 似乎。