1

私は非常に単純な問題を抱えていますが、解決策が見つからないため、頭を壁にぶつけています。

組み込みシステムでシェーダー プロセッサを使用していますが、フラグメント シェーダーのパフォーマンスが悪いため、条件を使用できません。

私は 2 つの浮動小数点数を持っています。どちらも 0 または 1 のいずれかです。

2番目のfloatが1の場合、最初のfloatの値を反転したい。

基本的

if(floatA==1.0)
    {
        if(floatB==1.0)
        {
            floatB=0.0;
        }
        else
        {
            floatB=1.0;
        }
    }

-- 条件はありませんが、数学的には x..X

何か案は?:D

4

1 に答える 1

4

どうですか:

floatB = ( floatA * ( 1 - floatB )) + ((1 - floatA) * floatB )

floatAが1の場合は、、floatB = 1-floatBそれ以外の場合はfloatAがゼロの場合はfloatB = floatB;

于 2012-05-09T20:20:04.013 に答える