如何比较GLSL脚本中的float?

时间:2019-02-04 16:50:18

标签: opengl opengl-es glsl

在我的GLSL脚本中,我想像这样比较float:

uniform float _Highlights;

if _Highlights <> 1 { doHighlights(...); }

但是由于_Highlights是浮点数,因此我担心if _Highlights <> 1总是会返回true。

1 个答案:

答案 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(...); 
}