脚踏实地

心 勿噪

shader 中避免if else

// 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));

posted on 2016-09-04 14:32 LSH 阅读(686) 评论(0)  编辑 收藏 引用