以下语句是有效的 HLSL:
float3(300.0f,200.0f,100.0f) % 256.0f
显然 te % 运算符适用于浮点数?这与fmod有何不同?以下陈述是否等效?
fmod(float3(300.0f,200.0f,100.0f), 256.0f)
谢谢
以下语句是有效的 HLSL:
float3(300.0f,200.0f,100.0f) % 256.0f
显然 te % 运算符适用于浮点数?这与fmod有何不同?以下陈述是否等效?
fmod(float3(300.0f,200.0f,100.0f), 256.0f)
谢谢
我相信是的,是的。% 运算符在此处记录,并被定义为处理浮点数和整数。
我不确定它们是否完全相同,但不要引用我的话。这是我的测试:
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)) ) );
第二个版本在映射为纹理时返回视觉图案,而第一个版本则完全随机。也许我误解了一些东西,但在这种情况下,他们的行为肯定会有所不同。
也许我只是搞砸了测试,但我想我会提到它,因为它看起来很相关。
编辑:此代码源自这里 我可以在像素着色器中生成一个随机数吗?似乎。