剂量 1.-1 在所有着色器语言中意味着什么

What dose 1.-1 mean in all shader language

我看到了这样的 glsl 代码:

vec3 color = vec3(.0);
float var = 0;
color += 1.-step(0.2,var);

color += 1.-step(0.2,var) 是什么意思,我发现它也适用于 cg language.And 它有其他形式: 1.-11.-0、等等

.-是运营商吗?

没有.-运算符。 1. 是一个浮点数 (1.0)。所以 1.-step(0.2,var)1.0 - step(0.2,var) 完全相同。 .00.0 相同。

OpenGL Shading Language 4.60 Specification- 4.1.4. Floats

. 是常量 1. 的一部分,使其成为浮点常量而不是整数常量。 - 只是一个减法运算符。

这主要只与 GLSL 相关,GLSL 不允许在表达式中混合整数和浮点值(无隐式转换)——您需要显式转换。所以像 1.-step(0.2,var) 这样的表达式是一个减法,而 1-step(0.2,var) 将是一个类型错误(试图从整数中减去一个浮点值。

1.-0 这样的表达式同样是类型错误。

1. 称为 浮点常量 (请参阅 GLSL 规范的 4.1.4 浮点数 节)。 - 被称为 算术二元减法运算符 (请参阅 GLSL 规范的 表达式 部分 )。