在我的GLSL脚本中,我想像这样比较float:
uniform float _Highlights;
if _Highlights <> 1 { doHighlights(...); }
但是由于_Highlights
是浮点数,因此我担心if _Highlights <> 1
总是会返回true。
答案 0 :(得分:2)
首先,GLSL中的“不相等”运算符为!=
,并且条件必须在括号中。 GLSL中的正确语法为:
if (_Highlights != 1.0)
{
doHighlights(...);
}
如果要检查_Highlights
的值是否接近1.0,则必须使用epsilon值:
const float eps = 0.001;
if ( abs(_Highlights - 1.0) > eps )
{
doHighlights(...);
}