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 に答える