如何比较浮在GLSL脚本?

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

在我的GLSL剧本我想比较浮点数是这样的:

uniform float _Highlights;

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

但作为_Highlights是浮动我怕说了if _Highlights <> 1将始终返回true。

opengl opengl-es glsl
1个回答
2
投票

所有的拳中,“不公平”运营商在GLSL是!=和条件必须是在括号中。在GLSL正确的语法是:

if (_Highlights != 1.0)
{ 
    doHighlights(...); 
}

如果你想检查是否_Highlights接近1.0的值,那么你必须使用的ε值:

const float eps = 0.001;
if ( abs(_Highlights - 1.0) > eps )
{
    doHighlights(...); 
}
© www.soinside.com 2019 - 2024. All rights reserved.