0

我想使用图形算术对 2 个整数进行 isequals(a,b) 比较(我不能使用逻辑 If 运算符,因为我需要线性逻辑),以:

如果 a=b 返回1 如果
a!=b 返回 0

例如,我可以写:

  1-saturate(distance(a,b));  // to return 1 if a = b.

  1-step(abs(a-b));

在 cg 数学中有更快的方法吗?

4

2 回答 2

2
float result = (a == b); // Works in HLSL...

是什么让你觉得 == 不是你想要的?

于 2013-10-14T21:50:26.860 回答
1

sat(abs(ab)*FLOAT_MAX) 怎么样?abs 和 sat 在算术上都应该是免费的。如果 a 和 b 非常接近,这可能会以依赖于实现的方式中断。如果你需要反转,你总是可以做 sat(1-x)。

于 2013-10-15T05:28:40.690 回答