使用其他浮点反转浮点数

时间:2012-05-09 20:10:27

标签: floating-point glsl

我有一个非常简单的问题,但由于找不到解决方案,我正在把我的大脑靠在墙上。

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

我有两个花车,两者都可以是0或1。

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

基本上

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

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

任何想法? :d

1 个答案:

答案 0 :(得分:3)

怎么样:

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

如果float为1,则为floatB = 1-floatB,否则如果float为零,则为floatB = floatB;