剂量 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.-1
、1.-0
、等等
.-
是运营商吗?
没有.-
运算符。 1.
是一个浮点数 (1.0
)。所以 1.-step(0.2,var)
与 1.0 - step(0.2,var)
完全相同。 .0
与 0.0
相同。
.
是常量 1.
的一部分,使其成为浮点常量而不是整数常量。 -
只是一个减法运算符。
这主要只与 GLSL 相关,GLSL 不允许在表达式中混合整数和浮点值(无隐式转换)——您需要显式转换。所以像 1.-step(0.2,var)
这样的表达式是一个减法,而 1-step(0.2,var)
将是一个类型错误(试图从整数中减去一个浮点值。
像 1.-0
这样的表达式同样是类型错误。
1.
称为 浮点常量 (请参阅 GLSL 规范的 4.1.4 浮点数 节)。 -
被称为 算术二元减法运算符 (请参阅 GLSL 规范的 表达式 部分 )。
我看到了这样的 glsl 代码:
vec3 color = vec3(.0);
float var = 0;
color += 1.-step(0.2,var);
color += 1.-step(0.2,var)
是什么意思,我发现它也适用于 cg language.And 它有其他形式:
1.-1
、1.-0
、等等
.-
是运营商吗?
没有.-
运算符。 1.
是一个浮点数 (1.0
)。所以 1.-step(0.2,var)
与 1.0 - step(0.2,var)
完全相同。 .0
与 0.0
相同。
.
是常量 1.
的一部分,使其成为浮点常量而不是整数常量。 -
只是一个减法运算符。
这主要只与 GLSL 相关,GLSL 不允许在表达式中混合整数和浮点值(无隐式转换)——您需要显式转换。所以像 1.-step(0.2,var)
这样的表达式是一个减法,而 1-step(0.2,var)
将是一个类型错误(试图从整数中减去一个浮点值。
像 1.-0
这样的表达式同样是类型错误。
1.
称为 浮点常量 (请参阅 GLSL 规范的 4.1.4 浮点数 节)。 -
被称为 算术二元减法运算符 (请参阅 GLSL 规范的 表达式 部分 )。