我看到了这样的glsl代码:
vec3 color = vec3(.0);
float var = 0;
color += 1.-step(0.2,var);
color += 1.-step(0.2,var)
是什么意思,我发现它也适用于cg语言。它还有其他形式:1.-1
、1.-0
等
.-
是操作员吗?
1.
被称为浮点常量(请参阅GLSL规范的第4.1.4节浮点(。-
被称为算术二进制减法运算符(请参阅GLSL规范的第5.9节表达式(。
没有.-
运算符。1.
是浮点文字(1.0
(。所以CCD_ 10和CCD_。CCD_ 12与CCD_。
请参见OpenGL着色语言4.60规范-4.1.4。浮动
.
是常数1.
的一部分,使其成为浮点常数而不是整数常数。-
只是一个减法运算符。
这主要只与GLSL相关,GLSL不允许在表达式中混合整数和浮点值(没有隐式转换(——您需要显式强制转换。因此,像1.-step(0.2,var)
这样的表达式是减法,其中1-step(0.2,var)
将是类型错误(试图从整数中减去浮点值。
类似于1.-0
的表达式将类似地是类型错误。