1

我有一个非常简单的问题,但是因为找不到解决方案,所以我把我的大脑放在墙上。

我在嵌入式系统中使用着色器处理器,由于片段着色器的性能不佳而无法使用条件。

我有两个浮点数,都可以是 0 或 1。

如果第二个浮点数为 1,我想反转第一个浮点数的值。

基本上

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

-- 只是没有条件,但在数学上 x..X

有任何想法吗?:D

4

1 回答 1

4

How about:

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

If floatA is 1, then floatB = 1-floatB, otherwise if floatA is zero, then floatB = floatB;

于 2012-05-09T20:20:04.013 回答