我正在将一个着色器从OpenGL移植到WebGL,当我看到像smth时,我有点困惑
float refCorrection = clamp(NdotL + fVelvet * 2 + .5f, 0.5f, 1.f);
确切地说,.5f
,0.5f
和0.5
之间是否存在差异?
答案 0 :(得分:2)
如果这是C ++调用代码,0.5
(无后缀)表示double
,0.5f
和.5f
为float
,两者都表示相同的数字,领先的零并不意味着什么。
在GLSL中,所有这些都是浮点数,前导零也无关紧要。如果你想要一个双倍,你需要后缀lf
。但请注意,自OpenGL和GLSL版本4以来,双精度版本才被添加.f后缀并不总是存在,无论如何都不是必需的,因为float是默认值。