在我的GLSL剧本我想比较浮点数是这样的:
uniform float _Highlights;
if _Highlights <> 1 { doHighlights(...); }
但作为_Highlights
是浮动我怕说了if _Highlights <> 1
将始终返回true。
所有的拳中,“不公平”运营商在GLSL是!=
和条件必须是在括号中。在GLSL正确的语法是:
if (_Highlights != 1.0)
{
doHighlights(...);
}
如果你想检查是否_Highlights
接近1.0的值,那么你必须使用的ε值:
const float eps = 0.001;
if ( abs(_Highlights - 1.0) > eps )
{
doHighlights(...);
}