1.-1在所有着色器语言中的平均剂量

问题描述 投票:1回答:3

我看到了这样的glsl代码:

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

<< [color += 1.-step(0.2,var)是什么意思,我发现它也适用于cg语言。它具有其他形式:1.-11.-0

.-是运算符吗?
glsl shader render hlsl cg
3个回答
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


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

这主要仅在GLSL中相关,GLSL不允许在表达式中混合整数和浮点值(无隐式转换)-您需要显式转换。因此,像1.-step(0.2,var)的表达式就是一个减法,其中1-step(0.2,var)的表达式是类型错误(尝试从和减去一个浮点值。

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


0
投票
1.被称为

浮点常数(请参阅GLSL规范的第4.1.4节浮点数)。 -被称为算术二进制减法运算符(请参阅GLSL规范的5.9节表达式。)>

© www.soinside.com 2019 - 2024. All rights reserved.