// test less and equal zero
// x小于,等于0返回0,x大于0返回1
// if x <= 0 return 0 and x > 0 return 1.
float LQZ(x){
return max(0, sign(x));
// return ceil(clamp(0.,1.,x));
}
// if x <= 0 return a and x > 0 return b
// x小于,等于0返回a,x大于0返回b
float v = mix(a, b, LQZ(x));
// if x is odd number (0~1,2~3,4~5,6~7) return a else return b
// 奇数段(0~1,2~3,4~5,...)返回a,偶数段(1~2,3~4)返回b
float v = mix(a, b, LQZ(mod(x,2.0) - 1.0));