我正在尝试将值 0 转换为 1 并将 1 转换为 -1,但不使用 if 语句。我试图做一些数学运算以将其映射到一个新范围,但我无法为这两个参数做这件事。
这是可行的吗?
但是,它必须在集合中没有硬编码值的情况下执行此操作,例如:
initial = 0 or 1;
final_value = (initial + 1) * -1;
所以最终值将根据初始值映射到 1 或 -1,使用相同的方程。
编辑:我基本上是想摆脱该if
语句,因为这是着色器代码,而我在工作的朋友(着色器程序员)说if
语句会减慢执行速度,因此最好统一执行。不确定这是否有意义。