以下语句是有效的HLSL代码:
float3(300.0f,200.0f,100.0f) % 256.0f
显然,%运算符适用于浮点数?那与fmod有何不同? 以下语句是否等效?
fmod(float3(300.0f,200.0f,100.0f), 256.0f)
谢谢
float3(300.0f,200.0f,100.0f) % 256.0f
显然,%运算符适用于浮点数?那与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)) ) );